DirectX11 骷髅头示例Demo
2015-10-02 15:46
183 查看
骷髅头示例Demo
1. 文件格式
虽然对于本书的某些示例来说,盒子、网格、球和圆柱形就足够了,但是还有些示例要绘制更加复杂的几何体。本书的后面我们会介绍如何从一个流行的3D模型格式加载3D网格。同时,我们已经将一个骷髅网格的几何体(见后面的图)导出为一个顶点(只包含位置和法线向量)和索引的简单列表,可以使用标准的C++文件I/O从文件中读取顶点和索引,并将它们复制到顶点和索引缓冲。文件的格式是一个非常简单的文本文件:VertexCount:31076 TriangleCount:60339 VertexList(pos, normal) { 0. 592978 1. 92413 -2. 62486 0. 572276 0. 816877 0. 0721907 0. 571224 1. 94331 -2. 66948 0. 572276 0. 816877 0. 0721907 0. 609047 1. 90942 -2. 58578 0. 572276 0. 816877 0. 0721907 … } TriangleList { 0 1 2 3 4 5 6 7 8 … }
2. 加载文件中的几何体
完整的Demo项目源代码请自行到DirectX11龙书的官网下载。建议用VS阅读源代码。void SkullApp::BuildFX() { std::ifstream fin("fx/color.fxo", std::ios::binary); fin.seekg(0, std::ios_base::end); int size = (int)fin.tellg(); fin.seekg(0, std::ios_base::beg); std::vector<char> compiledShader(size); fin.read(&compiledShader[0], size); fin.close(); HR(D3DX11CreateEffectFromMemory(&compiledShader[0], size, 0, md3dDevice, &mFX)); mTech = mFX->GetTechniqueByName("ColorTech"); mfxWorldViewProj = mFX->GetVariableByName("gWorldViewProj")->AsMatrix(); }
3. 程序运行结果截图
相关文章推荐
- EIP和目标地址的关系
- UVA 11177 凸多边形和圆交
- 查找二叉树
- SQL常用命令
- HDU - 1200 To and Fro(水)
- 数据库的优化
- 枚举类型的基本用法
- Matlab基础知识
- Extjs4.2 model关联读复杂XML
- 面试题22:栈的压入、弹出序列
- vfork http://blog.csdn.net/tennysonsky/article/details/45847107
- BZOJ 3531 旅行【树链剖分】
- 数据库最最常用语句(10年工作笔记)
- java抽象类
- 如何在Linux上使用netstat命令查证DDOS攻击
- android布局属性大全
- 安卓控件使用系列12:CheckBox复选框控件的使用
- 轮廓线动态规划问题
- swift闭包
- iOS 多线程实例(NSThread售票窗口的模拟)