多个WebGLRenderer可以渲染相同的场景吗?

时间:2014-12-23 00:32:43

标签: three.js

是否可以使用两个WebGLRenderer实例,使用两个Canvas来渲染相同的场景?

var renderer = new THREE.WebGLRenderer({
    canvas: canvas1
});
renderer.setSize(100,100);
var renderer2 = new THREE.WebGLRenderer({
    canvas: canvas2
});
renderer2.setSize(100,100);
var mesh = new THREE.Mesh(
    new THREE.BoxGeometry(100,100,100)
);
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera();
camera.position.z = 500;
scene.add(mesh);

function draw(){ 
    //try commenting the first render out
    //it will allow the other renderer to draw
    renderer.render(scene,camera); 
    renderer2.render(scene,camera);
    requestAnimationFrame(draw);
}
draw();

在这个小提琴中,当我如上所述时,我只能在给定时间在一个画布上渲染。 http://jsfiddle.net/ehsanziya/sbdogbLw/1/

1 个答案:

答案 0 :(得分:1)

否但您可以使用this之类的视口或this之类的视口和剪刀设置来解决方案。

注意我没有将代码发布到第一个代码,因为它是一个不常见的解决方案。我没有将代码发布到第二个代码,因为它已经在堆栈溢出。