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

関連記事

映画『ゴジラ-1.0』 メイキング情報まとめ

Transformers ”Reference & Bulid” Siggraph 2007

OpenCVでPhotoshopのプラグイン開発

Theia:オープンソースのStructure from Motionライブラリ

GAN (Generative Adversarial Networks):敵対的生成ネットワーク

3DCGのモデルを立体化するサービス

ZBrushでアマビエを作る その2

OpenCV 3.1のsfmモジュールを試す

ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身体のライン修正

参考書

libigl:軽量なジオメトリ処理ライブラリ

C++の抽象クラス

『ローグ・ワン/スター・ウォーズ・ストーリー』"あのキャラクター"のメイキング

ZBrushでアヴァン・ガメラを作ってみる 下半身のバランス調整

ゴジラ(2014)のメイキング

この本読むよ

ZBrushのZmodelerとDynamic Subdivisionを学ぶ

Mayaのプラグイン開発

Blender 4.2以降のWindowsPortable版の設定ファイルの保存場所

日本でMakersは普及するだろうか?

Photoshopで作る怪獣特撮チュートリアル

BlenderのGeometry Nodeで遊ぶ

Blender 2.81でIntel Open Image Denoiseを使う

2012 昨日のクローズアップ現代を見た

SIGGRAPH ASIAのマスコット

ZBrushからBlenderへモデルをインポート

ヒーローに変身なりきりアーケードゲーム『ナレルンダー』

OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる

ZBrushで仮面ライダー3号を造る 仮面編

OpenCV 3.3.0-RCでsfmモジュールをビルド

トランスフォーマーの変形パターンを覚えるのは楽しいと思うんだ

R-CNN (Regions with CNN features):ディープラーニングによる一般物体...

写真に3Dオブジェクトを違和感無く合成する『3DPhotoMagic』

ZBrushで仮面ライダー3号を造る ベース編

機械学習手法『Random Forest』

ZBrushでアヴァン・ガメラを作ってみる 甲羅の修正・脚の作り込み

Leap MotionでMaya上のオブジェクトを操作できるプラグイン

SIGGRAPH論文へのリンクサイト

Physics Forests:機械学習で流体シミュレーションを近似する

2012のメイキングまとめ(途中)

デザインのリファイン再び

mentalrayのSubsurface Scattering Shader『misss_fast_...

コメント