前の作業を見直してたら理解が進んだから、忘れる前にメモしておくよ。
PhongShaderのサンプルに載ってた関数についてのメモ。
MRenderUtil::raytrace(shaderからraytraceを扱うための関数)
static MStatus raytrace( const MFloatVector& rayOrigin, // in camera space const MFloatVector& rayDirection, const void* objectId, const void* raySampler, const short rayDepth, // storage for return value MFloatVector& resultColor, MFloatVector& resultTransparency, // true for reflected rays, false for refracted rays const bool isReflectedRays = true );
パラメータ:
[in] rayOrigin カメラ空間でのレイの始点座標
[in] rayDirection カメラ空間での飛ばすレイの方向
[in] objectID 現在のオブジェクトのID(未使用変数扱いされてたりもする?)
[in] raySampler レンダラから取得するレイトレーサーへのポインタ
[in] rayDepth レンダラから取得するこのレイの深さ(回数)
[in] resultColor 取得する色を格納する参照
[in] resultTransparency 取得する透明度を格納する参照
[in] isReflectedRays trueなら反射レイ(デフォルト)、falseなら屈折レイ
ということで、このサンプルサイトにある説明を訳してみた。
このユーティリティメソッドは、シェーダプラグインからレイトレースを行うための機能を提供します。
このメソッドは、レイの始点と方向を指定すると、単一のレイを飛ばし、交差点の色と透明度を返します。
シェーダープラグインでレイトレースを行うには以下の手順が必要です。:
レンダラにあるraySamplerを使います。これは’raySampler’ (rtr)という名前のinputアトリビュートを作成することで値を取得できます。
レンダラにあるrayDepthを使います。こちらは’rayDepth’ (rd)という名前のinputアトリビュートを作成することで値を取得できます。
Mayaソフトウェアレンダラ設定のrenderGlobal-> renderQuality->raytracingで”Enable Raytracing”のフラグをONにしておきます。
isReflectedRaysというBoolean変数は、飛ばすレイが反射レイか屈折レイかを示すものです。この変数はユーザーがrenderGlobal->renderQualityで設定した反射・屈折回数の制限をレイトレーサーに伝えるためのものです。
オブジェクトをレイトレースの対象とするには、”Visible In Reflections”または”Visible In Refraction”フラグがONに設定されている必要があります。
このメソッドは、Mayaソフトウェアレンダラでのみ動作します。
以上、Google翻訳頼りの翻訳でした。
関連記事
DensePose:画像中の人物表面のUV座標を推定する
ラクガキの立体化 反省
画像生成AI Stable Diffusionで遊ぶ
OpenMVSのサンプルを動かしてみる
Unreal Engineの薄い本
OpenCV 3.1のsfmモジュールを試す
ZBrushでアヴァン・ガメラを作ってみる 甲羅の修正・脚の...
ゴジラ三昧
日本でMakersは普及するだろうか?
Autodesk CompositeとAutodesk Ma...
『PIXARのひみつ展』に行ってきた
オープンソースの物理ベースレンダラ『Mitsuba』をMay...
ラクガキの立体化 3Dプリント注文
Physically Based Rendering
iPhone 3GSがますます欲しくなる動画
フィーリングに基づくタマムシの質感表現
Unityの薄い本
OpenCVの超解像(SuperResolution)モジュ...
CEDEC 3日目
ZBrushでアヴァン・ガメラを作ってみる 全体のバランス調...
ZBrushのハードサーフェイス用ブラシ
Polyscope:3Dデータ操作用GUIライブラリ
OpenCVでiPhone6sのカメラをキャリブレーションす...
Kaolin:3Dディープラーニング用のPyTorchライブ...
adskShaderSDK
ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身...
Photoshopで作る怪獣特撮チュートリアル
レンダラ制作はOpenGL とか DirectX を使わなく...
フリーで使えるスカルプト系モデリングツール『Sculptri...
After Effects全エフェクトの解説(6.5)
書籍『3次元コンピュータビジョン計算ハンドブック』を購入
Subsurface scatteringの動画
ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
ZBrushの作業環境を見直す
書籍『ROSプログラミング』
ZBrushでアヴァン・ガメラを作ってみる 口のバランス調整
ZBrush 2018での作業環境を整える
Human Generator:Blenderの人体生成アド...
NeRF (Neural Radiance Fields):...
OpenMVS:Multi-View Stereoによる3次...
SVM (Support Vector Machine)
オープンソースの物理ベースGIレンダラ『appleseed』


コメント