所以我正在开发一个项目,该项目使用多个不同的摄像头将场景渲染到不同的画布。基本上我在做这个例子:
http://threejs.org/examples/webgl_multiple_canvases_grid.html
我发现这样做的问题是,不同场景的剪裁平面在边缘处做了奇怪的事情。正如示例所示,使用Big Objects很好,但是有些较小,有些会被边缘修剪掉。我已经举了一个例子来说明下面的问题。
我想知道是否还有解决这个问题。我将尝试和探索它的几种不同方式如下:
是否有一些我想念的简单,或者我是否需要深入挖掘。
非常感谢您的时间! 艾萨克
答案 0 :(得分:3)
问题是你正在创建4个App
个对象,并在每个对象中创建不同的随机范围。所以你的4个视图在不同的地方有不同的范围。如果您希望视图匹配,则必须将对象放在每个App中的相同位置。
我在示例
的第129行粘贴了此代码var randomSeed_ = 0;
var RANDOM_RANGE_ = Math.pow(2, 32);
Math.random = function() {
return (randomSeed_ =
(134775813 * randomSeed_ + 1) %
RANDOM_RANGE_) / RANDOM_RANGE_;
};
这是一个随机函数,它为每个应用程序返回相同的值,因为randomSeed_在每个应用程序中从0开始。
了解您最终要实现的目标会有所帮助。您链接的Three.JS示例旨在展示如何在网格中的4台不同计算机上的多个监视器之间传播渲染。
This one shows if the monitors are different sizes and not in a grid。 This one shows if the monitors are in a circle or semi circle。例如Google的Liquid Galaxy。
This one shows multiple views in a single canvas虽然在撰写此答案时,看起来需要进行一些更新。
This one shows drawing using one large canvas and place holder elements for where to draw