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


スポンサーリンク

関連記事

タダでRenderManを体験する方法
この本読むよ
Mayaでリアルな布の質感を作るチュートリアル
フリーで使えるスカルプト系モデリングツール『Sculptris 』
OpenCVで平均顔を作るチュートリアル
HTML5・WebGLベースのグラフィックスエンジン『Goo Engine』
オーバーロードとオーバーライド
2012 昨日のクローズアップ現代を見た
Houdiniのライセンスの種類
複数画像から3次元形状を再構築するライブラリ『Multi-View Environment』
天体写真の3D動画
GoB:ZBrushとBlenderを連携させるアドオン
サンプルコードにも間違いはある?
軽量なジオメトリ処理ライブラリ『libigl』
AR (Augmented Reality)とDR (Diminished Reality)
3Dデータ処理ライブラリ『Open3D』
デザインのリファイン再び
CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
ZBrushで仮面ライダー3号を造る 仮面編 失敗のリカバー
OpenCVの超解像処理モジュール『Super Resolution』
『パシフィック・リム: アップライジング』のVFXブレイクダウン まとめ
ZBrush キャラクター&クリーチャー
顔のモデリング
ファンの力
マジョーラ
リアルタイムシェーディング技術とその周辺技術をあつかうサイト
ZBrushのZmodelerとDynamic Subdivisionを学ぶ
オープンソースの物理ベースGIレンダラ『appleseed』
3DCGのモデルを立体化するサービス
WordPressプラグインの作り方
オープンソースのSfM・MVSツール『COLMAP』
読みやすくて高速なディープラーニングのフレームワーク『Caffe』
第20回 文化庁メディア芸術祭『3DCG表現と特撮の時代』
オープンソースのネットワーク可視化ソフトウェアプラットフォーム『Cytoscape』
ZBrushで仮面ライダー3号を造る 仮面編
Adobe Photoshop CS4 Extendedの3Dモデル編集機能
BlenderでPhotogrammetryできるアドオン
物理ベースレンダリングのためのマテリアル設定チートシート
HD画質の無駄遣い その2
シン・ゴジラのファンアート
Maya には3 種類のシェーダSDKがある?
ZBrushのキャンバスにリファレンス画像を配置する

コメント