更新平面纹理偏移球体上的移动

时间:2016-07-10 19:13:41

标签: three.js webgl

我正在使用来自维纳斯星球的高度地图数据在Three.js中进行驾驶模拟。

GitHub回复:https://github.com/hypothete/venus-walk

A picture of the simulation

到目前为止模拟的工作原理如下:

  • 在一个隐藏的场景中,一个名为globeCamera的摄像机在一个固定的高度上移动,该高度覆盖在用金星高度图纹理的球体上。您可以在我的图片的左下方视口中看到这种情况。 globeCamera将其视图呈现为WebGLRenderTarget,以用作本地高度贴图。结果是在左中间的第二个视口中。

  • 在可见场景中,名为terrainMesh的平面网格的顶点与本地高度贴图中的值相对应地上下移动。这给人一种错觉,即当我们实际上只是从globeCamera的运动中更新飞机的顶点时,放置在飞机中心的车辆正在表面上移动。

  • 由于我知道globeCamera的旋转,我可以将该值传递给我的片段着色器,以使用高度贴图旋转terrainMesh的岩石纹理。

如何抵消岩石纹理的位置,以便纹理单位与地形一起平移?我已经尝试将globeCamera的偏移量作为2D矢量跟踪并将其添加到片段着色器中的旋转UV,但我的结果不一致。谢谢你的帮助。

0 个答案:

没有答案