是否有可能在three.js中裁剪视口?

时间:2013-08-01 14:43:13

标签: three.js rendering webgl crop viewport

我有一个场景,中间是一个球体,一个相机在它周围旋转。现在我想知道是否可以使用Three.JS制作此视口的裁剪,以便例如球体出现在左侧或右侧。

我不打算移动相机或者观察球体旁边的一个点,因为这样会扭曲透视,但是渲染的剪辑或裁剪。

这可能吗?

1 个答案:

答案 0 :(得分:0)

一个可能的解决方案是将第二个画布放在Three.js画布上,然后通过blitting将three.js场景重新绘制到第二个画布上:

overlayCanvas.getContext('2d').drawImage(threeCanvas, 40, 40, 960, 960, 0, 0, 1200, 1200);

您可以在documentation中阅读有关drawImage()参数的更多信息,但这样做会裁剪three.js画布的某个区域并将其拉伸到第二个画布的更大区域。它应该比第二次渲染场景快得多,并且它将以您想要的大小显示(尽管有一些拉伸)。

您可以通过以比通常显示的尺寸更大的尺寸绘制原始(three.js)场景来减轻拉伸,以便您要裁剪到视图中的区域与辅助画布的大小相同。