1.3.72
 
Loading...
Searching...
No Matches
helios::CWBVH_Node Struct Reference

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)
 

Detailed Description

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.

Field Documentation

◆ base_index_child

uint32_t helios::CWBVH_Node::base_index_child

Base index for child nodes.

Definition at line 74 of file BVHBuilder.h.

◆ base_index_triangle

uint32_t helios::CWBVH_Node::base_index_triangle

Reserved.

Definition at line 75 of file BVHBuilder.h.

◆ child_first_prim

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.

◆ child_prim_count

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.

◆ child_prim_type

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.

◆ e_packed

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.

◆ imask

uint8_t helios::CWBVH_Node::imask

Internal/leaf mask (1 bit per child)

Definition at line 72 of file BVHBuilder.h.

◆ meta

uint8_t helios::CWBVH_Node::meta[7]

Padding to maintain 128-byte node alignment.

Definition at line 73 of file BVHBuilder.h.

◆ p

float helios::CWBVH_Node::p[3]

Quantization base point (12 bytes)

Definition at line 60 of file BVHBuilder.h.

◆ qmax_x

uint8_t helios::CWBVH_Node::qmax_x[8]

Definition at line 67 of file BVHBuilder.h.

◆ qmax_y

uint8_t helios::CWBVH_Node::qmax_y[8]

Definition at line 68 of file BVHBuilder.h.

◆ qmax_z

uint8_t helios::CWBVH_Node::qmax_z[8]

Definition at line 69 of file BVHBuilder.h.

◆ qmin_x

uint8_t helios::CWBVH_Node::qmin_x[8]

Definition at line 64 of file BVHBuilder.h.

◆ qmin_y

uint8_t helios::CWBVH_Node::qmin_y[8]

Definition at line 65 of file BVHBuilder.h.

◆ qmin_z

uint8_t helios::CWBVH_Node::qmin_z[8]

Definition at line 66 of file BVHBuilder.h.


The documentation for this struct was generated from the following file: