|
Derinlemesine XNA-2
Merhaba arkadaşlar ilk makalemde sizlere XNA in çalışma mantığını anlatmıştım.Çünkü bilinmelidir ki XNA in mantığını çözemeden XNA oyunları yazılamaz.
Bu makalemde işi birazcık daha ilerletip Primitif Nesnelerini anlatacağım.
O halde başlıyoruz…
3D Dünyasında grafikler,her biri basit şekil olan noktalar,çizgiler ve üçgenlerden oluşur.Bu basit şekillere 3D dünyasında “Primitif Nesneler” diyoruz.
Bu nesneler Kartezyen Koordinat Sistemi çizilerek gösterilir ki bunlar X,Y,Z düzlemlerinden oluşur. Bütün çizimler aslında birer nokta,çizgi ve üçgendir.
Basit bir 3D çizim içinde vertex bilgilerini barındıran yani X,Y,Z pozisyonu,renk,resim koordinatları ve diğer bilgiler yer almaktadır.
XNA de bulunan Primitif Nesneler Şimdi gelin hep beraber bu nesneleri tanıyalım:
1)Triangle Strips:
Triangle Strip ; Kompleks Şekiller oluşturmak için bir araya gelen birbirleriyle bağlantılı üçgenlerdir.
2)Triangle Lists:
Triangle List ; Birbirinden bağımsız üçgen topluluklarıdır.
3)Line Strips:
Line Strip ; Izgara(Grid) tarzı şekiller oluşturmaya yarayan birbirleriyle bağlantılı çizgi toplulukları.3D Tasarım uygulamalarındaki Izgaralar buna bir örnektir.
4)Line Lists:
Line List ; Birbirinden bağımsız çizgi topluluklarıdır.
5) Point Lists:
Point List ; Birbirinden bağımsız noktalardır.
Strip ile List in farkı,Strip ile Kompleks 3d Şekiller oluşturulabiliyor olmasıdır.
Hatta tüm 3D modeller(büyük bir çoğunluğu) Striplerden oluşmaktadır.
Stripler aynı zamanda hafızadan,performanstan kazanma ve hızlı çizim imkanı sunmaktadır.
Nitekim vertex bilgilerinde Strip kullanıldığında performans %50 artış gösterir.
Örneğin:
Triangle List oluşturalım;
3 tane üçgen çizimi için 9 tane köşe oluşturulurken.
Triangle Strip de;
3 tane üçgen çizimi için 5 tane köşe oluşturulur.
Yarı yarıya daha performans sağladığı bu örnek ile gayet net bir biçimde anlaşılmıştır.
Aynı şey çizgiler içinde geçerlidir.
3 tane çizgi için Line listlerde 6 köşe çizilirken;
Line Striplerde 4 tane vertex çizilir.
Buradan anlaşılan bir şekil ne kadar az köşeye sahipse o cisim daha hızlı render edilir.XNA de de bu geçerlidir.
Bu makalemde elimden geldiğince XNA de kullanılan “Primitif Nesneleri” açıkladım.
Gelecek Makalemde bu Primitif Nesneleri XNA de nasıl çizeceğinizi örneklerle göstereceğim
Saygılarımla
İbrahim Ersoy
|