Extended CWBVH node for GPU traversal (128 bytes) More...
#include <BVHBuilder.h>
Data Fields | |
| float | p [3] |
| Quantization base point (12 bytes) | |
| uint32_t | e_packed |
| Packed exponents: e_x | e_y<<8 | e_z<<16 (4 bytes) | |
| uint8_t | qmin_x [8] |
| uint8_t | qmin_y [8] |
| uint8_t | qmin_z [8] |
| uint8_t | qmax_x [8] |
| uint8_t | qmax_y [8] |
| uint8_t | qmax_z [8] |
| uint8_t | imask |
| Internal/leaf mask (1 bit per child) | |
| uint8_t | meta [7] |
| Padding to maintain 128-byte node alignment. | |
| uint32_t | base_index_child |
| Base index for child nodes. | |
| uint32_t | base_index_triangle |
| Reserved. | |
| uint32_t | child_first_prim [8] |
| First primitive index for each leaf child (32 bytes) | |
| uint8_t | child_prim_count [8] |
| Primitive count for each leaf child (8 bytes) | |
| uint8_t | child_prim_type [8] |
| Primitive type for each leaf child (8 bytes) | |
Extended CWBVH node for GPU traversal (128 bytes)
8-wide BVH with quantized AABBs plus per-child leaf metadata. Extended from standard 80-byte CWBVH to properly support patches/triangles.
Layout: 80 bytes: Standard CWBVH (quantized AABBs + metadata) 48 bytes: Extended per-child leaf data
Expected performance: 1.6-2.1x faster than BVH2 for incoherent rays Memory footprint: Still ~33% of uncompressed BVH2
Definition at line 59 of file BVHBuilder.h.
| uint32_t helios::CWBVH_Node::base_index_child |
Base index for child nodes.
Definition at line 74 of file BVHBuilder.h.
| uint32_t helios::CWBVH_Node::base_index_triangle |
Reserved.
Definition at line 75 of file BVHBuilder.h.
| uint32_t helios::CWBVH_Node::child_first_prim[8] |
First primitive index for each leaf child (32 bytes)
Definition at line 78 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::child_prim_count[8] |
Primitive count for each leaf child (8 bytes)
Definition at line 79 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::child_prim_type[8] |
Primitive type for each leaf child (8 bytes)
Definition at line 80 of file BVHBuilder.h.
| uint32_t helios::CWBVH_Node::e_packed |
Packed exponents: e_x | e_y<<8 | e_z<<16 (4 bytes)
Definition at line 61 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::imask |
Internal/leaf mask (1 bit per child)
Definition at line 72 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::meta[7] |
Padding to maintain 128-byte node alignment.
Definition at line 73 of file BVHBuilder.h.
| float helios::CWBVH_Node::p[3] |
Quantization base point (12 bytes)
Definition at line 60 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::qmax_x[8] |
Definition at line 67 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::qmax_y[8] |
Definition at line 68 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::qmax_z[8] |
Definition at line 69 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::qmin_x[8] |
Definition at line 64 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::qmin_y[8] |
Definition at line 65 of file BVHBuilder.h.
| uint8_t helios::CWBVH_Node::qmin_z[8] |
Definition at line 66 of file BVHBuilder.h.