你好:)我正在尝试渲染两个不同的场景。使用相机应该在两个渲染器中同时以相同的方式移动。
解释我想做的事: 我想在两个不同的场景中渲染两个不同的pointcloud,但我希望不同场景中的摄像机在两个场景中的移动方式相似。
所以我想知道,我怎么能以有效的方式做到这一点?
我尝试了两个渲染器,两个场景和一个摄像头,但似乎不可能。将球体添加到每个场景后,我收到此错误: three.js:21528未捕获的TypeError:无法读取未定义的属性'length'
我被迫使用两台相机吗?或者是否可以通过其他方式进行? 是否也可以使用同一个对象并将其添加到两个不同的场景? (似乎这是不可能的,因为当我将对象添加到另一个场景时,它会从第一个场景中删除它。)
感谢您的帮助:D
答案 0 :(得分:0)
我的理解是摄像机或网格物体只能在任何给定时间分配到一个场景。这是因为"添加" (分配方法)创建一个子对象:父对象关系,子对象在任何给定时间只能有一个父对象。
理论上,您可以使用单个摄像头并将其从一个场景重复移动到另一个场景,并仅在包含摄像机时渲染每个场景。您还可以在场景之间穿梭一个或多个网格物体。但是,如果你在场景之间穿梭很多东西并且你也在寻找高帧率,我不知道这会有多好。[/ p>
更安全的方法是为每个场景制作一个摄像机,然后确保两个摄像机以相同的方式移动 - 即在渲染每个帧之前同步它们的.position和.rotation值。同样,对于您希望在两个场景中出现的任何网格对象 - 创建每个网格对象的多个副本,并同步其.position,.rotation或其他属性中的任何更改。
答案 1 :(得分:0)
无需将相机添加到场景中,因此可以使用相机渲染多个场景。必须将相机添加到场景中的唯一情况是相机是否有孩子 - 例如儿童灯。
单个渲染器可用于渲染不同的场景。
对象(如网格或点云)只有一个父对象,因此一次只能添加到一个场景中。
three.js r.75