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;
其他都不变。
输出结果如下,已经可以正常显示环境光了
解决方法:无!!
总结:哪位大神能够给我解释一下?实在是不懂。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)