Where can I see speed examples?


I’d like to see how fast OptiX works for a large number of simple objects (on Windows). For example, 10 000 spheres or cubes. Are there any examples of this kind?

Speed of doing what exactly with these objects?
E.g. rendering performance? (Which algorithm and kind of materials?)
Animation? (Rigid body, instances, changing geometry?)

If you haven’t looked through the precompiled examples, yet, please do so. The OptiX SDK examples contain a framework to do benchmarking.
Some of the SDK examples are animated and you could add more objects to most of the SDK examples easily depending on your requirements.

The swimmingShark example uses animated model instances to render a fish tank and has command line parameters controlling the number of different species and shool-size. Try command line swimmingShark.exe --species 1 --school-size 1000 for example. 10000 gets crowded. :-)

For a less complex case look at the whirlgig example for animated spheres.

The shadeTree example uses an 11*11 grid of spheres with different procedural materials on them which could be extended to more objects.
Similarly for the cook example showing a depth of field or motion blur rendering with accumulation.

Thank you
swimmingShark.exe --species 1 --school-size 10000
is exactly what I wanted to see.


One more question. Can this technology be used in Qt QGLWidget?

Yes, OptiX doesn’t care about the application framework you use.

Rendering and display into a Qt QGLWidget should work just the same as in the GLUT based framework the OptiX SDK examples use: For optimal single-GPU performance render into an OptiX buffer backed up by an OpenGL PBO, transfer the PBO to an OpenGL texture image, render a full viewport textured quad.
Image data stays on the GPU all the time this way.
(Use BGRA8 or RGBA32F textures. Avoid rendering to float3 buffers! Read the OptiX release notes and programming guide for explanations.)

Have a look into sutil/SampleScene.cpp and search for “createBufferFromGLBO” to find code to create and resize a buffer for rendering.