3d programming and directx api
Download
1 / 23

3D Programming and DirectX API - PowerPoint PPT Presentation


  • 115 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