第四章 片元处理和输出合并操作
1.由光栅器生成的片元属性通常包含深度值,法线向量,RGB颜色值以及一组纹理坐标。
2.纹素:独立的纹理实体。 纹理通常可以描述为一个2d纹素阵列。
3.纹理地址(u,v)采用标准化的坐标数据。
4.纹理地址VS实际地址
4.1.2 表面参数化操作
1.纹理坐标与多边形网格之间的赋值过程为表面参数化操作。 需将3D表面延展为2D平面域。
2.Direct 3D中将(u,v)映射为纹素地址(tx,ty):
tx=(u x sx )-0.5 ; ty=( v x sy -0.5 【sx和sy表示分辨率,若分辨率为4x4则,sx=4,sy=4.】
4.2 输出合并
1.最终阶段与硬件处理有关,通常称为输出合并。
2.片元程序的输出结果常称作RGBA片元。【“A":Alpha通道,表示透明度,”Z"表示深度值】
3.决定视口中某一像素由2个三角形折叠而成,该显示谁的颜色——>位置前后来判断——>z轴——>z缓冲区(深度缓冲区)
4.z缓冲区与颜色缓冲区包含相同分辨率,并记录存储于当前颜色缓冲区中的z值。
5.片元从片元程序传递时,其z值将与位于(x,y)处的缓冲区进行比较,若该片元包含较小的z值,其颜色值和z值将分别更新位于(x,y)处的颜色缓冲区和z缓冲区,否则表示该片元不可见,丢弃。
4.2.2 Alpha混合
1.前讨论基于三角形不透明的基础上,若片元与像素之间呈现为透明状态,可通过在片元颜色值与像素颜色值之间执行混合操作得以实现。称为Alpha混合操作。
2.特点:无法以任意的顺序进行渲染,透明对象应执行排序操作
3.Alpha通常与颜色通道包含相同位数,eg.R通道包含8位,则可以用32位表示颜色值RGBA数据。
5.Alpha通常可表示256种不同级别的透明度,不用【0,255】,使用【0,1】。
6.常见的混合方程: c=a cf+(1-a) cp 【c:混合颜色值;a:片元透明度 ; cf:片元颜色值 ; cp:像素颜色值】
4.3.2 z剔除操作
1.将z>1的扔掉不进行后续操作。
2.单元剔除:维护一个单元表 eg 一个单元由nxn个像素构成。找到nxn像素中z的最大值zmax 根据输入的3个顶点计算该三角形的zmin ,若zmax<zmin,则该片元被完全遮挡,不会进入片元处理阶段。
3.z值可以人为进行预写。