Data Oriented Design: How to disable elements

Started by
10 comments, last by daniel_collin 12 years, 9 months ago
Thanks Hodgman for the ideas. It seems i was looking for an too unrealistic 'optimal' performance pattern.
Advertisement
Hi,

I ran across this thread so I might be able to give you some more info on the culling we use in BF3 (I implemented it) so please shoot some more questions.
As mentioned before in the thread the culling the presentation doesn't go into detail on how the systems that uses the data works but from the culling systems perspective that isn't interesting.

The system (as in most DOD) has one task and that is with the following in data: spheres (+ some extra data), frustums -> produce a list of visible objects (or entities as we call them) the list can be made very easy and in other case it's really: entityHandle (pointer to the entity containing the data (the culling system never reads this data, its just a value that gets passed on), etc, visibleMask (bitmask of which frustums the entity is visible in)

After that it's up to the other systems to decide what to do with the data. In our case we actually do some more culling before producing the very final output (software occlusion) but the idea is still the same.

This topic is closed to new replies.

Advertisement