What a batch writes per ray in closest-hit mode, with hitNormal (the
default): BvhHitRecord, 40 bytes. BvhHit itself cannot live in a buffer
because bool is not host-shareable in WGSL, so frontFace is stored as 0
or 1, and the normal as three f32 (a vec3f would pad the record to 48).
word 0 t: f32 word 4-5 barycentrics: vec2f
word 1 instance: u32 word 6 material: u32 (NO_MATERIAL for none)
word 2 triangle: u32 word 7-9 normal x, y, z: f32
word 3 frontFace: u32
What a batch writes per ray in closest-hit mode, with
hitNormal(the default):BvhHitRecord, 40 bytes.BvhHititself cannot live in a buffer becauseboolis not host-shareable in WGSL, sofrontFaceis stored as 0 or 1, and the normal as three f32 (avec3fwould pad the record to 48).