Intel® Embree Ray Tracing Kernels
Discussion forum on the open source ray tracing kernels for fast photo-realistic rendering on Intel® CPU(s)

One RTCDevice per RTCScene?

New User

I have a renderer with a two-tiered acceleration structure (Top-level "TLAS" and base-level "BLAS").  I have switched to using Embree for the BLAS, but am continuing to maintain the TLAS (it allows me to construct a more complex scene graph with transformation nodes, which allows me to modify individual pieces of geometry without needing to reconstruct the BLAS.  It also allows me to use double precision rays, and simply transform them into a "local frame" and cast down to single precision prior to intersecting the Embree `RTCScene`).


To keep things simple, my library has a `Universe` class which contains all models and the TLAS, and a `Model` class which contains the geometry and BLAS.  The `Universe` stores a single `RTCDevice` which each `Model` is given when constructing the `BLAS` (and so each `RTCScene` shares a single `RTCDevice`).  


I am wondering if instead, I could just have every `Model` have its own `RTCDevice`.  Is there a limit, or any performance penalties for doing this?

0 Kudos
0 Replies