Ray を可視化してみました。 可視化 図 Pinhole Camera から、Teapot へのRay と Reflection Ray を VEX で可視化 解像度比較 図 左 32 texels (primitives), 右 256 texels (primitives) ネットワーク 図 Simple Ray Tracer Wrangle 出力先は、screen です。 シーンは、sceneGeometry です。 今回は、Utah Teapot のみです。 manyLights は、光源へのポインタです。 morishgieGI は、大域照明(実験)へのポインタです。 raytraceWrangle が、Ray Tracing を実行するOperator です。 VEX コードの格納先です。 Ray 可視化 VEX コード raytraceWrangle で、ray がシーン内のジオメトリと交差した際、 ray の点とプリミティブを生成しています。 追加削除が、簡単に動的にできるのは、VEX スクリプトの強みですね。 // ray を可視化する 点とプリミティブを生成 // geoself(): 出力先(screen) int newPt0 = addpoint(geoself(), rayOrigin); int newPt1 = addpoint(geoself(), hit); addprim(geoself(),"poly", newPt0, newPt1); // reflection ray を可視化する点とプリミティブを生成 vector r = reflect(rayDir, surfaceNormal); int newPt2 = addpoint(geoself(), hit + r); addprim(geoself(), "poly", newPt1, newPt2); 追記:addpoint() や addprim() の第一引数は、geometry handle です。 現在の geometry に出力する場合は、geoself() を使いましょう。 現在の geometr
Game, Graphics, and A.I. について、お勉強したことを記録していきます。"投稿する意見や内容は私個人の見解に基づくものであり、所属企業・部門見解を代表するものではありません。"