Ben bir vecraft tipi sahneyi düşünüyorum, burada voksel ile gerçekten çokgenler kullanılarak yaratılmış bir bloklar dünyası kastediyorsunuz:
Bir geometri gölgelendirici kullanıyorsanız, voksel başına tam olarak üç yüze (veya her neyse) sahip olmaktan kaçınmak zor olacaktır.
Aynı dokuya sahip çok sayıda bitişik blokunuz varsa, VBO yaklaşımında (dejenere) şeridinizde çok daha az üçgen olması için dokuların döşemesini kullanabilirsiniz. Demek istediğim, 6x6 büyük bir çim çimen voksel alanı varsa, tüm üst kısmı 64 yerine sadece 2 üçgene çekebilirsiniz.
GS yaklaşımı ile, VBO yaklaşımıyla da oldukça basit olan bitişik voksellerin tıkadığı yüzlerin önemsiz şekilde toplanmasını yapamazsınız.
GS yaklaşımını denemedim ama VBO yaklaşımının yinelenen bitişik karoların birleştirilmesiyle çok iyi çalıştığını söyleyebilirim. Öğe endeksleriyle uğraşırken, köşeleri tekrar etmekten çok daha yavaş olduğunu buldum. Dünyanızı hoş küçük küplere bölerseniz, tipik olarak her bir köşe başına bileşen başına yalnızca bir bayt kullanabilir ve hatta doku bilgilerini ve normallerini (eksen hizalı bir küpün üzerindeki bir yüzün yalnızca 3 olası normları vardır) vb. Güzel ve hızlı köşe başına 4 bayt.
6 yüzün her biri için ayrı VBO'lar kullandım - yalnızca en fazla üçünü açıkça çizmeniz gerekir. Bu, genellikle minecraft tarzı voksellerin üst kısımlarında kullanılan farklı dokulara uyuyor. Çünkü her set için normal ve böyle bir üniforma var.
GL_REPEAT
Yatay eksenli bir atlasta dikey olarak döşenmiş pixmaplerin kullanımı ve aynı atlasta piksellerin 90 derece döndürülmüş versiyonlarına sahip olduğumda, aynı aramada aynı VBO kullanarak muazzam miktarlarda farklı bloklar çizebileceğimi öğrendim. 6x6 çim alan örneğinde, bunu atlasımdaki sadece bir boyutta tekrarladığım için 12 üçgene böldüm.
Bunu çoğunlukla GS'nin bir gün oynamayı hayal edebileceğim bir şey olduğu entegre grafik yongalarının ve mobil cihazlarının en düşük ucunda çalışmaya başladım.