【问题标题】:Correcting for perspective clipping in Three.js纠正 Three.js 中的透视剪裁
【发布时间】:2016-12-06 20:28:49
【问题描述】:

我在 Three.js 的球体内有一个平面,我正在渲染一个着色器,以便我可以在球体上获得效果。我还使用lookAt 将平面与相机对齐。我遇到的问题是,如果相机离球体太近,平面似乎会缩小到球体中。我已经确定问题出在相机的透视特性上,因为当相机离球体太近时,它的光线不再与平面边缘对齐。

这是一张可视化的图片:Perspective clipping

这里还有一个 JSFiddle 演示了这一点:https://jsfiddle.net/k8tc8ex6/1/

我知道为什么会出现这个问题,我想知道一些可能的解决方案,我想要实现的是平面的边缘总是会出现接触球体的边缘渲染之后。

提前非常感谢!

【问题讨论】:

    标签: javascript three.js perspectivecamera


    【解决方案1】:

    如果我是对的,您正试图“完美”地将球体的中间部分放入透视相机的平截头体中。透视图是不可能实现的。正如您所说(已证明),平面将超出屏幕的边界,否则平面和屏幕的边缘会出现间隙。

    如果您非常想将球体的中间部分“完美”放入屏幕,您有两种选择:

    1-) 切换到正交相机 2-) 坚持使用透视相机,让你的 FOV 非常接近 0,给远平面一个很大的距离,这样你的透视相机就可以真正起到正交相机的作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 2013-08-02
      • 2019-05-11
      • 1970-01-01
      • 2021-06-27
      • 2015-02-26
      • 2013-11-28
      相关资源
      最近更新 更多