Рисунок холста 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. См. здесь для учебника.