正交和透视相机问题

时间:2014-02-28 09:34:39

标签: three.js projection

此图像使用透视相机,但球体形状在远离中心时会扭曲。

此图像使用的是正交相机,但球体和长方体不是3D ...

任何人都可以提出这样的解决方案,以获得3D效果而不会扭曲球体的形状...

1 个答案:

答案 0 :(得分:1)

这是完全正确的。球体扭曲和长方体透视效果都是由相同的透视投影属性引起的。

一种可能的解决方案是将场景分成两部分:

  • 使用透视投影渲染背景(长方体)
  • 使用正投影渲染球体

另一个解决方案是使用正交绘制所有内容并将您的长方体修改为梯形,这样只有看起来就像在透视中一样。

如果你想一想,有视角和没有扭曲听起来是互相排斥的。想象一下,球体由两部分组成 - 前部和后部。现在你说你需要距离相机更远的物体更小,但同时你说你想要球体的前后尺寸相同 - 不可能。如果手动指定球体尺寸越小,您就可以通过正交投影获得所需的效果。或者您也可以使用透视投影并通过深度轴将您的球体缩放为平坦(但保持法线以保持适当的光照)