?
Solved

DirectX...

Posted on 2003-02-21
4
Medium Priority
?
404 Views
Last Modified: 2010-04-01
Just a simple question:
What do DirectX developers use to create their models for their game, do they create them at runtime by creating a bunch of triangles and piecing them together to make a 3D model, and then map an image around them?  Or do they use another application (like 3D Studio Max) to create their models, and then import them.

If they use a 3D-modeling program, how do they import them into DirectX? Does DirectX support these 3D modeling files they create in a third-party application?

Thanks!

Ernie
0
Comment
Question by:fastawdtsi
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 12

Accepted Solution

by:
Salte earned 400 total points
ID: 7993034
They generally use a modelling tool. I.e. a program which allow you to graphically design your model. That tool will then calculate all the triangles etc involved and save the info to a file. The game will then read that file and thus get the triangle positions for the model.

Now, as the model is moving in the game world it will both have movement in that the individual triangles of the model will move relative to each other and it may move in that the model itself moves around the world. These two types of movements are considered independent of each other. For each model in the fantasy world you define a specific coordinate system for that model. In this way you can move the model to a different place and it will look exactly the same as the original if the model hold a posture or position that is the same. This 'external movement' also involves rotation, tilting or whatever other movement. As long as all the triangles of that model move in the same manner relative to each other, this will not affect the appearance of the model. Well, it will change some appearance since each viewer will see the model from a different perspective etc but that is yet another transformation which I won't go into here. (Transformation of game world coordinates to screen coordinates). However, if the model changes its posture or moves one arm without moving the rest of the body etc then some triangles move their relative position with repsect to other triangles of the same model. Then this is a movement within the coordinate system of the model. Typically this kind of movement is done using skeleton frame techniques in which the model contain a description of a 'skeleton' and the various triangles of the model has a fixed position relative to a specific point of the skeleton. So if you move the skeleton arm then all the triangles that make up the arm will move in a manner so that each of those triangles are positioned in the same place relative to their 'focus point' of the skeleton. The model description therefore do not only contain the triangles but it also contain a list of all the focus points of a skeleton and for each triangle enlist which focus point is the focus point for this triangle.

This is too much info to plot in manually. Instead you have software applications that allow you to graphically design a model, assign the focus points of the skeleton and then the software figure out for each triangle which focus point it should use as its focus point. Then you also have something called "motion capture" where you have an actor or other human being where you have attached various sensors on that person. These sensors can sense where they are at any time and then while the actor moves, the sensors will read their movement and send the info to a computer. The computer will then use this to calculate how the focus points of the skeleton moves when he is moving and thus you can make your 3D model make the same moves as the actor does. This is how games and movie special effects can manage to make computer models have life-like movements.

This technique is also making its way into animation. If you notice old cartoons you see that they often have people who stand straight up and they move one hand without moving rest of the body etc. This is not natural movement, if you raise your arm you usually also move other body parts simultaneously etc. Motion capture can capture such movements and make the 3D model move more naturally.

However, none of this is done by manually typing in each number to plot the coordinates of individual triangles etc...If the game manufacturer did it that way, the development cycles of games would take 100 of years or a million data plotters or so just for a tiny little small game.

Do a search for "3D studio max" or something like that on the web. I believe that is the software that most game manufacturers use for this model making. Unfortunately it cost a lot of money and isn't free so you can't use it for your own little game - unless you have a ton of money you're willing to waste away. Professional companies on the other hand sell millions of games world wide and can afford to buy this kind of tools. That is one bad thing with graphical games. Back in 1989 I made an abermud clone - a text based mud - and one of the big advantages of text based games is that you don't need such expensive tools to make it. Not many people want to play text based games any more though.

Alf
0
 

Author Comment

by:fastawdtsi
ID: 7993241
Wow...
First off, thanks A LOT for all the info - very informative.  This seems a little outa my range for now.  Ok, so Direct3D isn't the way to go yet, how about DirectDraw - that is 2D-based and a lot easier to deal with - right?

Man - I'm so confused.

I'm just looking at creating an RPG (for fun) and just need a "from above" prospective, which means all I need is a 2D platform to plot out images (Hero, monsters, items, terrain ect..)  (like the original Zelda), and move these images as needed, by either keyboard-input or mouse.  

I know people aren't into games like this these days, but I feel (in my opinion) this will get me a good jump start in game design and get me some good conceptual knowlege of game design.

Thank you so much

p.s. since you gave so much info on the last reply, im going to boost the points to 100, thanks again

Ernie
0
 

Author Comment

by:fastawdtsi
ID: 7993303
Wow...
First off, thanks A LOT for all the info - very informative.  This seems a little outa my range for now.  Ok, so Direct3D isn't the way to go yet, how about DirectDraw - that is 2D-based and a lot easier to deal with - right?

Man - I'm so confused.

I'm just looking at creating an RPG (for fun) and just need a "from above" prospective, which means all I need is a 2D platform to plot out images (Hero, monsters, items, terrain ect..)  (like the original Zelda), and move these images as needed, by either keyboard-input or mouse.  

I know people aren't into games like this these days, but I feel (in my opinion) this will get me a good jump start in game design and get me some good conceptual knowlege of game design.

Thank you so much

p.s. since you gave so much info on the last reply, im going to boost the points to 100, thanks again

Ernie
0
 
LVL 12

Expert Comment

by:Salte
ID: 7995837
I hear you,

It is a problem that you can't design a game today sitting by yourself and just writing it.

Those big games are made by big companies who invest lots and lots of money into them. The good side is that customers get really fancy games but a bad side is that the threshold for someone new in the field to get started is MUCH higher than what it used to be. A game today typically employ lots of different people from programmers to designers and composers (don't forget the music and sound effects!) and it is really big business and big projects involving lots of people.

Alf
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question