渲染流程:
应用阶段、几何阶段、光栅化阶段。应用阶段输出
渲染图元,
几何阶段输出屏幕空间的二维顶点坐标、每个顶点对应的深度值、着色器等相关信息。
1、把数据加载加载到显存中。
应用阶段
2、设置渲染状态。
3、调用DrawCall。
GPU流水线
图片摘自《unity shader入门精要》
顶点着色器:1、坐标变换 (一个最基本的顶点着色器必须完成的一个工作是
把顶点坐标从模型空间转换到齐次裁剪空间) 2、逐顶点光照
裁剪:对摄像机视野外的图元进行裁剪。
屏幕映射:把每个图元的x和y坐标转换到屏幕坐标系下。
片元着色器:纹理采样 只影响单个片元。
逐片元操作:(模板测试、深度测试、混合)
CPU和GPU是如何实现并行工作的?
命令缓冲区
Shader是什么?
1、GPU流水线上一些课高度编程的阶段,而由着色器编译出来的最终代码是会在GPU上运行的(对于固定管线的渲染来说,着色器有时等同于一些特定的渲染设置)。
2、有一些特定类型的着色器,如顶点着色器、片元着色器等。
3、依靠着色器我们可以控制流水线中的渲染细节,例如用顶点着色器来进行顶点变换以及传递数据,用片元着色器来进行逐像素的渲染。