<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic One RTCDevice per RTCScene? in Intel® Embree Ray Tracing Kernels</title>
    <link>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/One-RTCDevice-per-RTCScene/m-p/1599892#M998</link>
    <description>&lt;P&gt;I have a renderer with a two-tiered acceleration structure (Top-level "TLAS" and base-level "BLAS").&amp;nbsp; 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.&amp;nbsp; 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`).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;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.&amp;nbsp; The `Universe` stores a single `RTCDevice` which each `Model` is given when constructing the `BLAS` (and so each `RTCScene` shares a single `RTCDevice`).&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am wondering if instead, I could just have every `Model` have its own `RTCDevice`.&amp;nbsp; Is there a limit, or any performance penalties for doing this?&lt;/P&gt;</description>
    <pubDate>Wed, 22 May 2024 20:10:42 GMT</pubDate>
    <dc:creator>crgnam</dc:creator>
    <dc:date>2024-05-22T20:10:42Z</dc:date>
    <item>
      <title>One RTCDevice per RTCScene?</title>
      <link>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/One-RTCDevice-per-RTCScene/m-p/1599892#M998</link>
      <description>&lt;P&gt;I have a renderer with a two-tiered acceleration structure (Top-level "TLAS" and base-level "BLAS").&amp;nbsp; 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.&amp;nbsp; 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`).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;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.&amp;nbsp; The `Universe` stores a single `RTCDevice` which each `Model` is given when constructing the `BLAS` (and so each `RTCScene` shares a single `RTCDevice`).&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am wondering if instead, I could just have every `Model` have its own `RTCDevice`.&amp;nbsp; Is there a limit, or any performance penalties for doing this?&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 20:10:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/One-RTCDevice-per-RTCScene/m-p/1599892#M998</guid>
      <dc:creator>crgnam</dc:creator>
      <dc:date>2024-05-22T20:10:42Z</dc:date>
    </item>
  </channel>
</rss>

