Я хотел бы использовать experimental-webgl и контекст canvas 2d. После того, как я нарисовал 3D-объекты, я хочу нарисовать над ним 2d-объекты.
Как мне это сделать?
Ответ 1
Вам нужен отдельный холст. Вы можете поместить другой холст поверх первого, это не считается плохой практикой.
Ответ 2
Вы не можете использовать несколько контекстов для одного элемента холста. В WebKit это явно упоминается в источнике:
// A Canvas can either be "2D" or "webgl" but never both.
Если вы запрашиваете другой контекст, вы получаете null:
if ((type == "webkit-3d") ||
(type == "experimental-webgl")) {
if (m_context && !m_context->is3d())
return 0;
(Итак, если вы запрашиваете трехмерный контекст, когда у вас уже есть другой контекст, вы получаете null.)
Что вы, возможно, хотите, это два элемента холста - один для 3D-материала, а другой для 2D-материала. Если вы размещаете их друг над другом, они действуют как два слоя, и вы можете рисовать на каждом холсте независимо.