Unity渲染管线详解

1.UnityBuild-in渲染管线

当双摄像机的时候,注意Camera中的Clear Flags 和 Depth。

其中Clear Flags在摄像机在渲染时,会进行清屏的操作。选择skybox是除了天空盒都会被清除。

Depth数值越小越先被渲染。

层级剔除:culing mask选择被剔除的层级

2.渲染队列

RenderQueue 越小越先被渲染。

不透明队列(RenderQueue < 2500) RenderQueue相同,按摄像机从前到后渲染。

半透明队列(RenderQueue > 2500) RenderQueue相同,按摄像机从后到前渲染。

3.CPU打包数据传GPU

SetPass Call:设置渲染状态(让GPU知道使用哪个shader,混合模式,背面剔除等)

Draw Call:让GPU知道使用哪个模型数据

顶点shader最基本要完成:将顶点坐标转换到裁剪空间(2x2x1的长方体cvv),投影成像。

片段shader:输出颜色值

GPU阶段:

背面剔除阶段:三角形的索引顺序是顺时针就是背面。逆时针是正面。

4.片元shader

纹理技术

  1.纹理采样,纹理在计算机中就是数组的形式。eg:(纹理坐标u,v) = (0.5,0.5),那对应32x32的纹理就是:x = 32 * 0.5,y = 32*0.5(真实不是这样,简单这样理解)。纹理坐标是在建模软件中展uv得到。

当x = 0.4*32时就是12.8 如果采用4舍5入就可能会产生失真(明显锯齿状)解决看下方纹理过滤机制。

  2.纹理过滤机制:在Unity中Point就是4舍5入的方式,双线性插值,三线性插值。

    3.Mipmap:勾选即可Generate Mip Maps就可。

   4.纹理寻址模式

   5.纹理压缩格式

光照计算

光照分析:直接光漫反射(eg:phong光照模型)+直接光镜面反射(eg:GGX高光方程)+间接光漫反射(eg:球谐SH)+间接光镜面反射(eg:反射球,ibl技术)+More(更多的光照技术eg:环境遮挡AO,SSR屏幕空间反射,SSS次表面散射)。

 

5.输出合并

处理遮挡关系,处理半透明混合。Unity中有Z-Buffer和color-Buffer,Zwrite关闭了深度写入的物体不会被写入到Z-buffer中,但会被写入到color-Buffer中。

提前深度测试:Early-Z,在顶点着色器后发生。(是否支持与硬件有关)

混合:从后到前,关闭Zwrite。控制公式:

 

 

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值