1

SDK のパス トレーサーの例では、トレースする OBJ ファイルを追加したいので、loadGeometry()関数に移動し、最後の平行四辺形の作成の直後に、このコード ブロックを追加しました。

OptiXMesh mesh;
mesh.context = context;
loadMesh(mesh_file, mesh);
gis.push_back(mesh.geom_instance);
//setMaterial(gis.back(), diffuse, "diffuse_color", white);

gisGeometryInstanceベクトルであることに注意してください。

実行すると、表示ウィンドウが開き、すぐに閉じて、次の例外が発生します。

Exception thrown at 0x00007FFA2856A388 in optixPathTracer.exe: Microsoft C++ exception: optix::TypeMismatch at memory location 0x0000000E29EFF030.
Exception thrown at 0x00007FFA2856A388 in optixPathTracer.exe: Microsoft C++ exception: optix::Exception at memory location 0x0000000E29EFF5C0.

変更したコード ブロックをコメント アウトすると、問題なく動作します。

OBJ ファイルをトレーサーにロードするにはどうすればよいですか? シェーダー / RT_PROGRAM 側で何かを追加する必要がありますか? 少し早いですがお礼を!

PS関数がマテリアルを処理することは知っていloadMesh()ますが、プログラムが機能しないため、上記のコードブロックで示されているように、他のすべてのGeometryInstancesに示されているのと同じようにマテリアルを設定しようとしました.

4

1 に答える 1