2011-12-11 52 views

回答

10

您需要一個單獨的畫布。您可以將其他畫布放在第一個畫布上,這不被認爲是不好的做法。

+0

知道某些瀏覽器不以非常有效的方式實現WebGL畫布和周圍元素的合成(即從OpenGL獲取圖像然後在CPU上合成,然後將其發送回去到GPU),並且取決於您想要做的2D事情的複雜程度(即爲圖形用戶界面繪製一些位圖),可能還需要考慮通過WebGL畫布來做到這一點。在WebGL中繪製2D東西應該只是設置正確的轉換並且可能禁用深度測試 – aphax

9

您不能對一個畫布元素使用多個上下文。在WebKit的,這是明確提到in the source

// 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; 

(所以,如果你要求的3D背景下,當你已經有了另一種情況下你,得到null。)

你可能想要的是兩個畫布元素 - 一個用於3D的東西,另一個用於2D的東西。如果將它們放在彼此之上,它們將作爲兩層,並且可以獨立地在每個畫布上繪製。

相關問題