2012-03-31 12 views
5

Aynı doku görüntü biriminde hem GL_TEXTURE_2D hem de GL_TEXTURE_CUBE_MAP öğelerine (farklı dokular) bağlarsanız ne olur? Örneğin, bir dokuya GL_TEXTURE0GL_TEXTURE_2D hedefini ve aynı doku biriminin GL_TEXTURE_CUBE_MAP hedefine başka bir doku eklediğimi varsayalım. Daha sonra iki eşit değişkene sahip olabilirim, biri sampler2D ve diğeri samplerCube ve her ikisini de 0 olarak ayarlayabilir miyim (GL_TEXTURE0)?OpenGL ES 2.x: "GL_TEXTURE_2D" ve "GL_TEXTURE_CUBE_MAP" öğelerini aynı doku görüntü birimine bağlayın.

Yanıtın "hayır" olduğundan (veya sonucun tanımlanmamış olduğundan) şüpheleniyorum, ancak aynı doku görüntü biriminde birden fazla doku hedefini özellikle kullanmasını yasaklayan özelliklerde hiçbir şey bulamadım.

cevap

7

Sana bir 2B doku ve aynı doku biriminde bir küp haritası dokusunu, ancak (ya öylesine) Ben bu tamamen mümkündür tahmin bağlayabilir eğer açıklanır şey bulamadım. Tüm doku değiştirme işlevleri, üzerinde çalışılacak doku hedefini belirtmenizi gerektirdiğinden, buna izin vermek mantıklıdır.

Aynı işaret farklı numune tipleri değişkenlerini olmasına izin verilmez: Bölüm 2.10 söylediği gibi

Ama OpenGL ES 2 Spec açıkça, bir gölgelendiricide ikisini aynı anda kullanmak izin vermeyen Bir program nesnesi içinde doku görüntü birimi. Bu durumu, yalnızca bir sonraki işleme komutu verilen 'da algılanabilir ve daha sonra bir INVALID_OPERATION hatası üretilecektir.

Yani kullanamaz hem sampler2D ve uygulamada en doku ünitesi sınırlarını eğmek aynı doku ünitesi referans bir samplerCube.