RE: [Algorithms] Game engine question
Brought to you by:
vexxed72
From: Stefan B. <ste...@di...> - 2004-01-28 11:31:05
|
The old scene graph discussion! I think part of the problem is that people have different ideas of what a "scene graph" really is. Many think it's the uber-structure which is used to represent the entire world, some (including myself) have more general definitions. A problem with many generic scene graph implementations is that in practice, they simply perform worse than rendering systems with more hard-wired behaviour. This is especially true for the PS2, where memory access is something you really want to avoid. "Pure" OO designs often perform like crud compared to more pragmatic approaches simply because with OO you tend to group data in ways that make sense from a purely structural perspective instead of a performance perspective. A prime example would be your reference to having a node per bone in a skeleton. This does not perform well at all and offers little, if any, benefit. You're much better off describing your skeleton hierarchy using an array of transformation matrices and an array of indices describing the relationships between these transformations. Another really bad idea is having hierarchical state propagation. For example, having some kind of nodes for controlling whether backface culling is on or off, which affects all nodes below it. This "feels" powerful but just ends up complicating and slowing the system down by having to maintain state stacks etc, and it's rarely useful in a real-life scenario. Well, I could go on forever actually but I have to go. This is more of a SWEng-type discussion anyway really. In the end I think this is all about being pragmatic and not getting carried away and over-generalizing systems if it has little benefit. The problem is that often you won't know this until you tried both approaches ;) /Stefan Stefan Boberg Chief Technical Officer Digital Illusions CE AB |