【问题标题】:Can multiple WebGLRenderers render the same scene?多个 WebGLRenderer 可以渲染同一个场景吗?
【发布时间】:2015-11-29 12:07:17
【问题描述】:

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

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/

【问题讨论】:

  • 似乎不可能 - 你必须有两个场景(和两个网格):jsfiddle.net/sbdogbLw/2
  • @Shomz 知道可能是什么原因吗?

标签: three.js


【解决方案1】:

不可以,但您可以使用 this 之类的视口或this 之类的视口和剪刀设置来解决问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 2015-07-28
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多