ICU external serface detector

Blitz3D Forums/Blitz3D Programming/ICU external serface detector

ZombieWoof(Posted 2004) [#1]
http://www.camelot-software.com/files/exterior.zip

Its a good 1st cut at picking out just the exteriorly visible children of a complex model, But I want to get it a little better than it is. For example, the stair railings visible through the back windows could stand to go away.

I'm looking for suggestions on how to improve on the results I've got so far.


jfk EO-11110(Posted 2004) [#2]
Maybe the only solution is a true VIS precalculation - which is real tricky. I would suggest to make two versions of the mesh, one seen from outside, an other one from inside. You could use an automated process to determine what parts are visible from inside and outside (the original VIS calcualted Visibility of each part for each possible player position), so you would need to cicle te camera around the house and detect all visible Parts (eg. using the ICU Method). From inside the house you would infact need to use some kind of custerbased VIS data, or, this would be easier, simply make the windows non-transparent, so you could simply invert the VIS list...


ZombieWoof(Posted 2004) [#3]
I'm pretty happy with what I have so far, I don't WANT full vis data for this specific case -- there will be an extension to this app, or a seperate app to create full vis data which will only take effect when the player is within the bounding box of the model.

I've added:
1. command line support for automated processing
2. file picker dialog if no filename on command line
3. optional 2nd stage processing that uses % of pixels visible
4. manual vis data editing mode

The manual editor shows the currently visible entities at 10% alpha, poly counts, etc... you step through the child entities with a spinner (which are turned 100% alpha so you can see them better) and switch them on/off as desired.

What I'm asking for is better ideas for #3 -- how to make the full automated version more accurate without manual editing. Maybe something like "is the child completely contained within the bounding box of a subset of the other children" which may also need something like "find one or more child subsets that define an enclosed space"

Processing time required just isn't relevant to me at this point -- as long as its the CPU getting a workout and not my mouse/keyboard :)


ZombieWoof(Posted 2004) [#4]
Uploaded new EXE only version of the app. Only thing left to add is the b3d export option with child alpha preset for external view.

I decided to use an INI file structure for stored data. Seemed like the best bet for allowing other apps I have planned to access/modify the mesh properties without worrying about updates damaging previously stored data.

I'm off learning about types and setting up the structure for the loader that will manage mesh visibility in-game.