View Full Version : 3d Engine design

Ian Jones
02 February 2007, 12:50 PM
Hi all... I'm just at the start of learning about 3d graphics engine design. I'm not making a game, but I suppose a lot of what I'm creating has many similarities, eg input, simulate, update, render and so on. I'm familiar with OpenGL, although still a beginner there. What I need to know now is what I need to learn about next. I can see a few things I'll need to learn about.

1) Asset managers - textures, geometry...
2) Scene graph for managing objects and hiearchy in the world
3) Render translation, taking scene graph objects... depth sorting, instancing etc... ready for the graphic API (OpenGL in my case)
4) Rendering, calling the API specific things to actually draw. This linear list of things to call would be figured out at the render translation stage?

Basically I'll probably need to read some books, if u have any must have suggestions let me know. Any links to useful information online is much appreciated. I'm looking for architecture level information atm, but any specifics are highly useful aswell.

Ian Jones
02 February 2007, 01:19 PM
Just looking at OpenSG which looks very powerful. Anyone have any opinions / experiences there?

02 February 2007, 02:33 PM
You should look at one the freely avaiable engines like Ogre for structural inspiration. Be aware that writing a 3d engine with all the features you're talking about is several months work.

02 February 2007, 02:57 PM
The books by Dave Eberly are actually pretty good sources if you're serious about writing a 3D engine. (3D game engine architecture / 3D game engine design 2nd ed.) Building a good stable engine takes a lot of time though. Months are indeed possible, but years are not unheard of either.

Ian Jones
02 February 2007, 03:38 PM
Thx guys... yes I'm aware that it's a big project. I'm looking to work with existing toolsets but just trying to understand things in general terms first so I know what I'm actually needing. At the moment I'm leaning towards a general purpose scenegraph like OpenSG (The cluster network rendering is a highly desirable feature for me) rather than OGRE 3D which looks like it's tailored to games. What I don't understand, even at face value is what is the major differences? What does each do?

I'm part of a team (we're all beginners pretty much unfortunately) and we're writing a large piece of software. It will be a distributed system, networked, node based data input, manipulation and rendering engine. We're working with realtime graphics of course, integrating this with pre-rendered video and also with live video capture. The goal is to hardware accelerate as much as possible (even considering GPGPU for example) and use a distributed network processing system, like a render farm.

Because of my inexperience in the area it's very hard to figure out what we need to achieve this. We have determination and good ideas, just not experience.

CGTalk Moderation
02 February 2007, 03:38 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.