このドキュメントでは、gRPC 用の Spring Boot スターターである gRPC/Spring と、研究指向のレンダリング システムである Mitoba 3 という 2 つの異なるプロジェクトの概要を説明します。 gRPC/Spring セクションでは、その機能、使用方法、互換性情報について詳しく説明します。 「Mitsuba 3」セクションでは、そのインストール、使用法、機能、および貢献者について説明します。どちらのセクションにもコード例と詳細なドキュメントへのリンクが含まれています。
アンケート - gRPC/Spring
gRPC/Spring ユーザーの皆様、gRPC/Spring のユーザー エクスペリエンスを向上させるために、
grpc-ecosystem/grpc-spring では、この調査を次の手段として開発しました。
直接のコミュニケーションラインを確立します。皆様のご意見をお待ちしております。
gRPC スプリング ブート スターター
お読みください: 英語 | 中国語
ドキュメント: 英語 | 中国語
特徴
@GrpcService 実装を使用して gRPC サーバーを自動的に構成して実行します
@GrpcClient を使用して grpc チャネルとスタブを自動的に作成および管理します
他の grpc-java フレーバーをサポートします (例:
リアクティブ gRPC (RxJava)、
grpc-kotlin、...)
Spring-Securityをサポート
Spring Cloudをサポート
分散トレース ソリューションとして Spring Sleuth をサポート
(brave-instrumentation-grpc が存在する場合)
グローバルおよびカスタム gRPC サーバー/クライアント インターセプターをサポート
自動メトリックサポート (マイクロメーター/アクチュエーターベース)
(非シェーディング) grpc-netty でも動作します
バージョン
最新バージョンは 3.1.0.RELEASE で、spring-boot 3.2.4 および spring-cloud 2023.0.0 でコンパイルされました。
ただし、他のさまざまなバージョンとも互換性があります。
すべてのバージョンとそれぞれのライブラリ バージョンの概要については、ドキュメントを参照してください。
注: このプロジェクトは Spring-Boot なしでも使用できますが、手動による Bean 構成が必要になります。
使用法
gRPC サーバー + クライアント
Maven を使用して依存関係を追加するには、次を使用します。
Gradle を使用して依存関係を追加するには:
gRPC サーバー
Maven を使用して依存関係を追加するには、次を使用します。
Gradle を使用して依存関係を追加するには:
サーバー インターフェイス実装に @GrpcService の注釈を付ける
デフォルトでは、grpc サーバーはポート 9090 をリッスンします。これらおよびその他
設定
Spring のプロパティ メカニズムを介して変更できます。サーバーは grpc.server を使用します。接頭辞。
詳細については、ドキュメントを参照してください。
gRPC クライアント
Maven を使用して依存関係を追加するには、次を使用します。
Gradle を使用して依存関係を追加するには:
grpc クライアント スタブのフィールドに @GrpcClient(serverName) の注釈を付けます。
@Autowired または @Inject と組み合わせて使用しないでください
注: 複数のチャネルと異なるスタブに同じ grpc サーバー名を使用できます (異なるスタブであっても)。
インターセプター)。
次に、次のようにしてサーバーにクエリを送信できます。
各クライアントのターゲット アドレスを個別に設定することができます。
ただし、場合によっては、デフォルト設定のみを使用することもできます。
NameResolver.Factory Bean を介してデフォルトの URL マッピングをカスタマイズできます。その Bean を設定しない場合は、
デフォルトのスキームと名前を使用してデフォルトの URI が推測されます (例: dns:/)
):
これらやその他の
設定
Spring のプロパティ メカニズムを介して変更できます。クライアントは grpc.client.(serverName) を使用します。接頭辞。
詳細については、ドキュメントを参照してください。
(非シェーディング) grpc-netty で実行する
このライブラリは、grpc-netty と grpc-netty-shaded の両方をサポートします。
後者の場合、互換性のない grpc バージョンとの競合や、異なるバージョンの netty を必要とするライブラリ間の競合を防ぐことができます。
注: シェーディングされた netty がクラスパス上に存在する場合、このライブラリは常に、シェーディングされていない grpc-netty よりもそれを優先します。
次のように Maven で使用できます。
Gradle を使用する場合は次のようになります。
サンプルプロジェクト
サンプルプロジェクトの詳細については、こちらをご覧ください。
トラブルシューティング
ヘルプについては、ドキュメントを参照してください。
貢献する
貢献はいつでも大歓迎です!詳細なガイドラインについては、CONTRIBUTING.md を参照してください。
例:
ミツバレンダラー3
ドキュメント
チュートリアルビデオ
Linux
MacOS
窓
PyPI
警告
現在、文書化されていない不安定な作業が大量に行われています。
マスターブランチ。ぜひご利用ください。
最新リリース
追って通知があるまで。
今後の変更をすでに試してみたい場合は、こちらをご覧ください。
この移植ガイド。
今後の新機能と重大な変更のほとんどがカバーされているはずです。
導入
ミツバ 3 は、順光と逆光の研究指向のレンダリング システムです。
スイスのEPFLで開発された輸送シミュレーション。
コア ライブラリと機能を実装するプラグインのセットで構成されます。
マテリアルや光源から完全なレンダリング アルゴリズムに至るまで。
ミツバ 3 は再ターゲット可能です。これは、基礎となる実装と
データ構造は、さまざまな異なるタスクを実行するために変換できます。のために
たとえば、同じコードで両方のスカラー (一度に 1 レイずつの古典的な) RGB トランスポートをシミュレートできます。
または GPU 上の差分スペクトル転送。これはすべてに基づいています
Dr.Jit は、このプロジェクトのために特別に開発された特殊なジャストインタイム (JIT) コンパイラーです。
主な特長
クロスプラットフォーム:Mitsuba 3 は Linux (x86_64)、macOS でテストされています
(aarch64、x8664)、および Windows (x8664)。
高性能: 基盤となる Dr.Jit コンパイラーがレンダリング コードを融合します。
を使用して最先端のパフォーマンスを実現するカーネルに組み込まれます。
CPU をターゲットとする LLVM バックエンドと CUDA/OptiX バックエンド
レイ トレーシング ハードウェア アクセラレーションを備えた NVIDIA GPU をターゲットとしています。
Python が最初: ミツバ 3 は Python と緊密に統合されています。材料、
テクスチャ、さらには完全なレンダリング アルゴリズムさえも Python で開発できます。
これは、システムによってオンザフライで JIT コンパイル (およびオプションで微分) されます。
これにより、コンピュータ グラフィックスの研究に必要な実験が可能になり、
他の分野。
微分: ミツバ 3 は微分可能なレンダラーです。
入力に関するシミュレーション全体の導関数を計算できます
カメラのポーズ、ジオメトリ、BSDF、テクスチャ、ボリュームなどのパラメータ。それ
EPFL で開発された最近の微分可能レンダリング アルゴリズムを実装します。
スペクトルと偏光: ミツバ 3 は単色として使用できます。
レンダラー、RGB ベースのレンダラー、またはスペクトル レンダラー。各バリアントでは、
必要に応じて、分極の影響をオプションで考慮します。
チュートリアルビデオ、ドキュメント
優しい紹介を提供する YouTube ビデオをいくつか録画しました。
ミツバ3とドクタージット。さらに、完全な Juypter ノートブックを見つけることができます。
さまざまなアプリケーション、ハウツー ガイド、リファレンス ドキュメントを網羅
readthedocs で。
インストール
PyPI 経由でコンパイル済みのバイナリ ホイールを提供します。この方法でのMitsubaのインストールは、実行するのと同じくらい簡単です
pip インストールミツバ
コマンドラインで。 Python パッケージにはデフォルトで 13 のバリアントが含まれています。
スカラー_rgb
スカラースペクトル
スカラースペクトル偏光
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
クダードモノ
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
最初の 2 つは、RGB のいずれかを使用して、一度に 1 レイずつの古典的なシミュレーションを実行します。
またはスペクトル色表現、後者の 2 つは逆変換に使用できます。
CPU または GPU でのレンダリング。追加のバリアントにアクセスするには、次のことを行う必要があります。
CMake を使用して Dr.Jit のカスタム バージョンをコンパイルします。をご覧ください。
ドキュメント
詳細については。
要件
Python >= 3.8
(オプション) GPU での計算の場合: Nvidia ドライバー >= 495.89
(オプション) CPU でのベクトル化/並列計算の場合: LLVM >= 11.1
使用法
これは、レンダリングがいかに簡単であるかを示す単純な「Hello World」の例です。
PythonからMitsuba 3を使用したシーン:
# エイリアス "mi" を使用してライブラリをインポートしますimport tsuba as mi# renderer のバリアントを設定しますmi.setvariant('scalarrgb')# シーンをロードしますscene = mi.loaddict(mi.cornellbox())# シーンをレンダリングしますimg = mi。 render(scene)# レンダリングされたイメージを EXR ファイルに書き込みますmi.Bitmap(img).write('cbox.exr')
さまざまなアプリケーションをカバーするチュートリアルとノートブックの例が見つかります。
ドキュメントにあります。
について
このプロジェクトは Wenzel Jakob によって作成されました。
コードの重要な機能や改善は、次の寄稿者によって行われました。
セバスチャン・シュパイラー
ニコラ・ルーセル
マーリン・ニミエ=デイヴィッド
デリオ・ヴィチーニ
ティツィアン・ツェルトナー
バティスト・ニコレット
ミゲル・クレスポ
ヴァンサン・リロイと
チャン・ツィイー。
学術プロジェクトでMitsuba 3を使用する場合は、以下を引用してください。
@software{Mitsuba3,title = {Mitsuba 3 renderer},author = {Wenzel Jakob、Sébastien Speierer、Nicolas Roussel、Merlin Nimier-David、Delio Vicini、Tizian Zeltner、Baptiste Nicolet、Miguel Crespo、Vincent Leroy、Ziyi Zhang},note = {https://tsuba-renderer.org}、バージョン = {3.1.1}、年 = 2022}