Arazi için kullanabileceğimiz gibi büyük bir ızgara örgüsü hayal edelim. Biz işlemek edeceğiz n
tek beraberlik çağrısında, diyelim yarım bizim 1080p ekranı kaplayan, bunun Üçgenler değerinde.
Tüm köşelerimizi kaynak yapıyor ve yumuşatma / tekstüre dikişleri yoksa, her üçgenin 3 köşesi vardır ve her tepe noktası 6 üçgenle paylaşılır, bu nedenle n/2
köşelerimiz vardır.
Bunu yapmak için şunları yapmalıyız:
Köşe gölgelendiricisini en az n/2
kez çalıştırın
("en azından" çünkü köşe sonuçları için önbelleğimiz sadece çok büyük. Bazen zaten dönüştürdüğümüz bir tepe noktasını çıkarırız, daha sonra onu paylaşan daha sonraki bir üçgen için tekrar gerekir ve böylece tepe gölgelendiricisini yeniden çalıştırırız Kağıt üzerinde göründüğü kadar fazla tasarruf elde edemiyoruz)
Klips ve n
üçgenler.
En az 1920x1080 / 2 veya yaklaşık 1 milyon piksel çerçeve tamponu üzerinde rasterleştirin ve enterpolasyon yapın (arazimizin ekranın yaklaşık yarısını kapladığını söylediğimizden beri).
("en azından" GPU'ların dörtlü pikseller üzerinde çalışma şekli nedeniyle, çokgenlerin kenarlarının hemen dışındaki bazı parçalar hala rasterleştirilir, ancak maskelenir, yani parçaları iki kez işleriz. önce en ön çokgeni derinlik arabelleğine çekecek kadar şanslı olmazsak kendini tıkar)
> = 1 milyon olan tüm parçalar için parça gölgelendiricisini çalıştırın.
Çerçeve ve derinlik tamponlarına ~ 1 milyon sonuç karıştırın.
Tamam, şimdi tüm köşelerimizin kaynağını kaldıralım, böylece şimdi daha önce olduğundan altı kat daha fazla 3n
oluşturulacak köşelerimiz var ! Adımlarımız ...
Köşe gölgelendirici 3n
sürelerini çalıştırın .
(Her tepe noktası yalnızca bir kez kullanıldığından önbelleğe alma nedeniyle yıldız işareti yoktur, ancak bu, önbelleğin bizi her zaman kurtaramayacağı anlamına gelir)
Klips ve n
üçgenler.
Çerçeve arabelleğinin en az 1920x1080 / 2 veya yaklaşık 1 milyon piksel üzerinde rasterleştirin ve enterpolasyon yapın.
> = 1 milyon olan tüm parçalar için parça gölgelendiricisini çalıştırın.
Çerçeve ve derinlik tamponlarına ~ 1 milyon sonuç karıştırın.
... bekle, her adım ilk hariç aynı! Bu nedenle, GPU'nun tipik bir çizim çağrısında yaptığı işlerin çoğu, kullanılan köşe sayısıyla doğrudan ilişkili değildir. Ekran kapsamı, fazla çekme ve toplam üçgen sayısı, maliyetin çok daha fazlasını oluşturur.
Bu, köşelerin tamamen ücretsiz olduğu anlamına gelmez. Köşeleri paylaşabileceğiniz zaman paylaşıyorsanız, özellikle köşe gölgelendiricileriniz karmaşıksa veya donanımınızın köşe boru hattı zayıfsa (bazı eski konsollarda olduğu gibi) önbelleklemeden mütevazı tasarruflar elde edebilirsiniz. Ancak, köşe sayısının üçgen sayısı artı veya eksi sabit bir faktörle orantılı olduğu göz önüne alındığında, genellikle genel ağ maliyetinin bir ölçüsü kadar ilginç değildir.