Loading an .X File导入.X格式的文件
这个是微软格式的模型文件。存储各种任务,树木,花草等模型信息的文件,可以导入并显示与程序屏幕中,导入函数:
测试顶点单位法向量 Vertex Normals
当一个.X 文件导入之后,ID3DXMesh的顶点属性一定有位置,但是不一定有单位向量,纹理坐标,我们可以手动地添加这些信息。可以colone到一个新的ID3DXMesh中,指定格式为我们想要的格式,就可以添加相应的属性了。
也可以把拥有不同属性的.x文件统一格式化成有相同格式属性的Mesh,然后统一渲染,可以加快渲染速度。
如下面代码检查是否有单位化向量,没有就才加,以免覆盖:
该表顶点格式
colone mesh,然后格式化为VertexPNT (position, normal, 2D texture coordinates) 格式,就可以采用我们自己写的shader来处理,当然这个shader是自己写的,格式也随自己需要而定。例如:
创造单位法向量信息Generating Normals
函数自动为新的增加的信息增加空间的,所以也不用我们自己管理其内存。:
第二个参数可以为零,是输入mesh的邻接矩阵的信息。
优化Optimizing
可以提高渲染速度.
X 文件材质
D3DXLoadMeshFromX第七个参数是包含在mesh中的材质数量,第五个参数是一个D3DXMATERIAL数组:
.x文件的可以通过循环子网subset来渲染。
如下面例子:
设置材质和纹理:
渲染:
// Application data members.
ID3DXMesh* mMesh;
std::vector<Mtrl> mMtrl;
std::vector<IDirect3DTexture9*> mTex;
// In application constructor:
LoadXFile("skullocc.x", &mMesh, mMtrl, mTex);
// Rendering code:
HR(mFX->BeginPass(0));
for(int j = 0; j < mMtrl.size(); ++j)
{
HR(mFX->SetValue(mhMtrl, &mMtrl[j], sizeof(Mtrl)));
// If there is a texture, then use.
if(mTex[j] != 0)
{
HR(mFX->SetTexture(mhTex, mTex[j]));
}
// But if not, then set a pure white texture.
else
{
HR(mFX->SetTexture(mhTex, mWhiteTex));
}
HR(mFX->CommitChanges());
HR(mMesh->DrawSubset(j));
}
HR(mFX->EndPass());
清理代码:
ReleaseCOM(mMesh);
for(int i = 0; i < mTex.size(); ++i)
ReleaseCOM(mTex[i]);
分享到:
相关推荐
DirectX开发文档,学习体会型的,希望对大家有所帮助。
DirectX 文件 .x解析文件
C#利用DirectX技术玩转.x文件,能够进行各种运动操作!bin文件夹中附DirectX的dll文件
加载.X文件的源代码 - 来自DIRECTX高级动画制作的第三单中的源文件
C#录音dll文件,对声音的操作控制。包括Microsoft.DirectX.dll和DirectSound.dll
!Microsoft.DirectX.dll Microsoft.DirectX.Direct3D.dll
3DS MAX 导出 directx .X 文件的插件。3DS Max7.8.9.2008.9.2010插件(32位与64位),把模型导出成*.x文件,解压后把对应文件拷贝到3DS max安装目录的stdplugs文件夹即可。
DirectX SDK 3DS 导出成 .x 文件工具 DirectX SDK 3DS 导出成 .x 文件工具
绝对超值,本人应一位网友所邀,将C++的一个读.X文件的例子转成Delphi的,用的是DX 8 SDK的JEDI声明,所有头文件已经打包DirectX,DX.
用VB编写DirectX7.doc用VB编写DirectX7.doc用VB编写DirectX7.doc用VB编写DirectX7.doc
DirectX加载.X文件,使用C++语言的实例很多,使用C#的资源稍微少点儿,因工程需要,使用了C#语言。分享下自己使用C#加载.X文件的方法。下载后有云盘的链接和密码。
使用C#+DirectX.编写的读取.x文件的示例程序,对于刚接触.x文件的同学有一定帮助。
C#开发DirectX中用到的两个不可缺少的库,收集到的,给大家分享一下。Microsoft.DirectX.dll,Microsoft.DirectX.AudioVideoPlayback.dll
一个.x格式的模型,用于directx编程等。
用于3D MAX 2010 版中将MAX文件导出成为 DirectX .x文件
[Microsoft.DirectX.AudioVideoPlayback.Dll] AssemblyVersion=1.0.2902.0 [Microsoft.DirectX.Diagnostics.Dll] AssemblyVersion=1.0.2902.0 [Microsoft.DirectX.Direct3D.Dll] AssemblyVersion=1.0.2902.0 ...
c# 录音 Microsoft.DirectX.dll Microsoft.DirectX.DirectSound.dll
Microsoft.DirectX.dll和Microsoft.DirectX.DirectSound.dll
[DirectX.11游戏编程入门].Beginning.DirectX.11.Game.Programming.(美)Wendy.Jones.文字版.(ED2000.COM).pdf
3d .x文件 模型 DirectX 装了DirectX 9.0或以上的才可以双击打开x文件 要把 max文件 转为 x文件 建议用Deep Exploration 来 File->Batch Operations->Convert 3D Files 要用Deep Exploration 打开max 文件 请看...