Delta3D/Page2
The Delta3D Knowledge Tree
Woops. I thought that tree metaphor was dead!? Sorry.
So, there are some core areas of knowledge that, if you don't have any clue about them you're in trouble with Delta3D.
Here's the basic list (upside down tree, root first!):
- C++
- Basic Graphics Concepts
- OpenGL
- Open Scene Graph (OSG)
- Delta3D
C++
Delta3D is a set of libraries written in C++. So you'll be writing your core VSG (Vis, Sim, Game!) code in C++ in order to easily call these functions and use these classes. You can learn C++ as you go, but we strongly encourage looking up on wikipedia or cplusplus.com any concepts you read that you don't understand.
Here's a little test. Do you feel comfortable when I speak the following words?
- Method
- Member
- Derived class
- Virtual function
- Protected member
- Interface
- Organism
Forget that last one. It's a silly reference to a Ren and Stimpy cartoon. You're going to be sifting through reams of Delta3D and OSG online docs to find the classes and functions you'll need. These docs use these fancy C++ terms like they're going out of style. Unless you've got a decent handle on them you're going to be popping handfuls of ibuprofen.
Basic Graphics Concepts
Know what a sphere is? How about a plane? How about a vertex, vertex normal, face, polygon? Vector? Again, look these graphics terms up on wikipedia and follow some of the links. It's quite fun. OpenGL is all about this stuff and OpenGL is REALLY near the root of that mythical Knowledge Tree. It wouldn't hurt to read a bit of OpenGL too but I think that can wait until you start getting deeper into your own VSG development.
OpenGL
Really, look up OpenGL in Wikipedia and you'll have everything you need. Let's just add this, as a useful simplification: There are only two low-level graphics libraries in existence, one of which every computer needs to do 3D graphics: DirectX and OpenGL. DirectX runs only on Windows. OpenGL runs on everything else, including Windows. Delta3D uses OpenGL.
Open Scene Graph
Delta3D is a set of functions and classes that make building a VSG easier and more worry-free. It's got lots of things that assume you want to build a VSG in a particular way (but not too particular). However, there exists a data structure called a scene graph that assumes even less about what you are trying to do with your code but still tries to help. Mostly what the scene graph attempts to do is hide some of the nasty, voluminous OpenGL code that you need to make 3D graphics appear on the screen. Open Scene Graph is a very successful, long-lived open source scene graph library that you can download and start using today! Of course, Delta3D beat you to that. It's already based on top of OSG. Does Delta3D hide all the nasty OSG workings from you like OSG did for OpenGL? Not really! Or, partly, but not as much as you might like. This is VERY important: You're not going to get very far with Delta3D without knowing the how/what/why of OSG workings. This is sad but true. You've really got two large libraries, Delta3D AND OSG, to get a handle on before you can work magic with Delta3D.
So might as well take a look at it now: www.openscenegraph.org. There's not avoiding it. Of course, this book covers OSG too, but from the perspective of someone trying to get it working with Delta3D.
Delta3D
Finally we arrive at the glittery leaves of our tree, Delta3D itself. Lots of classes and functions to explore. And it's very well organized so each bit you learn solidly will pay off in helping you understand that which still lies before you.