0

我想尝试测试一张 3D 地图。最简单的是,一个平面窗格,上面绘制了地图线等,平面的(就像我在 HTML 画布上绘制一样)。但我希望该窗格可以在 3D 空间中移动。

我知道我可以非常简单地在 three.js 中制作一个平面窗格,但是是否可以实现某种“自定义纹理”,让我以编程方式在该窗格上绘制?

4

1 回答 1

1

它在 webGL 中称为渲染到纹理。

Three.js 提供了 WebGLRenderTarget 可以用作进一步纹理的图像源。您将场景渲染到 WebGLRenderTarget 而不是主 WebGL 屏幕。然后使用这个 WebGLRenderTarget 作为纹理的图像源。

很多 2D 后处理都是这样工作的。他们将世界渲染为 2D 纹理,然后使用片段着色器来应用每个像素的后处理代码,例如模糊。

例如,参见http://mrdoob.github.com/three.js/examples/webgl_postprocessing.html

它为 2D 后处理渲染场景,但原理是一样的。

这是 WebGLRenderTarget 设置代码:

https://github.com/mrdoob/three.js/blob/master/examples/js/postprocessing/EffectComposer.js#L14

于 2012-07-24T12:59:44.883 回答