MRenderUtil::raytrace

前の作業を見直してたら理解が進んだから、忘れる前にメモしておくよ。

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翻訳頼りの翻訳でした。


スポンサーリンク

関連記事

白組による『シン・ゴジラ』CGメイキング映像が公開された!
CGのためのディープラーニング
SculptrisとBlenderで作ったGodzilla 2014 (Fan Made)
Phongの表現力パネェ 材質別のPhong Shader用パラメータ一覧
『シン・ゴジラ』のコンセプトアニメーションのメイキング動画が公開された
オープンソースのネットワーク可視化ソフトウェアプラットフォーム『Cytoscape』
ZBrushで手首のモデリングをリファイン
ラクガキの立体化 モールドの追加
3Dグラフィックスの入門書
Google Earth用の建物を簡単に作れるツール Google Building Maker 公...
GAN (Generative Adversarial Networks):敵対的生成ネットワーク
VCG Library:C++のポリゴン操作ライブラリ
ゴジラ三昧
Deep Fluids:流体シミュレーションをディープラーニングで近似する
Polyscope:3Dデータ操作用GUIライブラリ
OpenCV 3.1とopencv_contribモジュールをVisual Studio 2015で...
トランスフォーマーの変形パターンを覚えるのは楽しいと思うんだ
Adobe Photoshop CS5の新機能
映画『ジュラシック・ワールド/炎の王国』のVFXブレイクダウン まとめ
BlenderのGeometry Nodeで遊ぶ
ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...
Zibra Liquids:Unity向け流体シミュレーションプラグイン
ZBrushのUV MasterでUV展開
OpenCV 3.1のsfmモジュールを試す
物理ベースレンダリングのためのマテリアル設定チートシート
リアルタイム レイトレーシングAPI『DirectX Raytracing (DXR)』
CreativeCOW.net
UnityでShaderの入力パラメータとして行列を渡す
Maya には3 種類のシェーダSDKがある?
プログラムによる景観の自動生成
MPC社によるゴジラ(2014)のVFXブレイクダウン
デザインのリファイン再び
ZBrushでゴジラ2001を作ってみる 身体のシルエット出し
『PIXARのひみつ展』に行ってきた
ファンの力
ZBrushでアヴァン・ガメラを作ってみる 下半身のバランス調整
動的なメモリの扱い
映画『ジュラシック・ワールド』のVFXメイキング
Stanford Bunny
ManuelBastioniLAB:人体モデリングできるBlenderアドオン
Ambient Occlusionを解析的に求める
Zbrushでメカ物を作るチュートリアル動画

コメント