Original Post
I didn’t know if game programming, or graphics or direct x forum was best, but since this question spans them all, I guess game programming would be the best. This isnt a question on what these things are, but how to combine them together. Ok, here is the issue I have been contemplating (been busy, so progress is really slow). Anyways, I have an object created, say I request a “fountain” object. The fountain contains a render component for a model. Say upon instancing, it instances a geometry class that deals with meshes and knows how to render them. Now, I want to render the screen so I go down the hierarchy of the scenegraph (in a component) and it determines that it is visible (relative to the world). Ok, easy enough call that geometry class to render and it should render. Now I want to add in another Fountain, relative to another object
World -> fountain 1
->house -> fountain 2
Now, how can these be batched if I have to render with the position. Do I just store the position temporarily when checking if it is visible and then can batch, or should it be done another way? Now throw in a material system and how do you batch with that? Perhaps I am going about the render wrong. Currently I am designing a base geometry class (with a virtual render() function) and then I can derive TriStrip/TriList and Meshes from that. Then they are registered to the render manager (which really just checks to see if the object is visible). -> So, basically how do you include a flexable format system (knows how to deal with different formats of geometry data – mesh, tristrip, ect) with a material system (for reflections, render to texture, ect), a scenegraph and batching in a hierarchy within a manager type class? Thanks a ton – gotta get a format that seems like it will work well, and I seem to have run out of ideas at the moment. Hopefully the question makes sense.. its late.