DirectX 12 3D 游戏开发实战
上QQ阅读APP看书,第一时间看更新

前        言

Direct3D 12是一款为运行在现代图形硬件上的各种Windows 10平台(Windows桌面版、手机版和Xbox One)编写高性能3D图形应用程序的渲染库。Direct3D也是一种底层库,这也就意味着此种应用程序接口(API)与其下层控制的图形硬件模块关系更为紧密[1]。Direct3D的主要用户大多来自游戏产业,他们驾驭Direct3D来构建更加高端的渲染引擎。同时,它亦应用于如医药产业、科学可视化以及虚拟建筑漫游等行业,用来实现高性能的3D图形交互功能。另外,由于当今每一部新的个人电脑都已配备了现代图形设备,因此,非3D应用也开始逐步把计算密集型的工作移交至显卡来执行,以充分发挥其中GPU(Graphics Processing Unit,图形处理器)的计算能力。这就是众所周知的GPU通用计算(general purpose GPU computing)技术。对此,Direct3D也提供了用于编写GPU通用计算程序的计算着色器API。尽管Direct3D 12程序通常以原生的C++语言进行编写,但SharpDX团队正在致力于.NET包装器版的开发,因此,用户也可以从托管应用程序中来访问这一强大的3D图形API。

本书围绕交互式计算机图形学这个主题展开,关注于通过Direct3D 12来进行游戏的开发。读者将从中学到Direct3D的基础知识以及着色器编程的方法。阅读完本书之后,读者就可以继续学习更加高级的图形技术了。本书共分为3个主要部分。第一部分讲解了本书后续要用到的数学知识。第二部分展示如何用Direct3D来实现基本绘图任务,例如初始化Direct3D,定义3D几何图形,设置摄像机,光照,纹理,混合技术,模板技术,曲面细分技术,创建顶点、像素、几何图形以及计算着色器。第三部分则主要是利用Direct3D来实现各种有趣的技术与特效,例如动画角色网格、拾取技术、环境贴图、法线贴图、阴影贴图以及环境光遮蔽技术。

初学者最好按先后顺序通读全书。书中章节是按照由浅入深、逐步递进的顺序组织而成的。这样一来,读者便不会因过陡的学习曲线而如堕烟海。一般来讲,特定篇章中所用的技术与概念往往在之前的章节中有所交代。因此,读者最好在掌握了欲学习章节之前的所有内容后再继续前行。当然,有一定经验的读者可直接挑选感兴趣的部分进行阅读。

最后,部分读者可能会不禁琢磨:读完本书之后,究竟能够开发出何种类型的游戏来呢?这里对此给出的解释是:您最好亲自粗略地阅览此书,看看其中大概都在讲些什么内容。据此,基于本书所讲的技术知识再结合自己的聪明才智,至于能够开发出哪类游戏作品,想必这答案读者也就自会了然于胸了。