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


スポンサーリンク

関連記事

Pythonのソースコードに特化した検索エンジン『Nullege』
ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
ゴジラ(2014)のディティール制作の舞台裏
ZBrushでアヴァン・ガメラを作ってみる パーツ分割
SIGGRAPH論文へのリンクサイト
人型3Dキャラクターアニメーション制作サービス『Mixamo』で遊ぶ
立体視を試してみた
ZBrushの練習 手のモデリング
レンダラ制作はOpenGL とか DirectX を使わなくてもできるんだぜ
『ローグ・ワン/スター・ウォーズ・ストーリー』"あのキャラクター"のメイキング
OpenCVのための軽量GUIライブラリ『cvui』
フルCGのウルトラマン!?
布のモデリング
ZBrushで仮面ライダー3号を造る 仮面編 Dam Standardブラシでディティールを彫る
人体モデリングできるBlenderアドオン『ManuelBastioniLAB』
ZBrushで仮面ライダー3号を造る 仮面編 Clay Polish
OpenCVでPhotoshopのプラグイン開発
openMVGをWindows10 Visual Studio 2015環境でビルドする
機械学習手法『SVM(Support Vector Machine)』
軽量なジオメトリ処理ライブラリ『libigl』
服飾デザインツール『CLO』
色んな三面図があるサイト
OpenCVの三角測量関数『cv::triangulatepoints』
オープンソースの顔の動作解析ツールキット『OpenFace』
OpenCVでiPhone6sのカメラをキャリブレーションする
Maya LTのQuick Rigを試す
ZBrushでアヴァン・ガメラを作ってみる 歯茎を別パーツへ分割
Leap MotionでMaya上のオブジェクトを操作できるプラグイン
オープンソースのStructure from Motionライブラリ『Theia』
Point Cloud Libraryに動画フォーマットが追加されるらしい
OpenCVで動画の手ぶれ補正
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン まとめ
OpenCVベースの背景差分ライブラリ『BGSLibrary』
ZBrushで仮面ライダー3号を造る ベース編
HD画質の無駄遣い
ラクガキの立体化 背中の作り込み・手首の移植
オーバーロードとオーバーライド
UnityでLight Shaftを表現する
Unity ARKitプラグインサンプルのチュートリアルを読む
OpenCVの超解像(SuperResolution)モジュールを試す
自前Shaderの件 解決しました
オープンソースの顔認識フレームワーク『OpenBR』

コメント