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


スポンサーリンク

関連記事

ZBrushで仮面ライダー3号を造る 仮面編 PolyGroup作成に再挑戦
ZBrush 2021.6のMesh from Mask機能を使ってみる
Physically Based Rendering
Subsurface scatteringの動画
オープンソースの物理ベースGIレンダラ『appleseed』
法線マップを用意してCanvas上でShadingするサンプル
CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
3DCG Meetup #4に行ってきた
ZBrushでアヴァン・ガメラを作ってみる 頬の突起を作り始める
Oculus Goを購入!
Mayaのレンダリング アトリビュート
ZBrushの作業環境を見直す
ZBrushで仮面ライダー3号を造る 仮面編 Clay Polish
ZBrushのZmodelerとDynamic Subdivisionを学ぶ
Maya LTでFBIK(Full Body IK)
OpenCVベースのマーカーARライブラリ『OpenAR』
TVML (TV program Making language)
OpenMesh:オープンソースの3Dメッシュデータライブラリ
BlenderのRigifyでリギング
ZBrush 4R7
ZBrushでアヴァン・ガメラを作ってみる 全体のバランス調整 その2
Photoshopで作る怪獣特撮チュートリアル
Adobe Photoshop CS4 Extendedの3Dモデル編集機能
Unreal Engineの薄い本
3Dスキャンに基づくプロシージャルフェイシャルアニメーション
機械学習手法『Random Forest』
Point Cloud Libraryに動画フォーマットが追加されるらしい
Unreal Engine Tokyo MeetUp!へ行ってきた
ZBrushでアヴァン・ガメラを作ってみる 下アゴと頭部を作り込む
第20回 文化庁メディア芸術祭『3DCG表現と特撮の時代』
テスト
OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
『スター・ウォーズ/スカイウォーカーの夜明け』のVFXブレイクダウン
Phongの表現力パネェ 材質別のPhong Shader用パラメータ一覧
立体視を試してみた
CEDEC 3日目
ラクガキの立体化
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
映画から想像するVR・AR時代のGUIデザイン
トランスフォーマー :リベンジのメイキング (デジタルドメイン)
Blender 2.81でIntel Open Image Denoiseを使う
顔のモデリング

コメント