DirectX.9.0.3D游戏开发总结

DirectX.9.0.3D游戏开发总结
涉及到的书籍:《3D数学基础:图形与游戏开发》、《DirectX 9.0.3D游戏开发编程基础》、《深入理解C++11》、《计算机图形学》、《游戏引擎架构》
渲染==绘制(向目标窗口绘制图像)
一、三维几何学基础
1、三维坐标系统
2、点与矢量
3、矩阵与三维旋转
4、四元数与三维矩阵

二、实时渲染管道(渲染管道=绘制流水线):
1、应用场景(场景管理、可见性剔除、分组排序、提交图元)
2、几何阶段(顶点着色、图元组装、面向剔除、三角形剪裁、透视除法、视区变换)
3、光栅化阶段(扫描转换、scissor/stencil/alpha测试、alpha混合)

三、游戏中的光照与阴影
1、实时光照分类(正向渲染、延迟渲染、Tile正向/延迟渲染)
2、局部光照中的光源(环境光、方向光、聚光、cookie)
3、阴影(平面阴影、阴影体积、阴影贴图、PCF、VSM、CSM)
4、全局光照(光照贴图、幅照度环境贴图、球谐函数)

四、材料着色原理与实践
1、材质反射模型(渲染方程、BRDF、Lambertian、Phong、Blinn-Phong)
2、材质着色器编程(环境光、环境遮蔽、发光物体、贴图采样、环境贴图、法线贴图、轮廓光、纹理坐标动画)
3、特殊着色器(卡通渲染、Kajiya-Kay、......)

重要问题:
1、世界坐标系、局部坐标系、观察坐标系。

2、图形渲染(绘制流水线)
一旦建立了3D场景的几何描述,并设置好虚拟摄像机,我们下面的任务就是在显示器中建立该场景的2D表示。为实现这一目标所实施的一系列运算统称为绘制流水线(rendering pipeline)
(用来创建为3D世界进行几何描述的2D图形并设定一个虚拟照相机确定这个世界哪一部分将被投影到屏幕上)
流程:
一个简化的绘制流水线
1)坐标系之间的变换借助矩阵来实现
局部坐标系
世界坐标系
观察者坐标系
2)背面消隐
3)光照
4)剪裁
5)投影
投影变换定义了视域体,并负责将视域体中的几何体投影到投影窗口中
6)视口变换
7)光栅化
绘制流水线总结
绘制流水线方法

表现模型:点、线和 三角形是用来建立模型或对象的渲染基元。3D世界中最基本的图元就是三角形
一个多边形的两边相交的点叫做 顶点,为了描述一个三角形,我们通常指定三个点的位置来对应三角形的三个顶点,从而明确表示出三角形。

顶点格式:Direct3D 顶点包含了许多附加属性,例如,一个顶点可以有颜色和法线向量属性。可以灵活的构造自己的顶点格式。一旦拥有了完整的顶点格式,就要使用灵活顶点格式(FVF)的组合标志来描述它。

三角形:构建3D物体的基本图形。为了构造物体,创建了三角形列表(triangle list)来描述物体的形状和轮廓。三角形列表包含了将要画的每一个三角形的数据信息。

索引:存放在显存中,进行绘制时,使用显存中的数据比使用系统内存中的数据快的多绘制速度。顶点索引与索引缓存


猜你喜欢

转载自blog.csdn.net/Artemis1220/article/details/78779443