   Implementing a simple scenemanager and software renderer
  Hello,I want to implement a 3d engine using software rendering.To do so I require a simple scene management system and a software renderer.Since many of my desired features are done by Dx or OpenGL implicitly it's hard to find accurate descriptions.For this I have some questions.Naturally I structure all scene objects in a tree, beginning with a rootnode,it's children .. and so on.In each render loop I traverse the tree from top to bottom and update local spatial informations like (position, orientation and scale) to worldspace.If I screw up at some point, please let me know :)At some point I arrive at the bottom of the tree.All nodes now have local and world transformations stored.I read, that when arriving at a leaf, I have to turn and work my way up again to update bounding boxes, is that correct ?When do I implement culling ? Do I have to traverse the tree a second time ?Unfortunately I now have absolute informations (worldspace) about scale, orientation and position for every node, but not yet of the models vertices attached to a node.How do I update the vertices to worldspace? I imagine have to do more than just multipy all vertices with the worldtransformation of the node, do I not ?When do I update these vertices ?Btw. I read, that it is possible to skip worldspace completely as appearently OpenGL does ... how is this done ? Is it faster ?When do I apply view and projection transformations ?Does lighting occur before or after projection and view transformation ?I know, lot's of questions, but I can't find anything clear about this on google.I'd appreciate any help. Thnx in advance.   
  Perhaps this was a little too much.It's not important to answer all my questions at once.It would help a lot, if someone could point me to some sources about proper scene management and software rendering.Thnx all   ;  Have you started it?In this case I would start bottom-up, since otherwise you can't see the results of what you are doing.If you are just beginning, start by rendering a 2d-triangle. Then make that triangle rotate. Then render a polygon with more than 3 points. When you get to this point, move to a triangle that you can rotate in 3D. If you have problems with that, post a new question then. There are many tutorials for this, but they mean nothing unless you can already draw a 2d shape.When you know how simple 3D math works, and have a renderer that draws 3D shapes, then it will be easier to build on this to implement relative coordinates and such.   