当模形scale为负数时,光照不正确

image
图中左边剪刀sacleZ为正数,光照正常,右边的剪刀scaleZ为负数,光照在背面。

为负数时,法线都被翻转了,为啥这个地方不能用旋转180度?

我知道法线被翻转了,但这个不是bug吗?布场景中模型镜像是一个很正常的操作,不能因为法线被翻转了,光照计算就不管了吧。

一…时语塞

1赞

哥,你還是用翻轉180吧XDD

還是你要cocos幫你遇到排行榜就把相同圖片合批XDD

我不知道你想表达什么,我只是就事论事,做3D场景的时候,美术会经常对模型进行镜像,以达到他们想要的效果。
我们来做一下Unity和Cocos关于镜像上光照的对比。一样的灯光角度,一样的物体位置,一样的物体镜像缩放,但unity可以正确光照。


Unity有做了特殊处理,这个处理会打断动态合批。
中文:【基础】为何odd negative scaling会导致Unity动态合批失败?_MiaoMiaoM-的博客-CSDN博客
英文:https://github.com/Unity-Technologies/BatchBreakingCause/issues/1

而且模型带这个负的scale,到时BoxCollider之类的碰撞也容易出问题,一般是不太建议这么做的。

可以讨论下是否要和Unity的处理一致~

1赞

我建议是有这个处理,因为现在这样的镜像光照是无法正常使用的,效果完全不同。

已建立issue讨论~

1赞

查看多边形的表面法线并及时反转正确是美术最基本的操作了吧,否则你连滑边,挤出,表面细分等建模操作全都会不正确了。连我这个"码农美术"平时建模时都带着这个习惯,时不时看看"Face Orientation"随手就给"Flip"过来。