学习游戏编程基础4:预习3D游戏基本概念
材质和纹理的区别,比如说一件衣服,前者就像是材料,一眼望去就判断出是棉制品的还是丝织品,后者则相当于装饰,比如商标图案,代表是A品牌还是B品牌。总之3D世界里面,3个顶点构成一个三角形,作为最简单的几何图形,它能构成任何你想要的东东。称之为网格,根据上图的过程,经过D3D的渲染,最后你就能在屏幕上看到一个3D世界了。
接下来我们从一个简单的绘制三角形的例子来分析D3D在其中做了哪些处理。
对D3D11中的渲染管线的理解:
为何叫渲染管线,翻译而来就是这样叫的,但实际上语义跟工厂的生产流水线差不多,都是分为好几个阶段,相互之间互不干扰,保证数据高效的被执行。
1:input assembler 输入装配器 把几何信息输入给D3D,包括点 线 三角形等,主要是指定基本图元拓扑类型和顶点、索引信息加以完成。
2:vertex shader 顶点着色(渲染) 完全可编程,由程序员编写,核心为顶点在不同空间坐标系的变化。即模型空间->世界空间->观察空间->投影空间。通过矩阵实现.
3:hull shader 外壳着色 可选 把顶点着色器的输出当作自己的输入数据
4: tessellator 曲面细分 可选 从硬件上对几何图形进行细分操作 如移位贴图
5:domain shader 区域着色 可选 负责在细分区域产生顶点
6: geometry shader 几何着色 可选 对整个几何体操作 如体积阴影 粒子效果
7: rasterizer 光栅 投影空间->屏幕空间 对多边形进行剪裁 剔除 设定像素着色 计算插值,即顶点之间的数据,范围是屏幕空间区域的多边形每个像素属性。
8: pixel shader 像素着色 接受插值数据,计算投影到屏幕空间的区域的像素着色计算,输出最终的颜色值
9: output merger 输出合并
一:图形几何知识
三,渲染管线
clipping---裁剪:根据视角视口选择可见的几何图形
culling---拣选:将物体背面不可见部分挑出不渲染
index---索引
projection---投影
Rasterization---光栅化
triangle---三角形
transform---转换
vertex---顶点
stream---流
source---资源
Primitive---原始管线
rotation---旋转
四:灯光材质
Ambient---环境
Directional---方向光
Diffuse---漫(反射)
Reflection---(漫)反射
Specular---镜面
spot---聚光灯
Emissive---自发光
五:其他
Bounding---包围
Blending---混合
Filter---过滤
mask---掩码
Texture---纹理
Strafing---扫射状平移
Shader---着色
Terrain---地形
一:几何知识。
1:向量及其概念,运算
2:矩阵及其概念,运算
3:平面,射线概念,意义
二:D3D基础
1:D3D原理,COM原理,顶点处理类型,内存池,页面交换原理。
2:固定渲染管线原理。本地空间-世界空间-视图空间-背面拣选-光照-裁剪-投影-视口变换-光栅化
3:顶点/索引
4:色彩
5:灯光/材质/光源/顶点法线
6:纹理/纹理寻址/纹理过滤/Mipmaps原理
7:Alpha混合/Alpha测试
8:深度缓存/模板缓存
三:D3D进阶
1:2D字体文本/3D字体文本(FPS)
2:Mesh网格模型/绘制/优化/创建
3:渐进网格/包围体
4:灵活摄象机/PitchYawRoll/WalkingStrafingFlying
5:地形/高度图/纹理光照处理
6:粒子系统/点精灵渲染状态及属性
7:拾取射线/投影窗口/input拾取/碰状检测
8:骨骼矩阵/动态蒙皮
9:高级着色语言HLSL/顶点着色器/象素着色器
四:高级专业部分
1:卡通渲染
2:雾化
3:逐象素光照
4:BSP/四叉树+禁忌算法的场景管理
5:SkyBox渲染技巧
6:多流
7:动态模糊技术