Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Game Programming
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Basic Flight Simulation
September 12, 2005
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Objectives
Practice in using our camera model and basic terrain rendering
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Two Cameras
First camera – first person viewbehind an airplane
Second camera – whole viewcorner of the terrain
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Airplane (1)
ID3DXMesh interfacecreating an empty mesh
creating an object and loading the geometric data from X file
HRESULT D3DXLoadMeshFromX (LPCSTR pFilename,DWORD Options,LPDIRECT3DDEVICE9 pDevice,LPD3DXBUFFER* ppAdjacency,LPD3DXBUFFER* ppMaterials,LPD3DXBUFFER* ppEffectInstances,PDWORD pNumMaterials,LPD3DXMESH* ppMesh
);
HRESULT D3DXLoadMeshFromX (LPCSTR pFilename,DWORD Options,LPDIRECT3DDEVICE9 pDevice,LPD3DXBUFFER* ppAdjacency,LPD3DXBUFFER* ppMaterials,LPD3DXBUFFER* ppEffectInstances,PDWORD pNumMaterials,LPD3DXMESH* ppMesh
);
HRESULT ID3DXCreateMeshFVF (DWORD NumFaces,DWORD NumVertices,DWORD Options,DWORD FVF,LPDIRECT3DDEVICE9 pDevice,LPD3DXMESH* ppMesh
);
HRESULT ID3DXCreateMeshFVF (DWORD NumFaces,DWORD NumVertices,DWORD Options,DWORD FVF,LPDIRECT3DDEVICE9 pDevice,LPD3DXMESH* ppMesh
);
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Airplane (2)
ID3DXMesh interface (cont.)reorganizing the vertices and indices of a mesh to render it more efficiently
drawing the triangles of a particular subset specified
ex) drawing all subsets of a mesh
HRESULT ID3DXMesh::OptimizeInplace (DWORD Flags,CONST DWORD* pAdjacencyIn,DWORD* pAdjacencyOut,DWORD* pFaceRemap,LPD3DXBUFFER* ppVertexRemap
);
HRESULT ID3DXMesh::OptimizeInplace (DWORD Flags,CONST DWORD* pAdjacencyIn,DWORD* pAdjacencyOut,DWORD* pFaceRemap,LPD3DXBUFFER* ppVertexRemap
);
HRESULT ID3DXMesh::DrawSubset(DWORD AttribId);HRESULT ID3DXMesh::DrawSubset(DWORD AttribId);
for(int i=0; i<numSubsets; i++) {Device->SetMaterial( mtrls[i] );Device->SetTexture( 0, textures[i] );Mesh->DrawSubset(i);
}
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Global Variables
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Setting a Second Camera
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Loading a Mesh from an X File
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Extracting Material & Texture
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Optimizing a Mesh
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Computing the Bounding Box
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Setting a Light
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Cleanup ( )
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Window Procedure
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Display ( ) – Keyboard
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Display ( ) – Viewing
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Display ( ) – Drawing a Mesh
Sun-Jeong Kim http://www.hallym.ac.kr/~sunkim/teach/2005/gp2
Assignment # 1
Flight simulation + shooting game
Defaultsdifferent terrain
two more airplanes
flexible flight simulation
shoot a missile
Optionsfirework – particle system (chapter 14)
picking (chapter 15)
scores, levels of difficulty
etc.