我有一个带有(缓冲)几何对象和几个不同标记层的视图,每个标记都存储在自己的场景中。这使我可以轻松地将它们关闭或在物体上方绘制,无论深度如何。
我想要完成的是使用相机的近场和远场的简单横截面。我将(正交)相机放在我想要“切割”的位置并且效果很好。问题是,当我“穿过”物体时,我不能“切断”我的标记层。我希望标记仍然完全可见。
我所尝试的是在渲染循环内更改相机的近场:
function animate() {
requestAnimationFrame( animate );
renderer.clear();
// Switch the near field for this scene
var oldNear = camera.near;
camera.near = -1000;
renderer.render( sceneFTA, camera );
camera.near = oldNear;
//
renderer.render( scene, camera );
//the following scenes are always drawn on top
renderer.clearDepth();
renderer.render(sceneMarkup, camera);
renderer.render(scenePts, camera);
}
我不确定出了什么问题。我可以在渲染循环之前更改camera.near属性并看到更改生效,但是在循环内快速切换似乎没有做任何事情。结果与保持近场不变相同。
任何想法如何使近场变化发挥作用?
答案 0 :(得分:0)
如果更改摄像机构造函数中指定的摄像机参数,则需要调用
camera.updateProjectionMatrix();
three.js r.71