Three.js 带渐变的skydome

问题描述 投票:0回答:2

我想添加一个具有 2d 渐变的球体作为纹理来创建一个穹顶。我读到,在 openGL 中,这通常是通过在附加通道中渲染天空盒而不进行深度测试来解决的。 我在球体上禁用了深度测试,因此其他所有内容都绘制在它前面,这有点给我带来了所需的效果,但根据相机角度,它会剪辑场景中的其他对象。

我正在查看几个使用 THREE.EffectComposer 和第二个场景的示例,我可能完全在错误的事情之后,但我认为这可以解决这个问题。问题是我从来没有接触过effectComposer,并且完全不知道如何使用它以及我到底需要哪些东西。

我会感谢对此的任何意见,也许我根本找错了东西。

2d three.js gradient
2个回答
9
投票

这里有两个 Three.js 示例,其中创建了带有渐变的天幕。它们不涉及

EffectComposer
或禁用深度测试。

  1. https://thirdjs.org/examples/#webgl_lights_hemisphere
  2. https://thirdjs.org/examples/#webgl_materials_lightmap

0
投票

您不必使用圆锥体或其他 3D 几何体来模拟渐变天空。 我使用画布(具有 3 个渐变点,浅蓝色 -> 白色(地平线) -> 深蓝色)解决了这个问题,并将其绘制为在我的相机前面的精灵,并与它保持正确的距离(雾距离)。 您只需在移动/旋转凸轮时管理距离。 提示:使用 mesh.scale.set (xx,xx,1) 将画布纹理缩放到所需的大小。

© www.soinside.com 2019 - 2024. All rights reserved.