WebGLRenderTarget 是GPU 內部對象, 主要做用是存儲繪製結果,一般繪製結果直接顯示到屏幕上,可是也能夠暫時存儲在GPU內部,以便於再次利用。對於OpenGL 來說, RenderTarget就是一個FrameBuffer, 在這個FrameBuffer之下附帶有一個顏色buffer一般便是一個Texture, 還有一個renderBuffer 一般能夠是存儲深度浮點信息,或者其它浮點信息。 target = new THREE.WebGLRenderTarget(WINDOW_W*0.5, WINDOW_H);這裏聲明一個半個屏幕寬度, 整個高度的RenderTarget.接着在繪製場景的函數中: renderer.setRenderTarget(target); renderer.clear(); renderer.render(scene, camera, target);首先設定繪製目標,清理目標, 將場景繪製到目標上。接着咱們就能夠使用繪製的數據了, 例如最簡單的是,將繪製的場景顯示在另一個場景中的某個平面上。 scene2 = new THREE.Scene(); m2 = new THREE.Mesh(new THREE.PlaneGeometry(2, 2), new THREE.MeshBasicMaterial()); m2.rotation.x = -Math.PI/4; m2.rotation.y = -Math.PI/4; normalCamera = new THREE.PerspectiveCamera(90, WINDOW_W*0.5/WINDOW_H, 0.5, 2000); normalCamera.position.z = 3; scene2.add(normalCamera); scene2.add(m2);這裏構建另一個場景, 場景中有一個平面, 平面的紋理是上面的繪製結果, m2.material.map = target; m2.material.map.needUpdate = true;接着將這個新場景繪製到屏幕上, 只須要設定繪製目標爲null, 就能夠了。 renderer.setRenderTarget(null); renderer.clear(); renderer.render(scene2, normalCamera);這樣就能夠製做出相似於 顯示器的效果了。函數