convert all leafs in octree to PvsNode, add to list pvsNodes | |
for (every nodeX in pvsNodes): | |
for (every nodeY in pvsNodes): | |
if (nodeX == nodeY or nodeX adjecent or intersecting nodeY): | |
continue | |
setup camera for (nodeX, nodeY) | |
draw every node except nodeX & nodeY | |
turn on occlusion query | |
draw nodeY as bounding box | |
turn off occlusion query | |
if (numSamples > 0): // node is visible | |
add nodeY to nodeX's potentially visible set | |
setup camera for node, sideI: | |
float width, height, near; | |
switch (sideI): | |
case X+ | |
case X- | |
width = x extent | |
height = y extent | |
near = z extent / 2 | |
case Y+ | |
case Y- | |
width = x extent | |
height = z extent | |
near = y extent / 2 | |
case Z+ | |
case Z- | |
width = z extent | |
height = y extent | |
near = x extent / 2 | |