多个 WebGLRenderer 可以渲染同一个场景吗? [英] Can multiple WebGLRenderers render the same scene?

查看:38
本文介绍了多个 WebGLRenderer 可以渲染同一个场景吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is it possible to use two instances of WebGLRenderer, using two Canvass to render the same scene?

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/

In this fiddle, when I do as above, I can only render on one canvas at a given time. http://jsfiddle.net/ehsanziya/sbdogbLw/1/

推荐答案

不,但您可以使用像 this 或视口和剪刀设置,如 这个.

No but you can do a solution using viewports like this or viewport and scissor settings like this.

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

Note I didn't post the code to the first one because it's an uncommon solution. I didn't post the code to the second one because it's already on stack overflow.

这篇关于多个 WebGLRenderer 可以渲染同一个场景吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆