Sadece yüz başına normallere ihtiyacınız varsa ve bir yüz için texcoord'larınız kesinlikle 0/0, 0/1, 1/0, 1/1 ise (veya düzeninize uygunsa) 8 vert ile bir küp oluşturabilirsiniz ve 30 (yeniden başlatmalı şerit) veya 36 (liste) indeks. Tepe gölgelendiricinizde SV_VertexID değerine dayalı sabit bir dizi araması kullanarak normalleri ve texcoordları getirin.
Bunu yapmak, köşe arabelleğinize texcoord veya normaller eklemenize bile gerek olmadığı anlamına gelir, bu da size daha fazla bellek tasarrufu sağlar.
Daha da ileri giderek, küp başına 24 verte kadar gidebilir, ancak örnekleme kullanabilirsiniz. Her küp, köşe arabelleğinizde (1x1x1) sabit bir boyut olur ve örnek verileri olarak bir ölçeklendirme faktörüne ve konumunuza (küplerinizin dönmediği, varsa bir matris) sahip olacaksınız. Dönmeyen durumda 24 kerelik bir kerelik maliyetiniz var, ancak her küpün tam olarak belirtilmesi için sadece 6 float gerekir. Dönen durumda 16 şamandıra bakıyorsunuz, ancak bu bile önemli bir tasarruf (bu durumda matris dönüşümlerinde CPU tarafının tıkanması daha olasıdır - dönmeyen kasada anında bir matris oluşturan köşe gölgelendiriciniz - köşe başına yapılsa bile, aptalca hızlıdır, endişelenmenize bile gerek yoktur).
Yüz dokuları için bir doku dizisi kullanın. Elbette dizideki bu tür her bir dokunun aynı boyutta olduğundan emin olmanız gerekir ve dizinin kendisinin değişmesi gerekiyorsa mevcut toplu işinizi kırmanız gerekir, ancak aksi takdirde işi iyi yapar. Köşe tanımınıza, her bir yüz için kullanılacak dizi dilimini tanımlayan üçüncü bir texcoord ekleyin.
Bununla bir GS'ye ihtiyacınız yoktur ve geometri gölgelendirici aşamasının etkin olması kendi ek yükünü uygulayacağından birinden daha hızlı çalışmalıdır.
Motorumda, bu yöntemi kullanarak sadece bir grup küp çizen test kodunu aldım ve 60 fps'yi temizlerken, nispeten düşük uçlu bir GPU'da ve işlemi optimize etmek için başka bir şey yapmadan 300.000'den fazla küpü kolayca çiğneyebilirim . Kuşkusuz, ne aydınlatma ne de tekstüre yapıyorum, ancak alfa harmanlamayı etkinleştirdim, arka yüzey kaldırma devre dışı bıraktım ve genel olarak "optimize etmek için başka bir şey yapmıyorum" kısmımla dengeleniyor, bu yüzden size tür hakkında makul bir fikir vermeli basketbol topu bu yöntemle vurabilirsiniz.