首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在同一个画布中使用fabric.js和three.js吗?

我可以在同一个画布中使用fabric.js和three.js吗?
EN

Stack Overflow用户
提问于 2016-04-01 04:41:43
回答 2查看 2.7K关注 0票数 1

是否可以在同一画布上使用three.js进行3d绘图,并添加到fabric.js中进行2d绘图?我只是喜欢fabric.js处理操作的方式,并且想要利用它。在我开始实验之前,我想知道是否有人尝试过这个方法?有可能吗?

EN

回答 2

Stack Overflow用户

发布于 2016-04-01 06:34:49

另一种方法是将FabricJS与屏幕外画布一起使用,然后将该画布用作屏幕上的WebGL/tree.js画布和正在渲染的多边形的纹理(图像)源。

Is it possible to use a 2d canvas as a texture for a cube?

代码语言:javascript
复制
var texture = new THREE.Texture(fabricCanvas);

若要与FabricJS画布交互,必须将WebGL画布的鼠标坐标转换为FabricJS 2D画布的兼容坐标(即3D多边形上的3D矩阵逆转换或类似方法)。有关在3D空间中处理鼠标坐标的一种方法,请参见this example ),然后从该转换中生成鼠标事件,并将这些事件发送到屏幕外画布。

对FabricJS进行更改后,强制纹理更新:

代码语言:javascript
复制
texture.needsUpdate = true;
票数 3
EN

Stack Overflow用户

发布于 2016-04-01 04:52:28

您不能使用both a 2D context and 3D context on the same canvas。所以这是可能的,但您必须在THREE.js中使用CanvasRenderer。它的速度较慢,但Fabric.js使用2D上下文,因此如果您打算在同一画布上使用两者,则必须使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36343358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档