experimental-webgl
ve 2d
tuval içeriğini de kullanmak istiyorum. 3d nesneleri çizdikten sonra, üzerinde 2d nesne çizmek istiyorum.Birden çok tuval içeriği nasıl kullanılır?
Nasıl yapmalıyım?
experimental-webgl
ve 2d
tuval içeriğini de kullanmak istiyorum. 3d nesneleri çizdikten sonra, üzerinde 2d nesne çizmek istiyorum.Birden çok tuval içeriği nasıl kullanılır?
Nasıl yapmalıyım?
Ayrı bir beze ihtiyacınız var. Diğer tuvali ilkine koyabilirsiniz, bu kötü bir uygulama olarak görülmez.
Tek bir kanvas öğesi için birden çok bağlamı kullanamazsınız. WebKit, bu açıkça in the source sözü geçerli:
// A Canvas can either be "2D" or "webgl" but never both.
başka bağlam talep yaparsanız, null
olsun:
if ((type == "webkit-3d") ||
(type == "experimental-webgl")) {
if (m_context && !m_context->is3d())
return 0;
(Yani zaten başka bir bağlama sahip olduğunda bir 3D içeriği istemek, size null
olsun.)
Muhtemelen istediğiniz iki tuval öğesi - biri 3D malzeme için diğeri ise 2D malzeme için. Eğer onları birbirinizin üzerine yerleştirirseniz, iki katman olarak hareket ederler ve her tuvali bağımsız olarak çizebilirsiniz.
Bazı tarayıcıların WebGL kanvasının ve çevresindeki öğelerin bileşimini çok etkili bir şekilde uygulamadığını (yani, görüntüyü OpenGL'den alarak ve daha sonra CPU'da bir araya getirerek, sonra da geri göndermeyi) bilmek yine de önemli olabilir. GPU'ya) ve 2D şeylerin ne kadar karmaşık bir şekilde çalıştığına bağlı olarak (yani, yalnızca GUI için bazı bitmap'ler çizerek), bunu WebGL tuvalini kullanarak yapmayı düşünebilirsiniz. WebGL'de 2B malzeme çizmek, doğru dönüşümleri kurmak ve belki de derinlik testini devre dışı bırakmak olmalıdır. – aphax