Unity Shader入门精要总结--渲染路径

本文介绍了Unity中的三种渲染路径:前向渲染、顶点照明渲染和延迟渲染。前向渲染包括逐顶点、逐像素和球谐函数处理光照,Unity使用特定规则决定光源处理方式。顶点照明渲染速度快但效果有限,不支持逐像素效果。延迟渲染通过G缓冲区提高效率,不受光源数量影响,分为两个Pass进行。
摘要由CSDN通过智能技术生成

前向渲染路径

  • 原理

    ​ 每进行一次完整的前向渲染,我们需要渲染该对象的渲染图元,并计算两个缓冲区的信息:一个是颜色缓冲区,一个是深度缓冲区。我们利用深度缓冲来决定一个片元是否可见,如果可见就更新颜色缓冲区中的颜色值。我们可以用下面的伪代码来描述前向渲染路径的大致过程:

Pass {  
    for(each primitive in this model){  
        for(each fragment coverd by this primitive){  
            if(failed in depth test){  
                //如果没有通过深度测试,说明该片元是不可见的  
                discard;  
            }  
            else{  
                //如果该片元可见,就进行光照计算  
                float4 color = Shading(materialInfo,pos,normal,lightDir,viewDir);  
                //更新帧缓冲  
                writeFrameBuffer(fragment,color);  
            }  
        }  
    }  
}  
  • Unity中的前向渲染

    ​ 在Unity中,前向渲染路径有3种处理光照的方式:逐顶点处理逐像素处理球谐函数处理。而决定一个光源使用哪种处理模式取决于它的类型和渲染模式。光源类型指的是该光源是平行光还是其他类型的光源,而光源的渲染模式指的是该光源是否是重要的。如果我们把一个光照的模式设置为Important,意味着我们告诉Unity“这个光源很重要,把它当成一个逐像素光源来处理”。我们可以在光源的Light组件中设置这些属性。

    • Unity 使用的判断规则如下。
      场景中最亮的平
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值