使用2D和3D上下文的Canvas 3D绘图

Poi*_*ter 15 html5 canvas opengl-es webgl

由于webgl/opengl不支持文本绘制,因此可以使用3D上下文和使用2D上下文的文本绘制来绘制3D对象?

dav*_*ave 29

不,不幸的是没有.

在HTML 5规范说,如果你拨打getContext的是已经在不同的canvas元素的上下文模式和两个上下文不兼容,然后返回null.

不幸的是,"webgl"和"2d"画布不兼容,因此你会得到null:

var canvas = document.getElementById('my-canvas');
var webgl = canvas.getContext("webgl"); // Get a 3D webgl context, returns a context
var twod = canvas.getContext("2d"); // Get a 2D context, returns null
Run Code Online (Sandbox Code Playgroud)


Dre*_*kes 15

如上所述,你不能这样做.

但是,您可以将一个画布放在另一个画布的顶部并分别绘制它们.我以前做过这个,它可以很好地解决.

  • 有关更多信息,请参见以下问题:http://stackoverflow.com/questions/3008635/html5-canvas-element-multiple-layers (2认同)

Mar*_*tos 5

使用画布2D将文本创建为纹理,然后在3D中渲染.请参阅此处获取教程.