本文介绍了多个 WebGLRenderer 可以渲染同一个场景吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以使用两个WebGLRenderer
的实例,使用两个Canvas
来渲染同一个场景?
Is it possible to use two instances of WebGLRenderer
, using two Canvas
s 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/
推荐答案
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 可以渲染同一个场景吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!