В примере path tracer в 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);
обратите внимание, что gis
- это вектор GeometryInstance
.
Когда я его запускаю, окно дисплея открывается и сразу же закрывается, и я получаю следующие исключения:
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_PROGRAMs?Заранее спасибо!
PS Я знаю, что функция loadMesh()
заботится о материале, но поскольку программа не работает, я попытался установить материал так же, как он показан для всех других экземпляров GeometryInstances,как показано в блоке кода выше.