Рисунок холста 3D с использованием как 2D, так и 3D-контекста

Так как webgl/opengl не поддерживает текстовый чертеж, можно ли рисовать 3D-объект с использованием 3D-контекста и текстового чертежа с использованием 2D-контекста?

Ответы

Ответ 1

Нет, к сожалению нет.

HTML 5 spec говорит, что если вы вызываете 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

Ответ 2

Как указано, вы не можете этого сделать.

Однако вы можете поместить один холст поверх другого и нарисовать их отдельно. Я сделал это раньше, и это может получиться достаточно хорошо.

Ответ 3

Создайте текст как текстуру, используя холст 2D, а затем визуализируйте его в 3D. См. здесь для учебника.