javascript - 云上的丑陋渲染

标签 javascript three.js webgl zbuffer

我正在尝试实现 this tutorial 中的代码,但比例更大(半径 = 100000 个单位)。

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

这是结果(如果云离得更近,情况会更糟): Earth

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

我能做什么?

最佳答案

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

var renderer = new THREE.WebGLRenderer({ antialias: true, logarithmicDepthBuffer: true});

这里有一个例子,你可以看看: http://threejs.org/examples/#webgl_camera_logarithmicdepthbuffer

按照 LJ_1102 的建议使用 polygonOffset 是一种可能,但不是必需的。

关于javascript - 云上的丑陋渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26747759/

相关文章:

javascript - Three.js - 如何在指定图层上获取 THREE.ArrowHelper?

javascript - Three.js 正交相机文本

javascript - html 图像的奇怪压缩

javascript - 抓取 html 页面结果..顺序不正确

javascript - React - 即使刷新了页面,如何保持在同一页面上?

javascript - sweetalert 2 中的输入不可输入或无法在 materializecss 模式中输入

javascript - 单击选项卡更改标题的内容

three.js - 如何使用 WebPack 或 Rollup 摇树 Three.js?

javascript - 如何从被 GLSL 着色器置换的 Three.js 几何体中导出 OBJ?

三.js/GLSL : WebGL shader to color fragments based on world space position