3d programming and directx api
Download
Skip this Video
Download Presentation
3D Programming and DirectX API

Loading in 2 Seconds...

play fullscreen
1 / 23

3D Programming and DirectX API - PowerPoint PPT Presentation


  • 113 Views
  • Uploaded on

3D Programming and DirectX API. Content. Mathematics Prepare to Write a 3D program Program Structure How does the computer calculate 3D image? Illustration Other Features in DirectX Library. Mathematics.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 3D Programming and DirectX API' - jerome-chapman


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
content
Content
  • Mathematics
  • Prepare to Write a 3D program
  • Program Structure
  • How does the computer calculate 3D image?
  • Illustration
  • Other Features in DirectX Library
mathematics
Mathematics
  • Don’t worry! If you see this chapter in the book, just skip it, because you’ve learned.
  • Importance of “Transform”
    • Translation
    • Rotation
    • Scaling
    • ……
  • Vector & Matrix
  • Other Advanced Algorithm
prepare to write a 3d program
Prepare to Write a 3D program
  • Using Direct3D
  • Compiler - VS.NET 2003
  • Download DirectX SDK
    • http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/anch_directx.asp
    • DirectX 9.0 SDK Update - (February 2005)
  • An Easy Book
  • MSDN – http://www.msdn.com
program structure
Program Structure
  • Initialize D3D Library – Create Device
  • Loading or Building Model
  • Set Light, Material, and Texture
  • Calculate Transform Matrix, View Matrix , and Projection Matrix
  • Render!
initialize d3d library
Initialize D3D Library
  • IDirect3D9*
  • Direct3DCreate9(D3D_SDK_VERSION)
  • IDirect3DDevice9*
  • CreateDevice()

3D Device( 3D Card)

Direct3DCreate9()

CreateDevice()

IDirect3DDevice9*

IDirect3D *

D3DLibrary

how does the computer calculate 3d image
How does the computer calculate 3D image?
  • CPU and GPU (Graphic Process Unit)
  • 3D Library – OpenGL and Direct3D
how does the computer calculate 3d image1
How does the computer calculate 3D image?
  • Pipeline

CPU

GPU

Light, Texture, Material

Vertex Data

Data in Model Space

World Space

Camera Space

World Matrix

View Matrix

View Space

(your screen)

Projection Matrix

loading and building modal
Loading and Building Modal
  • Vertex/Index Buffer
  • The Structure of Vertex

V1

V3

V3

V1

V2

V4

Vertex Buffer

V4

1

2

3

1

4

2

Index Buffer

V2

loading and building modal1
Loading and Building Modal

nZ

U

struct Vertex

{

float x, y, z;

float nx, ny, nz;

float u, v; // texture coordinates

};

#define FVF_VERTEX (D3DFVF_XYZ | D3DFVF_NORMAL| D3DFVF_TEX1)

Demo 1-TexCube

X

Y

Z

nX

nY

V

loading and building modal2
Loading and Building Modal
  • X-file
    • When the model is complex, we can’t build it in our code.
    • Using 3D graphic tool, ex. Maya, 3D studio MAX, Lightwave, MilkShake
    • Direct3D have already provide funcs to load and parse X-file
    • Static Model and Animation Model
set light material and texture
Set Light, Material, and Texture
  • Light - light source

D3DLIGHT9 light;

light.Type = D3DLIGHT_DIRECTIONAL;

light.Ambient = D3DXCOLOR(0.8f, 0.8f, 0.8f, 1.0f);

light.Diffuse = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);

light.Specular = D3DXCOLOR(0.2f, 0.2f, 0.2f, 1.0f);

light.Direction = D3DXVECTOR3(1.0f, -1.0f, 0.0f);

Demo 2-TexCube 3-TexCube 4-TexCube

set light material and texture1
Set Light, Material, and Texture
  • Material – reflection of light

{0.0, 1.0, 1.0, 1.0}

{1.0, 1.0, 0.0, 1.0}

{1.0, 0.0, 1.0, 1.0}

Demo EffetEdit

set light material and texture2
Set Light, Material, and Texture
  • Texture – surface of 3D object

Demo 4-Tex 5-Tex

calculate world matrix view matrix and projection matrix
Calculate World Matrix, View Matrix , and Projection Matrix
  • World Matrix
    • D3DXMatrixTranslation(…)
    • D3DXMatrixRotationX(…)
    • D3DXMatrixIdentity(…)
    • D3DXMatrixScaling(…)
calculate world matrix view matrix and projection matrix1
Calculate World Matrix, View Matrix , and Projection Matrix
  • View Matrix
    • D3DXMatrixLookAtLH(&V, &position, &target, &up);
calculate world matrix view matrix and projection matrix2
Calculate World Matrix, View Matrix , and Projection Matrix
  • Projection Matrix

D3DXMatrixPerspectiveFovLH();

render
Render!!
  • Prepare for render

Device->SetTransform(D3DTS_VIEW, &V);

Device->SetTransform(D3DTS_WORLD, &V);

Device->SetTransform(D3DTS_PROJECTION, &V);

  • Start and Finish Render

Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);

Device->BeginScene();

……./* render render render !!!! */….

Device->EndScene();

render1
Render !!

if( mtrl )

device->SetMaterial(mtrl);

if( tex )

device->SetTexture(0, tex);

device->SetStreamSource(0, _vb, 0, sizeof(Vertex));

device->SetIndices(_ib);

device->SetFVF(FVF_VERTEX);

device->DrawIndexedPrimitive(

D3DPT_TRIANGLELIST,

0,

0,

24,

0,

12);

Set Material

Set Texture

Set Index Buffer

Tell D3D your vertex format

Just Draw It!!

more skill
More Skill
  • Terrain – Height Map
  • Shadow
  • Other Algorithm…
  • Good website :www.gamedev.net
samples
Samples
  • Airplane
  • Walking Man
  • BasicHLSL
  • ShadowVolume
  • Terrain
other features in directx library
Other Features in DirectX Library
  • DirectPlay
    • Network Game
  • DirectSound
    • Handle sound effect
ad