gpt4 book ai didi

javascript - 如何在正交渲染中纠正不透明对象的排序顺序

转载 作者:行者123 更新时间:2023-12-03 01:15:01 24 4
gpt4 key购买 nike

在 THREE.js 中,当通过离轴正交相机查看立方体网格时,一旦相机旋转得足以使对象相互遮挡,则对象的渲染顺序似乎并不基于其位置在空间中,而不是它们被创建的顺序。

我尝试设置 THREE.WebGLRenderer( { antialias: true, sortObjects: false } ); 但这似乎无法解决问题。

这是一个动画 fiddle ,可以看到这种奇怪的埃舍尔式效果:http://jsfiddle.net/rfbvdmxn/2/

这是对象重叠之前的场景: off-axis orthographic rendering

当我继续向同一方向旋转相机并且对象重叠时,您可以看到最后面的对象(从相机的 Angular 来看)最终遮挡了最前面的对象:

enter image description here

这是怎么回事,更重要的是我该如何纠正这个问题?

最佳答案

问题在于您混合了 OrthographicCamera 的构造函数参数 topbottom。如果我更改两个参数的符号,排序看起来没问题。此外,MeshNormalMaterial 现在可以生成正确的视觉输出。

var camera = new THREE.OrthographicCamera(window.innerWidth / -2, window.innerWidth / 2, window.innerHeight / 2, window.innerHeight / - 2, -1000, 2000);

演示:http://jsfiddle.net/rfbvdmxn/42/

关于javascript - 如何在正交渲染中纠正不透明对象的排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52056646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com