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

前向渲染路径

  • 原理

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

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 使用的判断规则如下。
      场景中最亮的平
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值