D3DXFont
在这部分,我们讨论应用Direct3D来实现一些3D应用,示例一些地形的技术,粒子系统,拾取,构造灵活的 3D摄影机。另外,我们花些时间来探索D3DX库(特殊的,数学相关的组件).在章节里有简短的描述。
第9章,"字体"-在游戏期间,我们常常需要显示一些信息给用户。这章讨论三我们可以整合和在Direct3D中输出 文字。
第10章,"Meshes第一部分"-这章彻底的解释了D3DXMesh接口ID3DXMesh的数据和方法。
第11章,"Meshes第二部分"-在这章,我们继续我们学习D3DX mesh相关的接口和函数。我们学习关于.x文件和怎样加载 和渲染它们。另外,我们测试渐进的mesh接口ID3DXPMesh.这章也显示怎样计算范围盒和范围球。
第12章, "构造灵活的摄影机"-在这章,我们设计和实现灵活摄影机类它的六个角度的自由旋转。这摄影机 适合于飞行模拟和第一人称射击。
第13章,"基本地形渲染"-这章展示怎样创建纹理,光,渲染3D地形。而且,我们展示怎样平滑的移动摄影机不超过提醒, 看上去是走在地形上。
第14章,"粒子系统"- 在这章,我们学习怎样用小的粒子构造模型系统在一个小的样式中的。例如, 粒子系统可以被用来模拟下雪和雨,火花和爆炸,烟的颗粒,火箭轨迹,甚至枪的子弹。
第15章,“拾取"-展示怎样用鼠标来拾取特殊的模型。通常在3D游戏和应用中是必要的用户接口。
第9章字体
在游戏间我们常常显示原文用户的信息。这个章节讨论三种在D3D中输出文字的方式。每个方式符合简单的web page应用的 计算文件。
目标
学习怎样使用ID3DXFont接口来渲染文本
学习怎样使用CD3DFont类来渲染文本
学习怎样计算每帧的数值
学习怎样创建渲染3D的文本使用D3DXCreateText函数
ID3DXFont
jD3DX库提供了ID3DXFont接口来在Direct3D应用程序中绘制文本。这个接口使用GDI接口通常画,所以我们在性能上这个接口。 然而,ID3DXFont可以处理复杂的字体和它使用GDI来格式化。
创建ID3DXFont字体
我们可以使用D3DxCreateFontIndirect函数来创建字体
下面代码展示了如何使用此函数的代码片段:
LOGFONT lf;
CD3DFont - 方式
DirectX SDK提供了一些非常有用的实用代码来\Samples\C++\Common文件夹 DXSDK根目录。有一个CD3DFont的类, 使用纹理三角形和Direct3D来显示渲染文本。自从CD3DFont使用Direct3D来渲染取代GDI,它就比ID3DXFont更快。然而, CD3DFont不支持复杂的字体格式。如果你需要自渎,CD3DFont类可以了。为了使用CD3DFont类,你需要添加下面的文件到 d3dfont.h, d3dfont.cpp d3dutil.h d3dutil.cpp, dxuti.h dxutil.cpp.这些文件可以在Src文件夹里找到。
使用FreeType字体
D3DXCreateText
这最后的函数创建3DMesh的文本。图9.1展示了3D的文本mesh ,FontMesh3D例子在章来渲染。
deviation - Extrusion
创建完毕后可以使用ID3DXMesh的 DrawSubset(0)来显示 3D的简单字体。
当需要支持复杂的格式的时候,使用ID3DXFont接口渲染字体。这个接口使用GDI里渲染文本和因此性能下降。
使用CD3DFont 渲染简单的字体。这个类使用纹理三角形和Direct3D渲染文本和因此比ID3DXFont比非常快。
使用D3DXCreateText来创建3DMesh的字符串文本。