2 Matching Annotations
  1. Aug 2023
    1. .

      We could add another paragraph / section here discussing the unstructured mesh rendering. Suggested text:

      yt takes a different approach for rendering unstructured mesh data. Here, the user is often interested in sampling data that is defined on the surface of an unstructured grid such as a finite element mesh. To perform the ray-tracing operation, yt instead breaks up the unstructured mesh into primitives, and then constructs a bounding volume hierarchy (BVH) containing those primitive objects. To recursively subdivide the volumes, we split the longest axis in a location that bisects the primitives it contains. For first order meshes (e.g. linear tetrahedral, hexahedral, and "wedge" elements) the primitives used are triangles, and ray-triangle intersection can be performed using standard techniques. For second-order meshes, the primitive objects are instead bi-quadratic patches, and intersection calculations need to performed using Newton-Raphson iteration. Once the primitive(s) intersecting each ray are calculated, the corresponding element can be used to sample the underlying solution as in the pixelation section above. yt can either use its native software BVH code for this operation, or optionally offload the ray tracing operation to the Embree library from Intel.