2.2 应用阶段
CPU和GPU的通讯(应用阶段)把数据加载到显存
数据从硬盘加载到系统内存(RAM)
RAM把数据加载到显卡显存上:
显卡对显存访问更快
大多数显卡没有RAM的直接访问权利
设置渲染状态什么是渲染状态?答:这些状态定义了网格是如何被渲染(形状,颜色,材质等属性)
调用Draw Call(渲染命令)
发起方:CPU。接受方:GPU
指向一个需要被渲染的图元(primitives)列表
GPU收到指令后,会根据渲染状态渲染所指定的图元列表
渲染所需的计算过程为GPU流水线
2.5 什么是shader
Shader究竟是什么
GPU流水线上高度可编程的阶段
重点是顶点着色器控制顶点变换和传递数据,片元着色器进行逐片元的渲染。S
2.3 GPU流水线
GPU流水线说人话:几何阶段+光栅化阶
几何阶段
顶点着色器
vertex shader:完全可编程。实现顶点的空间变换,顶点着色。
曲面细分着色器
Tessellation Shader:可选着色器。用于细分图元
几何着色器
Geometry Shader:可选着色器。用于执行逐图元的着色操作,或产生更多图元。
裁剪
clipping:可配置。裁剪掉不在摄像机视野内的顶点和剔除某些面片
针对对象:部分在视野内的图元(不可编程,但可以自定一个裁剪操作)
屏幕映射
screen mapping:不可配置和编程的。用于把每个图元的坐标转换到屏幕坐标系当中。
输入:三维坐标(范围在单位正方体:即经过正交投影后的三维坐标)
需要注意OpenGL和DirectX屏幕坐标系的不同:OpenGL在左下,DirectX在左上。
顶点着色器输入:CPU
处理单位:顶点(每个顶点调用一次顶点着色器)
限制:无法创建和销毁顶点,无法获得两个顶点的相关联系(逐顶点计算)
优点:处理速度快(不用考虑关联性,GPU狂喜)
工作:
坐标变换:把顶点坐标从模型空间转换到齐次裁剪空间,以及其他需求所需的 ...