| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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
|