AbbaRue,
Heres a very useful system for developing your own Occlusion, Hidden Surface Removal, or VIS System: CSP Compiler.
I developed a similar system myself and requires level maps that contain child meshes. It works by coloring each child mesh with a unique color starting from 1. The child mesh id = unique color value. A camera is incremented through the level taking snapshots. A set of snapshots from 6 or more angles are usually required. The set of snapshots are scaned for the colors. The camera position and colors found are written to a data file.
Once saved, there are many ways to load this VIS data for use. One way is to load camera position into a 3 element Array Table and child mesh ids into a bank.
Overall the system is fairly simple and works well.
Heres a very useful system for developing your own Occlusion, Hidden Surface Removal, or VIS System: CSP Compiler.
I developed a similar system myself and requires level maps that contain child meshes. It works by coloring each child mesh with a unique color starting from 1. The child mesh id = unique color value. A camera is incremented through the level taking snapshots. A set of snapshots from 6 or more angles are usually required. The set of snapshots are scaned for the colors. The camera position and colors found are written to a data file.
Once saved, there are many ways to load this VIS data for use. One way is to load camera position into a 3 element Array Table and child mesh ids into a bank.
VIS(x,y,z)=ChildMeshIDBankOnce the data is loaded you could easily display visible Child meshes corresponding camera x,y,z position. Assuming you handle your child mesh geometry with the Array childmesh(n).
For loop = 0 To BankSize(VIS(camera\x,camera\x,camera\z)) Step 4 ShowEntity childmesh(PeekInteger(VIS(camera\x,camera\x,camera\z),loop) Next
Overall the system is fairly simple and works well.