前言一、背景随当今国际和国内娱乐行业大量使用CG技术,特别是实时CG特效给各个年龄的消费群体带来极大的震撼,同时也带来巨大的市场需求。作为娱乐图形消费的软硬件在本次浪潮的下蓬勃发展,实时图形渲染技术的HLSL更作为当今实游戏、虚拟现实的前沿领域, 不仅是从事实时图形开发工作所必备的知识,也是行业人才竞争力的必备技能之一;随DX11引入的通用计算,HLSL的运用范围更加广阔,成为计算机高端图形开发必须掌握的核心知识。二、当前状况及本书编写背景1、国内介绍DirectX的书籍很少,特别是有一定深度,且全面的书籍几乎匮乏,大致有以下几个特点。(1)、对DirectX的讲解基本处于入门阶段,还存在出版以传统渲染管道方式来讲解书籍,以HLSL控制下可编程渲染管道涉及较少。(2)、内容不够深入,对HLSL涉及的Shader基本都是介绍,很少有丰富完整的实例来完整学习。(3)、部分书籍内容技术质量欠缺。2、国内学术和论坛没有形成学术氛围。国内各大论坛几乎没有讨论DX内容的氛围,缺乏深度广度。3、国内引进的高端书籍中,主要是翻译,没有能够将此国外技术广泛化和通俗化。4、从笔者从实际出发,将前期开发案例和教学经验加以总结成书,与广大读者共享。三、选择本书的优势目前市面上教授图形的书籍较多,为什么选择本书?前言一、背景随当今国际和国内娱乐行业大量使用CG技术,特别是实时CG特效给各个年龄的消费群体带来极大的震撼,同时也带来巨大的市场需求。作为娱乐图形消费的软硬件在本次浪潮的下蓬勃发展,实时图形渲染技术的HLSL更作为当今实游戏、虚拟现实的前沿领域, 不仅是从事实时图形开发工作所必备的知识,也是行业人才竞争力的必备技能之一;随DX11引入的通用计算,HLSL的运用范围更加广阔,成为计算机高端图形开发必须掌握的核心知识。二、当前状况及本书编写背景1、国内介绍DirectX的书籍很少,特别是有一定深度,且全面的书籍几乎匮乏,大致有以下几个特点。(1)、对DirectX的讲解基本处于入门阶段,还存在出版以传统渲染管道方式来讲解书籍,以HLSL控制下可编程渲染管道涉及较少。(2)、内容不够深入,对HLSL涉及的Shader基本都是介绍,很少有丰富完整的实例来完整学习。(3)、部分书籍内容技术质量欠缺。2、国内学术和论坛没有形成学术氛围。国内各大论坛几乎没有讨论DX内容的氛围,缺乏深度广度。3、国内引进的高端书籍中,主要是翻译,没有能够将此国外技术广泛化和通俗化。4、从笔者从实际出发,将前期开发案例和教学经验加以总结成书,与广大读者共享。三、选择本书的优势目前市面上教授图形的书籍较多,为什么选择本书?1、内容全面全面、新颖。(1)内容全面:除去因部分技术缺乏后续发展动力的技术外,本书涵盖DirectX的所有图形内容,超过市面任何一本图形书籍,其全面性可以查看本书实例程序的截图和目录来了解书籍的内容,所有的例子内容满足各个开发层次的需要。(2)内容新颖:本书是以HLSL来介绍图像方式的书籍,完全抛弃了DX9以下的固定管线方式,可以从每个例子使用的.fx文件,HLSL文件控制渲染;例子中讲解了当代引擎使用的法线高光贴图技术、视差纹理、HDR;此外本书专有一章对物理引擎的讲解,并提供了丰富的实例来提高图形真实感的内容。2、实用性。本书是以教学、工程为目标的内容,入门部分可以让读者尽快掌握基础知识(见后续教学部分),工程部分则以实际需求为标准进行分析,如第18章的综合实例就以多个例子组合实现一个较大的工程实例,修改后即可用于项目展示。因此本书可以供计算机图形学课程的大作业和毕业设计使用。并且物理引擎部分可以作为图形开发班的提高使用,并且提供了工程项目所涉及的工具提供了代码(资源打包工具、路径工具,音乐工具)。3、有一定深度。(1)对于有一定开发经验的读者可以参看图形的特效部分(第16章到第19章),主要讲解在基本渲染上增加真实感的内容。(2)本书的例子的选择都有一定的代表性,能反映HLSL当前的运用情况,在各个章节末都对当前实例代码的改进提出方向,供用户在后续开发中作为提高、深化,编写出更符合工程需要的代码。(3)并且书中还对GPU下的通用计算提供了几个实例代码,供高性能计算参考。4、讲解方式。(1)内容精简。本书是笔者在科研、教学中的体会和总结,把一个清晰的原理在讲解给读者后,再从程序的角度逐步展开讲解。(2)本书中除对原理,函数讲解外,书中粘贴部分核心代码,并有详细注释(仅在书中注解,程序中未注解)。(3)本书不是SDK的重复讲解(微软SDK的例子中展示了各种技术,读者容易迷失在代码中),而是将各个技术特点分散讲解,逐步提高(如ShadowVolume分段讲解方便提供代码,方便读者理解和使用)。5、配套代码。本书讲解的代码完全收录在光盘中,约170个例子,能向用户提供各种知识点和充足的学习实例。6、其他。由于本书的例子主要是以教学目的提供给读者,在程序的优化和可扩充方面考虑较少,在自定义的类中也未使用C中多继承、虚函数等功能。显示全部信息