天行健 君子当自强而不息

D3D Animation Basis

D3D Animation Basis(10)      摘要: The remaining two draw_meshes functions duplicate the exact features of the first two, except that all meshes in the linked list of mesh objects are rendered.  
 
D3D Animation Basis(9)      摘要: As for the second draw_mesh function, it skips using the DrawSubset function and uses its own function to render subsets of polygon faces, using the vertex shader and vertex declaration you specify. This second function is extremely useful if you are using vertex shaders to render your meshes.  
 
D3D Animation Basis(8)      摘要: Now that you have your meshes loaded and you've updated those skinned meshes that needed updating, it is time to throw some pixels at the display and show off those meshes! In total, I have created four mesh−rendering functions to help you in your projects.  
 
D3D Animation Basis(7)      摘要: A skinned mesh works like this: Each vertex is attached to an imaginary bone (which is specified by a frame object). As these frames move, so do the vertices attached to them. To update the coordinates of the vertices as the bones move, you need to call a special function that takes the source vertex data, transforms it according to the bones' transformations, and stores the results in a second mesh object. This special function is called ID3DXSkinInfo::UpdateSkinnedMesh. 
 
D3D Animation Basis(6)      摘要: The second load_mesh function is much like the first, except that instead of loading an entire .X file into one D3DXMESHCONTAINER_EX object, you are able to load a single mesh object (using the D3DXLoadSkinMeshFromXof function) as pointed to by a ID3DXFileData object (used while parsing an .X file).   
 
D3D Animation Basis(5)      摘要: The first of the mesh−related helper functions is load_mesh. Actually there are three versions of the load_mesh function. The first version is used to load a mesh from an .X file using the D3DXLoadMeshFromX function. That means all meshes contained within the .X file are compressed into a single mesh object, which is subsequently stored in a D3DXMESHCONTAINER_EX object. 
 
D3D Animation Basis(4)      摘要: Moving on in the list of helper functions, you'll find load_vertex_shader. You'll use this function to help you load your vertex shaders, as well as prepare your vertex shader declarations.

The actual code to the load_vertex_shader function is short, so instead of breaking it up to explain it, I'll give it to you all at once. 
 
D3D Animation Basis(3)      摘要: Next in line for the helper functions is init_d3d, which you use to initialize Direct3D and create a 3D device and display window. I tried to keep the code as simple as possible, performing the typical initialization code you would use in any Direct3D application.  
 
 
D3D Animation Basis(2)      摘要: Whereas you might be used to using the ID3DXMesh object to contain your mesh data, you may have found
it a pain to store the mesh's material and effects data separately. Not only that, but what about using the other
D3DX mesh objects, such as ID3DXPMesh and ID3DXSkinMesh? Why not just create a single mesh
object that represents all mesh types and contains all material data along with it?
 
D3D Animation Basis(1)      摘要: The D3DXFRAME object helps form a hierarchy of reference frames. These reference frames are used to
connect a series of meshes together, with each frame having its own transformation to apply to the mesh
connected to it. In this way of using frames to point to meshes, you can minimize the number of meshes used
because you can reference meshes instead of having to reload them.  

posted on 2008-04-15 13:28 lovedday 阅读(537) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论