Updated model loading code in OptiX 3.7

I had a quick look at the new code which is structurally very different and looks nice. Does anyone know if there are any changes inside which would improve performance/stability/memory use?

The resulting OptiX scene structure shouldn’t have changed, means the only noticeably difference would be the abstraction of the previously separate file format loaders (OBJ, PLY) into one interface.

Also see recent related posts:
https://devtalk.nvidia.com/default/topic/817547/optix/rendering-with-smooth-normals/
https://devtalk.nvidia.com/default/topic/819366/optix/incomplete-obj-material-mapping-/

Thanks Detlef.

Also, the old implementation had an unnecessary model copy, so at one point it used twice the necessary memory footprint and spent some time on the copy. That’s gone.

Another thing the new architecture does is provide better hooks for the application to access the materials and copy or replace them prior to the model being loaded as OptiX objects. You’ll see the use cases for this in sample6, with a ground plane whose material is taken from the OBJ file, and more elegant ways of specifying the materials in the different rendering modes. We haven’t made full use of the new capabilities, but they’re in there.

Very helpful - thank you for the extra information and links.