Unity Shader入门精要笔记
P2:渲染管线渲染流水线三阶段:应用阶段、几何阶段、光栅化阶段
应用阶段:1.输出渲染图元(点、线、三角面)
2.准备好场景数据(摄像机位置、视椎体、包含的模型及光源)
3.做粗粒度的剔除
4.设置好每个模型的渲染状态(使用的材质(漫反射材质、高光材质等)、纹理、shader)
几何阶段:1.输出屏幕的顶点信息
2.处理所有要绘制的几何相关的事务(决定要绘制的图元是什么、怎么绘制、在哪里绘制)
光栅化阶段:使用几何阶段的数据来阐述屏幕上的像素,并渲染出最终的图像
CPU与GPU之间的通信
1.把数据加载到显存中(从硬盘加载到内存,然后将网格和纹理数据加载到显卡的显存中)
2.设置渲染状态(定义场景的中网格是怎么渲染的)
3.调用DrawCall(CPU发起,GPU接收,仅指向图元列表数据【点、线、面】,不包含任何材质信息【材质信息在之前已经被加载的显存中了】)
OpenGL和DirectX
显卡驱动把DX和OpenGL的函数调用翻译成GPU的执行命令
应用程序通过调用DX和OpenGL的图形接口,将渲染所需的数据(如顶点、纹理、材质数据等)存储在显存指定的区域内,该过程也被称为DrawCall
HLSL、GLSL、CG区别
HLSL:DX的着色语言,微软的
GLSL:OpenGL的着色语言,跨平台
CG:英伟达的C for graphic,跨平台的
什么是DrawCall
CPU调用图形编程接口,以命令GPU渲染的操作
通过命令缓冲区并行运行
DrawCall多了影响帧率,可通过批处理减少DrawCall数量
什么是Shader
GPU流水线上一些可高度编程的阶段,由着色器编译出来的最终代码会在GPU上运行
有一些特地的着色器,如:顶点着色器、片元着色器
依靠着色器,可以控制流水线中的渲染细节,比如通过顶点着色器进行顶点变换和传递数据、通过片元着色器进行像素渲染
操作包括:设置适当的渲染状态、使用合适的混合函数、开启或关闭深度测试/深度写入
页:
[1]