• Advertisement
Sign in to follow this  

Transitioning Into 3D

This topic is 3495 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Greetings, I've been dabbling with 2D game programming over the last year as a stepping stone into the world of 3D. I've programmed several pong, tetris, and breakout clones, as well as a few of my own ideas along the way. I've learned quite a bit so far. I've decided that I'm ready to take the jump into the 3D realm. My plan is to stick with XNA and C# which I've been using for my 2D adventures. My question is this: Do you guys have any suggestions for a good path to follow when learning 3D? E.g. Start with getting a model on the screen, then build a terrain engine, etc. I started off displaying a single primitive on the screen which seemed to work alright. Did simple stuff, made it rotate. Colored vertex. Played with input handling. Then I followed a tutorial for building our some terrain based on a heightmap, which went ok for the mostpart. But, from single triangle to terrain, now I'm concerned about view, world, and projection matrices, XNA "effects", figuring out a "camera" (and how it fits in with the matrices), maybe a scene graph, etc. I don't think any one thing is beyond my comprehension. I'm just having a hard time coming up with a logical progression for learning the pieces of the puzzle, how they fit together, and why. How did you guys go about learning the pieces when you dove into 3D? Thanks!

Share this post


Link to post
Share on other sites
Advertisement
Start by getting some shapes on screen and figure out moving them around, colouring and applying textures and such.

Then, I guess you could 3D-ise your current 2D achievements - make 3D Pong, Tetris and Breakout. Pong and Tetris could be the same 2D games with 3D shapes, but you could give Breakout an extra dimension of blocks and turn it into an actual 3D game.

Share this post


Link to post
Share on other sites
I personally never really 'started' in 2D so I started with learning 3D techniques. If I were to have started in 2D though and moved to 3D, I would probably start like you (in fact numerous tutorials prefer that), where you start by drawing simple shapes. Though, I feel your jump from simple primitive to terrain is quite a massive one.

I've written a tutorial series using C# and XNA you can find HERE. It's all 3D (except for the 2D HUD) and hopefully will help you a bit.

Specifically check out Tutorials 3 and 4 where I go through some simple coding of those transformations. Here's kinda of a reference:

World - Position, Rotation, and Scaling of objects in your world
View - Position, looking at direction, and up vector of the camera
Projection - Transformation that converts your 3D world into a 2D image to render to your screen.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement