Rays aimed exactly at the seams of tessellatedQuad(cells, half): interior
grid-line edges, the diagonals, and interior vertices where six triangles
meet (categories cycle through SHARED_EDGE_RAY_CATEGORIES). Every
target lies strictly inside the quad (grid-line targets at least 0.2 from its
border, diagonal ones at least 5% of a cell), and origins sit 0.5 to 3.5
above or below it, so every ray must hit: a miss is a ray that
slipped between two triangles. Watertight walks let none through.
Seeded and deterministic: the GPU oracle page (trace-oracle) traces exactly
these rays (seed 555 plain, 777 through its transform). Rays are rounded to
f32 with unit directions, tMin 0 and tMax 1e6, so a CPU check and the GPU
see the same ray. categories[i] is the index of ray i's category.
Rays aimed exactly at the seams of
tessellatedQuad(cells, half): interior grid-line edges, the diagonals, and interior vertices where six triangles meet (categories cycle through SHARED_EDGE_RAY_CATEGORIES). Every target lies strictly inside the quad (grid-line targets at least 0.2 from its border, diagonal ones at least 5% of a cell), and origins sit 0.5 to 3.5 above or below it, so every ray must hit: a miss is a ray that slipped between two triangles. Watertight walks let none through.Seeded and deterministic: the GPU oracle page (
trace-oracle) traces exactly these rays (seed 555 plain, 777 through its transform). Rays are rounded to f32 with unit directions,tMin0 andtMax1e6, so a CPU check and the GPU see the same ray.categories[i]is the index of rayi's category.