是否可以在同一画布上使用three.js进行3d绘图,并添加到fabric.js中进行2d绘图?我只是喜欢fabric.js处理操作的方式,并且想要利用它。在我开始实验之前,我想知道是否有人尝试过这个方法?有可能吗?
发布于 2016-04-01 06:34:49
另一种方法是将FabricJS与屏幕外画布一起使用,然后将该画布用作屏幕上的WebGL/tree.js画布和正在渲染的多边形的纹理(图像)源。
Is it possible to use a 2d canvas as a texture for a cube?
var texture = new THREE.Texture(fabricCanvas);若要与FabricJS画布交互,必须将WebGL画布的鼠标坐标转换为FabricJS 2D画布的兼容坐标(即3D多边形上的3D矩阵逆转换或类似方法)。有关在3D空间中处理鼠标坐标的一种方法,请参见this example ),然后从该转换中生成鼠标事件,并将这些事件发送到屏幕外画布。
对FabricJS进行更改后,强制纹理更新:
texture.needsUpdate = true;发布于 2016-04-01 04:52:28
您不能使用both a 2D context and 3D context on the same canvas。所以这是可能的,但您必须在THREE.js中使用CanvasRenderer。它的速度较慢,但Fabric.js使用2D上下文,因此如果您打算在同一画布上使用两者,则必须使用它。
https://stackoverflow.com/questions/36343358
复制相似问题