-
?精通Direct3D图形与动画程序设计》配套书源代码
资源介绍
示例程序目录及简要说明
第2章 Direct3D程序设计基础
CreateDevice
演示Direct3D程序的基本框架,以及如何创建Direct3D对象和Direct3D设备对象。
第3章 坐标系与基本图元
1、VertexBuffer
演示使用顶点缓冲区对象绘制基本图元。
2、BasicPrimitive
演示Direct3D中6种基本图元的绘制。通过单击键盘上的“1”~“6”数字键可以在各图元类型之间进行切换。
3、IndexBuffer
演示使用顶点缓冲区和索引缓冲区绘制基本图元。
4、RenderState
演示顶点着色模式和图形填充方式两个基本渲染状态对图形显示的影响。通过单击鼠标左键在两个着色模式之间进行切换,单击鼠标右键在3种图形填充模式之间进行切换。
5、AntiAlisa
演示通过多重采样实现图形反锯齿效果。程序运行时通过单击鼠标左键可以在启用和禁用图形反锯齿效果之间进行切换。
6、FullScreen
演示全屏幕显示模式Direct3D程序的开发,主要是创建全屏显示模式的Direct3D设备。因为程序运行在全屏模式下,所以不能像运行在窗口模式下那样,通过单击标题栏上的“关闭”按钮来关闭程序,可以通过单击键盘上的“Esc”键退出程序,也可以通过按下“Alt+F4”键退出程序。
第4章 顶点坐标变换
Transfrom
演示三维坐标变换、视区变换,以及简单动画的实现。
第5章 光照与材质
1、SimpleLighting
演示灯光的使用。
2、Multilights
演示同时使用多个光源的效果。一共使用三个光源,分别是漫反射方向光光源、漫反射点光源、镜面反射方向光光源。默认情况下,3个光源全部关闭,按下数字键“1”,启用1号光源;按下数字键“2”,启用2号光源;按下数字键“3”,启用3号光源;按下数字键“4”,3个光源全部启用;按下数字键“0”,3个光源全部关闭。
第6章 纹理映射基础
1、TextureBase
演示使用纹理贴图的基本步骤。
2、TexFilterMode
演示最近点采样和线性纹理过滤方式。在程序运行时,单击键盘上的数字键“1”,使用最近点采样纹理过滤方式,单击键盘上的数字键“2”,则使用线性纹理过滤。
3、MipTexture
演示如何创建和使用多级渐进纹理。程序运行时,单击键盘上的数字键“1”,则使用多级渐进纹理,单击数字键“2”,则使用单级别纹理。通过按下“↓”键和“↑”键可以放大和缩小显示的图形,从而可以仔细观察图像的变化,看到多级渐进纹理的效果。
4、TexAddressMode
演示不同纹理寻址模式的效果。程序运行时,单击键盘上的数字键“1”,使用重叠纹理寻址模式,单击键盘上的数字键“2”,使用镜像纹理寻址模式,单击键盘上的数字键“3”,使用夹取纹理寻址模式,单击键盘上的数字键“4” ,使用边框颜色纹理寻址模式。
5、TexRenderState
演示纹理阶段混合状态的使用。
第7章 使用文件模型
1、Mesh
演示.X文件模型的使用,包括从.X文件中加载模型生成网格模型对象,渲染网格模型。
2、StateControlUseMatrix
演示使用矩阵旋转网格模型。程序运行时按下“D”和“A”键可以使飞机模型绕自身z轴旋转;按下“S”和“W”键可以使飞机模型绕x轴旋转;按下“Q”和“E”键可以使飞机模型绕自身y轴旋转;按下“F”和“V”键可以使飞机模型向前和向后运动。
3、StateControlUseQua
演示使用四元数旋转网格模型。程序运行时按下“D”和“A”键可以使飞机模型绕自身z轴旋转;按下“S”和“W”键可以使飞机模型绕x轴旋转;按下“Q”和“E”键可以使飞机模型绕自身y轴旋转;按下“F”和“V”键可以使飞机模型向前和向后运动。
第8章 深度测试与Alpha混合
1、ZTest
演示深度测试的使用。程序运行时按下数字键“1”启用深度测试,按下数字键“0”,则禁用深度测试。
2、AlphaBlend
演示使用Alpha混合实现半透明效果。程序运行时按下数字键“1”,启用Alpha混合,按下数字键“0”,则禁用Alpha混合。
3、VertexAlpha
演示直接为顶点颜色设置Alpha值。程序运行时按下数字键“1”,启用Alpha混合,按下数字键“0”,则禁用Alpha混合。
4、TextureAlpha、
演示通过纹理混合获取Alpha 值。程序运行时按下数字键“1”,启用Alpha混合,按下数字键“0”,则禁用Alpha混合。
5、AlphaTest
演示Alpha测试的使用。程序运行时按下数字键“1”,启用Alpha测试,按下数字键“0”,则禁用Alpha测试。
第9章 雾化
1、VertexFog
演示顶点雾化效果。程序运行时按下数字键“1”,启用线性雾化,按下数字键“2”,启用指数雾化,按下数字键“3”启用双指数雾化,按下数字键“0”,禁用雾化效果。
2、PixelFog
演示像素雾化效果。程序运行时按下数字键“1”,启用线性雾化,按下数字键“2”,启用指数雾化,按下数字键“3”,启用双指数雾化,按下数字键“0”,禁用雾化效果。
3、RangeFog
演示基于范围的顶点雾化效果。程序运行时通过按下“R”键在基于范围的雾化效果和基于深度的雾化效果之间进行切换。
第10章 字体与文本显示
1、Font_2D
演示二维文本的绘制。
2、Font_3D
演示三维文本的绘制。
第11章 应用程序框架
1、AppFrame
演示DXUT应用程序框架的生成和使用。
2、AppFrame(AddText)
演示使用DXUT框架显示文本信息。
3、AppFrame(AddControl)
演示使用DXUT框架为用户界面添加控件。
第12章 高级纹理应用
1、MultiTexture
演示使用多层(多阶段)纹理混合的基本步骤。
2、TexColorBlend
演示几种常用的多层纹理颜色混合方式。程序运行时通过按下键盘上的“1”~ “6”数字键可以在不同的颜色混合方式之间进行切换。
3、TexAlphaBlend
演示纹理Alpha混合的使用。
4、TexCoorGenerate
演示纹理坐标自动生成。
5、TexCoorTransform
演示纹理坐标变换。该程序对示例程序TexCoorGenerate中自动生成的纹理坐标进行了变换,通过对比两个示例程序的最终运行结果,可以发现纹理坐标变换的作用。
6、SphericalEnvMapping
演示球形环境映射。
7、BumpTexture
演示凹凸纹理映射。
8、VolumeTexture
演示立体纹理映射。
9、DXTTexture
演示DXT压缩纹理的创建和使用。
第13章 网格模型高级技术
1、Cube
演示.X文件的剖析。
2、OptimizedMesh
演示网格模型优化技术。程序运行时,可以通过“0”~“3”数字键改变优化方式。
3、ProgressMesh
演示如何生成和使用层次细节网格模型。
4、EnhancedMesh
演示增强网格模型的生成和使用。
5、Tweening
演示渐变动画网格模型的生成和使用。
6、UseCDXUTMeshClass
演示使用CDXUTMesh类渲染网格模型。
7、UseCDXUTMeshFileClass
演示使用CDXUTMeshFile类渲染网格模型。
8、UseAnimMeshClass
演示骨骼动画网格模型的渲染、骨骼动画网格模型类的封装与使用。
9、VertexBlend
演示顶点混合技术。
10、UseSkinMeshClass
演示蒙皮骨骼动画网格模型的渲染、蒙皮骨骼动画网格模型类的封装和使用。
11、MultiAnimMesh
演示多骨骼动画网格模型的渲染、骨骼动画之间的切换。
12、MeshFromOBJ
演示保存在.OBJ文件中网格模型的渲染。
第14章 模板缓冲区
1、DepthComplexity
演示模板缓冲区技术的使用,运用模板缓冲区技术显示场景的深度复杂度。
2、ShadowVolume
演示使用模板缓冲区技术实现实时阴影效果。
第15章 粒子系统
1、SprayParticles
演示粒子系统的具体实现,粒子系统类的封装。
2、ComplexSample
一个综合性的示例程序,演示了摄影机类和场景漫游的实现,以及静态网格模型、动画网格模型、粒子系统的进一步封装和使用。
第18章 HLSL顶点渲染
1、HLSLTransform
演示使用HLSL渲染语言进行GPU编程实现坐标变换、HLSL顶点渲染的基本步骤。
2、HLSLAmbient
演示使用HLSL渲染语言进行GPU编程实现环境光照计算。
3、HLSLDiffuse
演示使用HLSL渲染语言进行GPU编程实现漫反射光照计算。
4、HLSLSpecular
演示使用HLSL渲染语言进行GPU编程实现镜面反射光照计算。
第19章 HLSL像素渲染
1、HLSLPixelColor
演示使用HLSL渲染语言进行GPU编程直接指定像素颜色值、HLSL像素渲染基本步骤。
2、HLSLTexture
演示HLSL渲染语言进行GPU编程实现纹理映射。
第20章 效果
1、EffectLighting
演示使用效果实现基本光照计算、使用效果的基本步骤。
2、EffectTexture
演示使用效果实现基本纹理映射。
3、BasicHLSL
演示多技术效果的编写和使用。
4、EffectParam
演示效果共享参数和参数块的使用。
5、FragmentLinker
演示段落的使用。
第21章 HLSL高级应用
1、HLSLSelfShadowing
演示使用HLSL渲染语言进行GPU编程实现自遮蔽阴影。
2、HLSLBumpTexture
演示使用HLSL渲染语言进行GPU编程实现凹凸纹理映射。
3、HLSLCubeMapping
演示使用HLSL渲染语言进行GPU编程实现基本的立方体环境映射。
4、HLSLCubeMappingRefract
演示使用HLSL渲染语言进行GPU编程实现具有折射效果的立方体环境映射。
5、HLSLCubeMappingDynamic
演示使用HLSL渲染语言进行GPU编程实现动态的具有折射效果的立方体环境映射。
6、HLSLTweening
演示使用HLSL渲染语言进行GPU编程实现渐变动画。
7、HLSLSkinMesh
演示使用HLSL渲染语言进行GPU编程实现蒙皮骨骼动画。
第22章 ASM顶点渲染
1、ASMTransform
演示使用ASM渲染语言进行GPU编程实现顶点坐标变换,演示ASM顶点渲染的基本步骤。
2、ASMLighting
演示使用ASM渲染语言进行GPU编程实现基本光照计算。
3、AsmTweening
演示使用ASM渲染语言进行GPU编程实现渐变动画。
4、AsmSkinMesh
演示使用ASM渲染语言进行GPU编程实现蒙皮骨骼动画。
第23章 ASM像素渲染
1、ASM_Texture
演示使用ASM渲染语言进行GPU编程实现基本的纹理映射,演示ASM像素渲染基本步骤。
2、ASMBlur
演示使用ASM渲染语言进行GPU编程实现模糊效果。
3、ASMEffect
演示使用ASM渲染语言进行GPU编程中效果的使用。
4、HLSL_ASM_Effect
演示使用HLSL和ASM渲染语言进行混合GPU编程。
第24章 DXUT控件
1、DXUTControl
演示各种DXUT控件的使用。
第25章 广告板技术与十字交叉纹理
1、BillBoard
演示广告板技术的使用。
2、CrossTexture
演示十字交叉纹理技术的使用。
第26章 纹理动画
1、TextureAnimation
通过纹理贴图实现爆炸效果,演示连续纹理贴图动画技术。
第27章 自然现象模拟
1、MovingCloud
动态云彩效果模拟。
2、Raining
下雨效果模拟。
3、Snowing
下雪效果模拟。
第28章 三维地形模拟
Terrain
简单三维地形的模拟。
第29章 海浪效果模拟
1、TexSeaWave
演示通过纹理贴图实现海浪效果模拟。
2、SinSeaWave
演示通过正弦波海洋模型实现实时动态海浪效果。
第30章 柔性物体模拟
FlutterFlag
随风飘扬的旗帜,演示柔性物体渲染技术。
第31章 三维场景交互
1、Pick
演示通过鼠标光标选择三维场景中的物体。
2、WalkByOrder
演示通过鼠标控制三维场景中人物角色的运动。当按下鼠标左键时,角色向鼠标点位置运动,当释放鼠标左键时,角色停止运动。
第32章 运动模糊效果
MotionBlur
演示运动模糊效果的实现,通过窗口下面的滑竿控件可以调节小球的运动速度。
第33章 凹凸纹理映射应用
1、BumpUnderWater
演示使用凹凸纹理映射实现水下视觉效果模拟。
2、BumpWaves
演示使用凹凸纹理映射实现水波效果模拟。
第34章 短毛发实时绘制
Fur
演示使用纹理映射实现短毛发的实时绘制。
第35章 体积雾
VolumeFog
演示使用ASM渲染语言实现体积雾效果。