Sign in to follow this  
  • entries
    4
  • comments
    17
  • views
    2226

A bit of design

Sign in to follow this  
EvilStickMan

193 views

So I've got my current implied architecture which, as I've said before, is pretty ugly. This is largely due to me putting very little design effort into the project before diving into code - the design that is there is usually only there because it seemed like a good idea at the time, and not because it was worthwhile in the bigger picture. Below is a new attempt at a generalized inheritance diagram for the framework I'll be developing:

New framework architecture
Still ugly, but better than before


The idea is to push the "platform specific" stuff out as far as possible, so that we can worry about algorithms at a higher level. The above diagram doesn't necessarily do this properly (I envision a large number of revisions to this diagram over time), but it's at least a step in the right direction.

I've worked a bit on the application side over the past month or so, but a lot of my efforts have been on the scene graph side. This scene graph isn't really anything fancy - it's more of a glorified tree structure than anything else - but it'll help with organizing my scene in the long run, I think. Below is an incomplete class diagram of what I've got so far:

Scene graph
Scene graph goodness


This misses some things that are pretty important for drawable objects (like the material library, which is a static std::vector of materials owned by GraphicsObject), but gets the general point across. I've got the basic structure implemented already - the problem I am fighting now is trying to see why doing so killed my textures and display lists.

So, list of tasks for the time being:

1 - Fix texturing
2 - Eliminate all references to display lists (kind of done already)
3 - Implement vertex buffers/face buffers/tex buffers/normal buffers
4 - ensure objects are rendered as triangles
5 - Add simple radius-based collision detection
6 - Add dynamic LOD through use of multiple models
7 - Add support for collision model (simplified to collide quickly, and implemented with flexibility in mind. This may warrant its own inheritance diagram by the time I'm done)
8 - Add a model for shadow casting (simplified to draw quickly, currently using only planar projection shadows)
9 - Add support for multitexturing
10 - Revamp the object loader a bit so that it supports additional maps and shaders (far in the future).
11 - Add better shadow casting methods (Shadow maps?)
Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now