Unity shader 使用 半兰伯特

Unity shader 使用 半兰伯特 ,第1张

问题:

Unity shader 使用 半兰伯特 (Half-Lambert)漫反射会使得模型在没有直射光的情况下漆黑一片,原因不得而知。


使用半兰伯特漫反射代码如下:
***********************half兰伯特漫反射计算
//fixed3 diffuse = _LightColor0.rgb * (dot(i.worldNormal, ligthDir)*0.5 + 0.5)*_Diffuse.rgb;






//输出为:
return fixed4(ambient + (diffuse + specular) * atten, 1.0);

结果便是,整个输出都被毁了。


被圈起来的模型

将半兰伯特漫反射替换为兰伯特漫反射
fixed3 diffuse = _LightColor0.rgb *  max(0, dot(i.worldNormal, ligthDir))*_Diffuse.rgb;

其他都不变。


输出结果如下,已经可以正常显示环境光了 

解决方法:

无!!

总结:

哪位大神能够给我解释一下?实在是不懂。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存