SceneKit 球体法线似乎随着相机移动而改变?

问题描述

以下示例中 SCNSphere 的法线似乎随着相机旋转而变化,这似乎不正确,表明我误解了一些基本原理。

在放置圆柱体以突出显示 x、y 和 z 轴(分别为红色、绿色和蓝色)和具有单位半径的球体和以下自定义片段着色器修改器的场景中:

_output.color.rgb = _surface.normal;

位于 (0,10) 位置(即沿 z 轴)的相机呈现以下内容:

enter image description here

这看起来是正确的,因为在 x、y 和 z 轴向外突出的法线分别是红色、绿色和蓝色,并且始终具有预期的渐变。但是,如果我们随后将相机旋转到位置 (10,0)(即沿 x 轴),这就是渲染的场景:

enter image description here

这表明法线发生了变化,因为渐变不再对应于坐标空间中的预期方向(实际上,这种颜色模式适用于任何相机旋转)。 >

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)