云上的丑陋渲染

Mor*_*ing 3 javascript zbuffer webgl three.js

我正在尝试实现本教程中的代码,但比例要大得多(半径 = 100000 单位)。

我不知道大小是否重要,但在我的地球上渲染云有一个奇怪的渲染。正如教程中所做的那样,我使用两个球体和三个纹理(地球贴图、凹凸贴图、云)。

结果如下(如果云更近,情况会更糟): 地球

云层距离行星表面越近,这种故障就越明显。如果云足够远(但这不现实),问题就会完全消失。

我能做些什么?

tra*_*nik 5

使用对数深度缓冲区而不是线性深度缓冲区。logarithmicDepthBuffer这是一个非常简单的更改,只需在创建时启用,THREE.WebGLRenderer如下所示:

var renderer = new THREE.WebGLRenderer({ antialias: true, logarithmicDepthBuffer: true});
Run Code Online (Sandbox Code Playgroud)

您可以查看以下示例: http:// Threejs.org/examples/#webgl_camera_logarithmicdepthbuffer

按照 LJ_1102 的建议使用 PolygonOffset 是可能的,但这不是必需的。