Mixing Hardware and Software Rendering

The choice of one or another rendering methods in HOOPS Luminate is done at the viewpoint level and by choosing the appropriate rendering method for the window. If we are to render in software, then we’ll need to call RED::IWindow::FrameTracing (or any FrameTracingXXX method). This method will ensure that scenes can be rendered in software. Then, to render in hardware too, simultaneously, we’ll also need to ensure that HOOPS Luminate can process GPU images. Consequently, HOOPS Luminate needs to be started in hybrid mode: Hardware or Software Startup).

Then, the determination of whether a viewpoint will be processed in software ray-tracing or using the GPU will be made based on options enabled for that viewpoint:

  • If the viewpoint has no ray-tracing options turned on, it’ll be rendered using the GPU

  • If the viewpoint has ANY ray-tracing option turned on, it’ll be rendered using the CPU

During each call to RED::IWindow::FrameTracing, HOOPS Luminate will:

  1. Further refine the CPU image (the rendering of this camera will continue until finished)

  2. Render the GPU camera image

  3. Blend the two resulting images according to the camera setup in the VRL (which one is front or back, etc…)