ビューポートを変更しながら描画しても一度に全体を描画しないと消えるのを回避するには
preserveDrawingBufferをtrueにする
部分描画のときに全体クリアがはしるのを防ぐにはautoClearをfalseにする
var renderer = new THREE.WebGLRenderer({ preserveDrawingBuffer: true }); renderer.autoClear = false;
ビューポートを設定したあとその領域だけクリアして描画するには以下のようにする。
renderer.setViewport(rect.x, rect.y, rect.w, rect.h); renderer.setScissorTest(true); renderer.setScissor(rect.x, rect.y, rect.w, rect.h); renderer.clear(); renderer.setScissorTest(false); renderer.render(scene, camera);
今のところ正常に動いてるっぽい。