Advertisement

Starting a 3d engine, where to begin?

Started by January 19, 2000 01:23 AM
5 comments, last by voodoo 25 years, 1 month ago
I want to start a new 3d engine but I am not sure where to begin. Should I use d3d or opengl? also once that is decided where the best part to start?? terrain system, character system or what ever?
Hardcore Until The End.
I suggest you use d3d, it''s great.
I always, always beeing one time, start by adding
object render, like having a texturemapped, gouraud shaded torus.

Greets Tobias
Advertisement
Have you ever done any 3D work before? If not, I suggest trying to build a simple engine just using DirectDraw or Glide if you happen to have a 3Dfx card. The reason is that APIs such as Direct3D or OpenGL are good if you already understand 3D, but aren't very constructive in learning 3D. There are a growing number of programmers who are writing code in one of these APIs, but couldn't program a software engine to save their lives. In the end, this is very counter-productive to being able to write cutting edge code.

Edited by - I-Shaolin on 1/19/00 4:53:58 AM
If you have not programmed 3D code before, start with a simple flat-shaded rotating cube in SOFTWARE. No D3D, no OpenGL, no Glide, just use a bare bone pixel drawing routine. If you don''t want to write a flat shading routine because ''it is too much work'', use a linedrawing routine to draw the cube in wireframe.

Build the matrix transformation routines, work out the math for rotations and perspective projection and lighting yourself, and write a simple flat shaded (single color polygon) rasteriser.

This gives you a thorough understanding of the knowledge you need to do anything else than just displaying a few textured polygons on the screen. This way you know what is under the hood of the API''s, and how you should prepare your data for efficient execution.

If you want to build a racing car, you should have at least built a simple kart to succeed.

Succes!

DaBit.

Don''t waste your time with a software engine.

I don''t understand the logic that the best way to learn how to do something is to start off with the most obscure and difficult to grasp concepts and work your way up to the easy stuff. That''s like saying the best way to learn programming is to start programming with punchcards and slowly work your way up to VisualBasic. Or the best way to understand the internet is to start with ftp and work your way up to AOL. The best way to learn is to start with the easy stuff, get that working and then delve into more and more advanced stuff.

Also reading a book or tut and ripping this equation or that equation doesn''t mean that you fully understand what is going on. 3D Graphics are just mathematical equations that transform 3D coordinates into a two-dimentional space. In the end thats all there is to it. You plug in one set of coordinates, get out another, and draw them on the screen.

Knowing the equations doesn''t necessarily mean you really understand what''s going on. Although it''s pretty obvious for the layman to understand how sine and cosine work when moving an object, I doubt seriously that knowing how to use a matrix means you can independantly derive the equations to make it work. You just plug in the numbers, multiply and that''s good enough.

Most people who ''understand'' 3D graphics are pretty serious mathamaticians. Take a look at some of the demo-scene tuts here on gamedev and then check out some old SIGGRAPH papers.

And to the people I might have offended, lets just agree right now that you''re right and I''m stupid.
-the logistical one-http://members.bellatlantic.net/~olsongt
I think I got lost trying to understand what your saying then trying to figure out the theory of relativity!!!!!

Well here is what I know! I have created a 2d engine using DirectDraw. It ''s 16bit and does some coll stuff like alpha blending, and fmvs etc...

Now here is what I know about 3d...

I have read most of Lamoth''s books and he has some bassics on creating software polygone engines... So when ever i feel to enligthen myself in that I will open up the books.

I have also written a small 3d engine that puts a extruded polygon on screen and rotates using matrix math. SO that ok.
I dont really wana delve to deep in how to make a software renderer. I just whann use either d3d or opengl to make the engine.

I also know OpenGL and its bassics. I have gone as far as putting polys on screen rotating them and using lights etc...
Hardcore Until The End.
Advertisement
Direct3D is NOT great. Any programmer who''s tried both Direct3D and OpenGL and has at least half of a brain on his/her head realizes that OpenGL is superior. John Carmack would be the first example that comes to mind. If you''re starting, you should choose OpenGL simply because its 1000x easier.

This topic is closed to new replies.

Advertisement