pvsnotes 1016 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. convert all leafs in octree to PvsNode, add to list pvsNodes
  2. for (every nodeX in pvsNodes):
  3. for (every nodeY in pvsNodes):
  4. if (nodeX == nodeY or nodeX adjecent or intersecting nodeY):
  5. continue
  6. setup camera for (nodeX, nodeY)
  7. draw every node except nodeX & nodeY
  8. turn on occlusion query
  9. draw nodeY as bounding box
  10. turn off occlusion query
  11. if (numSamples > 0): // node is visible
  12. add nodeY to nodeX's potentially visible set
  13. setup camera for node, sideI:
  14. float width, height, near;
  15. switch (sideI):
  16. case X+
  17. case X-
  18. width = x extent
  19. height = y extent
  20. near = z extent / 2
  21. case Y+
  22. case Y-
  23. width = x extent
  24. height = z extent
  25. near = y extent / 2
  26. case Z+
  27. case Z-
  28. width = z extent
  29. height = y extent
  30. near = x extent / 2