Direct3D 9学习笔记(12)网格(Mesh)3
2012-08-23 22:23
363 查看
一.ID3DXBuffer
二.XFile
加载XFile
示例
HRESULT hr = 0; // // Load the XFile data. // ID3DXBuffer* adjBuffer = 0; ID3DXBuffer* mtrlBuffer = 0; DWORD numMtrls = 0; hr = D3DXLoadMeshFromX( "bigship1.x", D3DXMESH_MANAGED, Device, &adjBuffer, &mtrlBuffer, 0, &numMtrls, &Mesh); if(FAILED(hr)) { ::MessageBox(0, "D3DXLoadMeshFromX() - FAILED", 0, 0); return false; } // // Extract the materials, and load textures. // if( mtrlBuffer != 0 && numMtrls != 0 ) { D3DXMATERIAL* mtrls = (D3DXMATERIAL*)mtrlBuffer->GetBufferPointer(); for(int i = 0; i < numMtrls; i++) { // the MatD3D property doesn't have an ambient value set // when its loaded, so set it now: mtrls[i].MatD3D.Ambient = mtrls[i].MatD3D.Diffuse; // save the ith material Mtrls.push_back( mtrls[i].MatD3D ); // check if the ith material has an associative texture if( mtrls[i].pTextureFilename != 0 ) { // yes, load the texture for the ith subset IDirect3DTexture9* tex = 0; D3DXCreateTextureFromFile( Device, mtrls[i].pTextureFilename, &tex); // save the loaded texture Textures.push_back( tex ); } else { // no texture for the ith subset Textures.push_back( 0 ); } } }
Device->BeginScene(); for(int i = 0; i < Mtrls.size(); i++) { Device->SetMaterial( &Mtrls[i] ); //Device->SetTexture(0, Textures[i]); Mesh->DrawSubset(i); } Device->EndScene();
三.顶点法线
相关文章推荐
- Direct3D 9学习笔记(10)网格(Mesh)1
- Direct3D 9学习笔记(13)网格(Mesh)4
- Direct3D 9学习笔记(11)网格(Mesh)2
- STL学习笔记12— —特殊容器queue
- libgdx 学习笔记五 MeshColorTexture
- OpenMesh学习笔记7 网格文件读写
- android菜鸟学习笔记12----Android控件(一) 几个常用的简单控件
- linux学习笔记12
- Java学习笔记12(面向对象五:构造方法、this再探)
- php 学习笔记--数组篇(12)
- Python学习笔记之疑问12:什么是tuple
- 【Cocos2d-X开发学习笔记】第20期:网格动作类的使用
- 【学习笔记】day2数据存储和界面展现第一天 11_api获取外部存储的真实路径 12_检查外部存储状态
- 9.12学习笔记
- Python学习笔记12:标准库之对象序列化(pickle包,cPickle包)
- 【小白笔记】PHP学习之路 (12) --数组(2)
- 9.12学习笔记
- 我的OpenCV学习笔记(12):VideoCapture类
- Tornado学习笔记12 tornado.httpserver-.非阻塞的Http服务器
- java/android 设计模式学习笔记(12)---组合模式