5

所以我正在做一个项目,它使用多个不同的相机将场景渲染到不同的画布上。基本上我正在做这个例子:

http://threejs.org/examples/webgl_multiple_canvases_grid.html

我发现这样做的问题是不同场景的剪裁平面在边缘做了奇怪的事情。如示例所示,使用大对象时它很好,但使用较小的对象时,有些会被剪裁掉。我做了一个例子来说明这个问题。

http://tinyurl.com/pjstjjd

我想知道是否有办法解决这个问题。我打算尝试探索的几种不同方法如下:

  • 尝试将渲染器重叠一点,以使剪切平面更宽。
  • 看看有没有办法关闭剪辑
  • 哭着自己睡觉。

我是否缺少一些简单的东西,或者我必须深入挖掘。

非常感谢您抽出宝贵时间!艾萨克

4

1 回答 1

3

问题是您要创建 4 个App对象,并且在每个对象中创建不同的随机球体。所以你的 4 个视图在不同的地方有不同的球体集。如果您希望视图匹配,则必须将对象放在每个应用程序中的相同位置。

我将此代码粘贴在您的示例中的第 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 台不同机器上的多个监视器上传播渲染。

这显示了显示器的尺寸是否不同,而不是在网格中。这个显示监视器是圆形还是半圆形。例如 Google 的Liquid Galaxy

这个在单个画布中显示了多个视图,尽管在编写此答案时它看起来需要一些更新。

这个显示了使用一个大画布和占位符元素进行绘图的绘图

于 2013-09-26T22:31:16.263 回答