2012-07-23 65 views
0

我想玩各種3D地圖。在最簡單的情況下,一個平面窗格(地圖線條等)繪製在平面上(如同我正在繪製到HTML畫布上一樣)。但我希望該窗格可以在3D空間中移動。我可以在平面three.js臉上繪製2D圖形嗎?

我知道我可以很簡單地在three.js中創建一個平面窗格,但是是否可以實現某種「自定義紋理」,這將允許我以編程方式繪製到此窗格上?

回答

1

它在webGL中被稱爲渲染到紋理。

Three.js提供了WebGLRenderTarget,可以將其用作其他紋理的圖像源。將場景渲染到WebGLRenderTarget而不是主WebGL屏幕。然後你使用這個WebGLRenderTarget作爲紋理的圖像源。

大量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