Bir onceki yazıda 3 boyutun ne olduğunu, beynimizin bunu nasıl algılayıp yorumladığını işlemiştik.
Bu bölümde hayatımızı en çok etkileyen 3 Boyutlu oyun teknolojisine girmeden 3 boyutun teknik özelliklerine kısaca girelim.
Ama önce 30 fps / 60 Fps gibi değerler neden önemlidir bunu bilmemiz gerekiyor.
FPS= Frames Per Second : Saniyedeki görüntü sayısı
Bazılarımız belki sitem edecektir, Frames çerçeve demektir diye ama buradaki anlamı bir önceki yazımda belirttiğim 2 boyutlu mekan algısı yerine geçtiğinden çerçeve demek saçma olacaktır.
Yani 2 boyutlu görüntüler akıcı olduğunda da beyin için mekan anlamı taşımaya başlar.
Fakat mekanın kendisi de hareketlenmeye başlarsa beyin bu sefer takip edebildiği en yavaş nesneye odaklanır.
FPS bizim için ne anlama geliyor bilmek için görmek nedir onu bilmek gerekiyor.
İnsan gözündeki reseptorler ışığın duruma tepki vererek çalışırlar, bu açıdan dijital kamera sensörleri ile benzer mantıkta çalışır.
Bu reseptorlere çarpan ışık veri olarak beyine iletilir beyin de görüntüyü oluşturup işler ve yorumlandırır.
Bu şekilde görme işlemi tamamlanmış olur.
Tabi gözlerimizin de yine TV ve Monitorlerden alıştığımız gibi bir tarama frekansı vardır, aslında o standartları bir şekilde gözlerimiz belirler.
Her ne kadar insanlar için ortak bir standart değer olmasa da normal bir insanın saniyede stereoskopık olarak yanı iki gözden birden 110-120 görüntüyü işleyip anlamlandırabileceği şeklinde bir değer belirlenmiştir.
Ama beynimizin asıl kapasitesinin saniyenin binde biri olduğu, yani saniyede 1000 fps kapasitesinde olduğumuzla ilgili araştırmalar olsa da henüz bunu ispatlayacak bir delil olmadığından biz her göz için 60 fps değerini var sayacağız.
Beyin iki gözden gelen sinyalleri ayrı ayrı değerlendirip birleştirdiği için 120 fps bizim algı sınırımızdır.
Pratikte ise bu 60 FPS dir.
Bunları yazdım alakasız gibi görülebilir aslında konun özü bu, yani 3. boyut yanı derinlik algısı da bu yenileme hızı ile doğrudan alakalıdır, yani gerçek dünyada yerinde sabit duran bir Vazo düşünürsek nesnel olarak bir yenilenme hızı olmadığından beyin kolayca tanımlayabilir.
Fakat dijital görüntülerde gözün anlamlandırabilmesine imkan sağlaması için sabit bir görselin ekrana en az 30 hz görüntü tazelemesi gerekmektedir diğer durumlarda görüntü titreşimleri beyni yormaya başlayacaktır ve derinlik algısı kaybolacaktır.
HZ (hertz) ve FPS değerleri eş değer kullanılsa da bahsettiğimiz monitor olduğundan ekranın 1 saniyede yenilenme hızını belirten HZ değerini ayırmak gerkiyor.
30 hz bir monitor de 60 fps den bahsetmek anlamsızdır.
100 hz de 30 fps gözü yormaz ama 30 hz de 100 fps uzun sürede yorar.
Bunları da özetledikten sonra gelelim 3B temel bilgi ve terimlere.
3 Boyutun dijital ortamda oluşturulması aşamasında bazı temel şartların yerine gelmesi gerekmektedir.
1= Scene : Sahne
Beynin görüntüyü yorumlayabilmesi için mekanı oluşturmanız gerekir bu siyah bir boşlukta olabilir görüntülü içerik te olabilir çünki mekan bizim için her zaman 2 boyutludur.
Ama sahneleri de en kaba hali ile 3'e ayırmalıyız.
A- Sabit ve durağan bir mekan:
Açık mekanlar, evler, binalar, yapılar, alanlar vesaire gibi olayların içinde geçtiği ve mekanın hiç bir şekilde hareket etmediği ortamlar.
B- Hareketli mekanlar:
Bu tür mekanlar da nesneler gibi mekan da hareket halindedir yada form değiştirebilir yanlız bu tür ortamları tren gibi hareketli nesnelerin üzerinde yada sağdan soldan yıkılan binalar, devrilen ağaçlar gibi düşünmeyin bu tür mekanların özelliği mekanın kendisinin hareket yada şekil değiştirmesidir.
Mesela solucan deliği gibi formlar bunun en iyi örneğidir, çünki bu tür sahnelerde beyin mekanı bulamadığı için surekli sabit bir nesne arar bulamadığında ciddi baş dönmeleri yada daha ileri seviye sinirsel bozukluklar oluşabilir bu yüzden bu tür mekanlar da genelde hikaye geçmez yada oyuncunun bir nesneye odaklanabilmesi sağlanır.
Bu tür mekanlar da 3 boyutlu nesnelerin gerçekçiliği en üst seviyededir. Konsantrasyon ve odaklanma uygun bir sahnede çok yüksek sınırlara çıkabilir. Fakat beyin aşırı sinirsel tepkilere maruz kalacağından sahne sonunda bir şekilde yan etkisini gösterecektir.
C- Etkileşimli mekanlar
Mekanın sabit olmakla birlikte, düzeninin kullanıcı etkisiyle değiştiği mekanlardır.
Bu tür mekanlarda insanın en önemli kontrol mekanizması olan "Denge" üzerinde oyun oynanır.
Denge 3 boyut içinde hayati önem taşıdığından konuyu burada yine bölüyor ve dengenin önemine geçiyoruz.
Denge nedir.
Insan beyninin nesne yorumlarken benzetme teknigini kullandığını belirtmiştim, fakat bu yorumlamalar başlamadan önce insan beyninin ilk tetiği Denge'dir.
Dengeyi etkileyen diğer önemli bir unsur olan "Simetri" yi şimdilik burada es geçeceğim.
Sadece oyun için değil hayatın her alanında Denge çok önemli bir unsurdur ve beyin daha doğrusu sinirsel işlevlerinizi doğrudan etkiler.
İnsan beyni otomatik olarak denge noktasını 0 yani değersizlik kabul etmektedir, bu yapısından gelen değişmez bir ilkedir.
Her alanda 0 insan beyni için denge noktasıdır...
Tabi 0 dediğimizde sayısal olarak değil değersiz olarak düşünün, kaç taraf olursa olsun eşit değerde olduğu değil değerlerin birbirine üstünlük sağlayamadığı yada bu bozukluğun en düşük düzeyde olduğu bir düzen beynin varsayılan yargılama değeridir.
Bu yüzden denge ölçme aletlerinde 0 kullanılır, sayi yazilmasina gerek yoktur beyin otomatik olarak 0 kabul eder.
Bir nesnenin yatay yada dikey olarak düz olması bu yüzden önemlidir ve hemen dikkat çeker.
Gözlerin durumuna, beynin kapasitesine göre insanlar çizgilerin ne kadar düz olduğunu bu yuzden kabul eder.
Mesela bir tablo eğri durduğunda bu beyni rahatsız etmektedir, doğrudan size sinyal yollar bu yüzden bastırılmış ta olsa o eğriliğin düzelmesi için baskı yapılır.
Denge sadece düzlemler için geçerli değildir şekillerde de böyledir, mesela kare şekli beyine en çok hoş gelen 2 boyutlu şekil iken üçgen rahatsız edici bir yapıya sahiptir ve beyni uyarır.
Yine dikdörtgenin eşitsizliği de insanı rahatsız eden bir unsurdur ama beyin yaday ve dikey dengelemeyi ayırabildiğinden bunu kabul eder.
Bu yüzden uyarı levhaları ve içerikleri üçgen olarak seçilmektedir yine bildirim panolarında dikdörtgen seçilir çünki beyin şekli incelemeye ve denge kurmaya başlayacaktır.
Ama üçgen için sadece yatay veya dikey denge kurmak mümkündür bunun da yapılamadığı üçgenleri beyin 2 boyuta çevirir ve uçların yatay yada dikey düzleme en yakın noktada olanını yön olarak kabul eder yani üçgenin o yöne dönmüş olduğunu varsayar.
Bu çok ilginçtir beynin, bu özelliği yön belirtmede kullanılır yani sağ ve solu bilen 3 yaşında bir çocuk bile üçgenimsi işaretlerin gösterdiği yönü bulabilir 😀
Bizim bu konuda yorulmamıza gerek yoktur, mesela ok işareti sağa gösterdiği halde altındaki yazı sola dönün dese bile siz yine sağa gidersiniz tabi özellikle yazıya konsantre olmadıysanız ki bu da ayrı bir konudur.
İşte mekandaki denge de son derece önemlidir ve insan beyninin doğru çalışmasına işlerin yolunda gitmesine sebep olur.
Vücüt varsayılan denge düzleminden çıktıysa beyin konsantrasyonu bozulmaya başlar ve sinirsel tepkimeler sonrasında istemsiz hareketler hatta delirmeye kadar gidebilen bozukluklar oluşabilir.
Mesela içinde olduğunuz bir taşıt kısa bir süre bile olsa ve ufacık bir dengesel bozukluk olsa hemen hisseder rahatsız olursunuz en kısa sürede dengeli bir ortama geçmek istersiniz.
Tabi bu denge bozukluğu tıpkı beynin diğer sinirsel tepki kanallarının kapatılması gibi eğitim yada deneyimle kapatılabilir, uzun süreler dengesiz halde yaşanabilir ama bu bir süre sonra düzelmesi mümkün olmayan sorunlara yol açabileceğinden beyin kapasitesi aşılmadan sona erdirilmelidir.
Denge bozukluğuna başka bir örnek olarakta yine gemi yada benzeri dengesi sabit olmayan araçlara binenlerin yaşadığı kusma ve baş dönmesi eğilimleridir, yine bunun aşırı olmadığı sürece sinirsel bastırma yoluyla üstesinden gelmek mümkündür, beceremeyenler için en basit çözümü en yakın sabit noktaya odaklanmak onu varsaymaktır böylece kontrolu tekrar sağlayabilirsiniz ki buna da Focus yani nesnel odaklanma denir.
Yükseklik korkusu da yine denge unsurunun bozulmasından kaynaklanır.
İnsan için denge düzlemi gözlerinin ortasından geçen hayali bir çizgi iken dikey düzlemi de iki gözün gönderdiği görüntünün ortasından geçen yatay hayali bir çizgidir.
O çizgilerin yatay olanının kenarları üst ve alt dikey olanın ise sağ ve soldur.
Yani gözümüzün önünde hayali bir "+" şekli bulunmaktadır.
Beyin 2 boyutlu mekanda nesneleri bu şekle göre hizalar ve hesaplamaları ona göre yapar.
İşte yükseklikte nesnelerin bu hayali "+" şekline uymaması dengeleri bozar ve mekanın uyumsuz hale gelmesiyle beynin yorumlayamamasına yol açar beyinden kontrol sinyalleri alamayan vücüt paniklemeye ve beyni baskı altına almaya başlar bu yüzden mekandan uzaklaşmaya çalışmak yada nesnel odaklanma son derece önemlidir.
Renklerin ve tonlarının hesaplanması da yine denge içinde olur beyin derinliği bu hesaplamaları kullanarak yapar yine mesafe algısı için de çok önemlidir.
Bu yüzden kötü ışıklandırılmış ortamlar insanı son derece rahatsız edebilmektedir.
Yine her rengin bir frekansı bulunmaktadır bu da renklerin uyumu açısından önem arz eder.
Uyum yine bir denge kuralıdır.
Tekrar etkileşimli mekanlara dönelim çünki artık bunun nasıl bir şey olacağını az çok hayal edebilirsiniz.
Bu tür mekanlar da beynin düzlem algısını yani değersizlik ilkesini bozacak değişiklikler yaşanır.
Mesela bir köprünün üzerinden geçiyorsanız köprü şiddetle sallanır yada yürüdüğünüz zeminde deprem etkisi oluşturulur yahut bir uçan taşıttaysanız türbulans etkisi yaşatılır.
Bu tür mekanlar da amaç oyuncuyu nesnelere odaklanmaya zorlamak ve o mekandan hızlıca çıkış yolu aramasını tetiklemektir ki bu "Dopamin" salınımını en çok tetikleyen hormon olan Adrenalin salgısının aşırı salınımına neden olur ve oyun dan alınan zevk artırılır.
Ama bu tür mekanlarda 4. boyut yani zaman son derece önemlidir, eğer bu denge kurulamazsa Adrenalin seviyesi ya yeterince yükselemez tempo artmaz yada aşırı yükselerek oyuncunun daralıp sıkılmasına sebep olur.
Mekanları işledik sıra objelerde.
2 - Object / Nesne:
Sahneden sonraki en önemli öğe obje yani nesnelerdir, daha önce beynimizin nesneleri 3 boyutlu sevdiğini söylemiştim hatırlarsanız.
İşte bu yüzden oyunun üç boyut özelliği aslında nesnelerin 3 boyutlu olarak bize kabul ettirilmeye çalışılmasıdır burada yine denge unsuru son derece önemlidir.
Nesneleri bu sefer kendi aralarında 5'e ayıracağız...
A- Durağan nesneler:
Bu tür nesneler oyunlarda sabit yerdedirler ve bizim için sadece konumunu bilmemiz açısından önem taşıdıklarından beyin için odaklanma sebebi taşımaz sadece ışıksal tepkimeleri değişmediği sürece.
Yani sabit bir nesneden ışık geldiğinde yada yansıma ışığı değiştiğinde o değişimin sürekli mi yoksa rastgele mi olduğu beyin tarafından incelenir eğer değişim sürekli ise düzenli olarak yanıp sönüyorsa artık ilgimizi çekmez ve derin hafızaya gönderilir.
Eğer değişim düzensiz ve rastgele ise o zaman o nesne odak noktası olabilir ve beyin etkileşim kurmaya yada kontrol altında tutmaya çalışır.
B- Hareketli nesneler:
Bu türdeki nesneler sürekli hareket halindedir ve beynimizin sürekli iletişim halinde kalır ta ki bu değişimler kendini tekrar edene kadar.
Kendini tekrar eden nesneler de beynimizin dikkatini çekmez bu yüzden oyunlarda o nesne mekanın parçası değilse mümkün olduğunca tekrarlardan kaçınılmaya çalışılır.
Mesela bir yel değirmeni gördüğünde beyin ilk önce ilgilenir, tekrarı fark ettiğinde o noktaya olan ilgisini keser.
Eğer bir oyun kendini tekrar ediyorsa adrenalin seviyesine etki etmez ve dolayısıyla dopamin dozu düşük kaldığından beyinin ilgisi azalır.
C- İnteraktif nesneler:
Bu nesneler bizimle bir şekilde iletişim halinde olan nesnelerdir.
Taşıtlar, NPC (oynanamayan karakter), hayvanlar yada genel olarak canlılar, düşman nesneler, savaş araçları (uçak, tank vs) gibi.
Beyin bu nesnelere ancak bizim odak noktamızı yada dengemizi bozduğunda tepki verir yani bizimle iletişime geçmedikleri sürece hareket halinde olsalar da hedefimizde yer almazlar.
Sadece odaklanacak başka birşey bulunmadığında yani oyun monotonlaştığında beyin değişiklik aradığı için bu nesnelere yönelir.
D- Kurgusal nesneler:
Bu tür nesneler oyunun beyni bir düzene alıştırması sonucu kurgusal olarak oluşturulurlar.
Mesela oyunda bir kapıyı açmak için anahtar bulmanız gerektiğinde sanal bir anahtar beyninizde yer eder ve ona odaklanmaya başlarsınız yani beyin o şeyi aramaya başlar.
Bu tür nesneler oyunlarda yan yada ana görev olurlar.
E- Mantıksal nesneler:
Bu tür nesneler oyunda doğrudan bulunmaz sizden bir şekilde oluşturmanız istenir, siz de o nesneyi yapmaya çalışırsınız. Bu tür nesneler de yine hayali olarak oluşturulurken beyin o nesneyi aramaya odaklanmaz ama onu birleştirebilecek parçaları bulmaya çalışır.
Bu bazen şeklen gösterilirken bazen anlatılarak yapılır bu tür nesneler de yine oyun görevi olarak kullanılmaktadır.
Evet nesneleri de bitirdik...
Ama tam olarak değil...
Şimdi burada yine bir parantez açarak 3 boyutlu nesnelerin beynin ilgisini çekebilmesi için barındırması gereken özelliklere ve uygulanan yöntemlere giriyoruz.
İnsan beyninin 3 boyutlu nesneleri sevdiğini söylemiştik ama bunu kısa geçmiştik çünki bu konuyla daha çok ilgili.
Insan beyni 3 boyutlu nesneleri sever ama o nesnelerin yumuşak geçişli olmasına eğilimlidir, 2 boyutlu nesnelerde göz keskinlik ararken 3. boyutta bu değişmektedir.
Neden?
Yukarıda insan beyninin kare yapıları sevdiğini söylemiştim, yine dikdörtgen de karemsi bir yapıya sahip olduğundan bizim için güzel sınıfına girer ama beynin hoşuna giden bir şekil daha vardır ki o da dairesel yapılar.
Bunun sebebi de gözün ışık tonlarına son derece duyarlı olmasından ve kontrastı pek sevmemesinden kaynaklanmaktadır.
Yani bizim derinlik algısında en çok renklerin ton aralığı etkilidir, yumuşak kenarlı objelerin derinlik algılaması keskin kenarlı objelere göre daha kolaydır çünki keskin kenarlı objeler bizde 2 boyut hissi uyandırmakta ama beynin o objenin aslında 3 boyutlu olduğu konusunda kendisini ikna etmeye çalışmasına sebep olur.
Yine beynin kare ve dikdörtgen dışındaki objeleri pek sevmediğini de söylemiştim bu da önemli bir etkendir.
Bu yüzden genel olarak 2 boyutlu olmadığı sürece insanlar köşeli objeleri pek sevmezler...
Yani yumuşak kenarlı objelerin algılanması daha kolay olduğundan beyni ve gözleri fazla yormaz bu yüzden haz duygusu uyandırır.
2 Boyutlu objelerde ışık tonu algılaması önem taşımadığından üçgen köşeleri bulunmadığı sürece pek rahatsız edici değildir.
Yıldız şeklindeki 2 boyutlu nesneler ışıkla bir şekilde ilişkilendirildiğinden üçgenimsi sayılmazlar ama bu şekilde objelerin de 3 boyutlu olanları pek hoşa gitmez hatta rahatsızlık hissi uyandırabilmektedir.
Denge konusunda es geçtiğim "Simetri" burada işlemek durumundayım.
Çünki 3 boyutlu nesnelerin simetrik olması da o nesnenin kolayca tanınmasına ve kabul edilmesine olanak sağlar çünki beynimiz hala "+" işaretine sahiptir ve o işaretin 4 yönündeki nesnelerin eşit olmasına yada birbirlerinden üstün olmamasına dikkat eder.
Eşitsizlik durumlarında odak eşit ve en simetrik olan bölümlere kayacaktır.
Bu sebepten asimetrik olan nesnelerin bütününe odaklanmak neredeyse imkansızdır.
Mesela karşıdan gelen araçlarda en iyi eşitlik farlardır bu yuzden farlar yanmasa bile ilk odak noktasıdır.
Eğer aracın farlarının biri yok yada değişik ise mesafe algısında kısa bir bozulma yaşanabilir.
Nesne asimetrik bir üç boyut olarak algılandıktan sonra hareketsiz ise tek parça olarak düşünülüp odaktan çekilmeye çalışılır.
Peki beyin asimetrik objeleri önemsemez mi?
Hayır, onlari da sürekli kontrol altında tutmaya çalıştığı için tanımaya çalışır ve tür nesnelerin de yumuşak geçişli olması önemlidir.
Bu bilgilerden sonra 3 boyutun hazırlanmasına geçebiliriz.
3 boyutlu objeler hazırlanırken neler ön plandadır.
A- Çizme/Şekil verme
3B çizim yani şekil verme ile başlar, bu kullanılan programda nokta birleştirme yöntemi ile yapılabildiği gibi hazır şekiller kullanılarak ta yapılabilir, bu şekiller değiştirilebilen türdendir ve form kaybedebilirler.
Fakat GPU bunları şekil olarak bilmez sadece boyut ve XYZ pozisyonu olarak bilir yani siz tasarımı GPU ya gönderdiğinizde belirlenen poligonlar verilen koordinatlarda ve boyutlarda çizilir ama bu ham görüntüdür ve işlenmesi gereklidir buna da Rendering denir.
B- Rendering (Netleştirme yada düzeltme)
Render işlemi ise bu şekilleri mümkün olduğunca gerçekçi 3B haline getirme yöntemidir.
Bu işlemi GPU da shader uniteleri yapmaktadır fakat GPU sistemleri çok karmaşık hale geldiğinden iş bölümü için Shader üniteleri farklı amaçlarla da kullanılabilir (fizik hesaplamaları vs).
Yine TMU (grafik yerleştirme) adı verilen birimler de shaderler ile paralel çalışmaktadırlar.
Sonrasında ROP adı verilen iş hattında da işleme girmektedir.
Sonuç olarak Render o kadar karmaşık hale gelmiştir ki bu işlemin gerçekleşmesi için bir kaç ek işlem daha bulunmaktadır ve onlar anlatılmadan işlemi tam anlatmak mümkün değildir.
Bunlar ise...
1- Lighting : Işıklandırma
Bu en önemli konudur çünki biz nesnelerin gözün ayırt ettiği ışık tonlarını sıralayarak biliriz yani ışığın en kuvvetli olduğu yer ile en düşük olduğu yer bize o objenin 3 boyutunu da bildirir.
Bu yüzden nesnelerin doğru ışıklandırması bizim onu 2 mi 3 boyutlu mu olarak algılamamız için son derece önemlidir.
Işığın sadece kuvveti değil açısı da önemlidir ki bu bize o objenin bize olan mesafesini ve konumunu anlamamızda yardımcı olur.
Bu konuyu ileride yine işleriz o yüzden kısa geçiyoruz.
Çünki Ray Tracing gibi ek methotlar bulunmakta ve o başlıkta daha detaylı inceleriz.
2- Shading : Işık-renk tonlaması.
Bu işlemi Vertex ve Pixel Shader birimleri yapar ama ismi artık birden çok işlem yaptığı için Geometri Shader denmektedir.
Fakat shading yapan birime halen vertex denmektedir.
Polygonlar yoluyla çizilen nesnenin renklerinin ışık gölge yapılandırması bu işlemde gerçekleşmektedir.
Beynimizin yumuşak kenarlı objeleri daha çok sevdiğini söylemiştik tabi bu 3D için tek sebep değil.
Objelerin polygonlar yardımıyla çizilmesi nesnelerin eğrik kenarlarını koseli gösterir bu da nesnenin gerçeklik duygusunu azaltır ve beynin yorumlaması esnasında çirkin olarak tanımlandığı için ilgi çekmez.
Bu yüzden objeler mümkün olduğunca fazla polygon ile oluşturulmaya çalışır ki bunu artık hem 3B tasarım hemde oyun motorlarının kendisi yapmaktadır fakat GPU'nun da sınırları olduğundan render işlemini kısa tutabilmek için aşırı polygon kullanılmaktan kaçınılır yine polygon arttıkça texturing için de binecek yük artacaktır.
Ayrıca Shading ve Texturing işlemlerinden sonra yapılacak işlerinde gecikmemesi ve oyunda takılmalara sebep olmaması gereklidir.
3- Texture mapping: Görsel yerleştirme yada Object Painting / Nesne boyama
Bu çizilen şeklin görsel içeriğinin yüklenmesidir bu bir dosyadan olabileceği gibi birden çok dosyadan okuma ile de yapılabilir karmaşık bir işlemdir bunu bilmenin de pek bir anlamı yok.
Kısaca nesneye görsel giydirmek olarak düşünebilirsiniz.
Aslında bu işlem shading ile paralel çalışmaktadır bu yüzden sıralamasının pek bir önemi yok Fakat sahnenin de grafik yüklemesini bu birim yaptığından sonraki işlem olarak düşünmekte sanırım bir sakınca yok.
Nesne boyama yönteminde ise düz ve/veya şeffaf olan cizimler için kullanılabilir.
Mesela bir bardak için herhangi bir texture kullanılmaz yada bir cam için
Bu işlem doğrudan shader uniteleri tarafından yapılır.
4- Ray Tracing/Color bleeding : Işık takibi ve etkileşimi.
Bu yine 3 boyutta gerçeklik için son derece önemlidir, nesnelerin renkleri yada tonları gelen ışıkla olan etkileşimine göre değişebilmektedir. Yine o nesneye dışardan yansıyan ışıkların verdiği değişimlerde doğru ayarlanmalıdır çünki beyin bunları gerçek hayatta siz daha nesneye bakarken hesaplar bu işlemin bilgisayar modeline Ray Tracing denir.
Colorbleeding ise o nesneye dışardan yansıyan ışıkları yada o nesneden dışarıya yansıyan ışıkları hesaplamaktır.
Yani kırmızı ışıklı bir pencerenin yanından geçen mavi nesne o ışığın etkisini gösterebilmelidir ki beynimizin kendi hesapladığı ton ve renk dengelemesi ile uyuşşsun aksi halde beyin görüntüyü reddedebilir.
Renk konusunu yukarıda işlediğimden anlamış olmalısınız.
5- AntiAliasing: Yumuşak geçiş sağlama
Bu konu genelde object shading yani nesne gölgelendirme ile karıştırılır.
Yine yukarıda belirttiğim gibi insan beyni kenarlı objeleri sevmez bu yüzden yumuşak geçişler tanımlamak için daha uygun olduğundan tercih sebebidir yine ton tanımlaması kontrast minimum olduğu için daha kolay olduğundan beyni ve gözleri yormaz.
Bu yüzden kenar yumuşatma objenin beyin tarafından beğenilmesi için önemlidir.
Bu işlem çok geniş olduğundan yine bir parantez açarak olaya giriş yapıyoruz.
Önceden insan beyninin kontrast'ı pek sevmediğini belirtmiştim, çünki odak noktası doğrudan oraya kayacağından diğer tonları aramak gözü biraz uğraştırır ve ton kaybı oluşur.
Bir süre sonra göz ve beyin yorulur bu yüzden siyah-beyaz damalı resimler bir süre bakıldığında gözün ışık ve renk kaybı yaşamasına sebep olur, derinlik hissi kaybolur hatta bazen dengesel bozukluklar bile yaşanabilir.
Genel olarak beyaz'ın butun koyu renklere kontrast olusturabildiğinden geçişleri gray to gray şekliyle yapılır.
Göz için en sakin geçişler ara tonlardır bu yüzden teknoloji firmaları bunu hileli olarak tanıtımlarında kullanır.
Bunu eklemek çok önemli olduğu için alt parantezle kısaca anlatayım:
Bir görüntünün dijital ortamda tazelemesi saniyede kaç defa gösterildiği ile bağlıyken çok önemli bir alt değer daha vardır ki bu kontrast dengesini sağlayan pixel tepki süresi genel bilinen adıyla Response Time'dır.
Genel olarak insanlar bunun ekranın tazeleme oranıyla ilgisi olduğunu düşünürler ama bu yanlıştır.
Burada söz konusu olan zaman ölçüsü ekrandaki her bir pixelin en açık tondan en koyu tona geçişindeki geçen dir ve bu süre ne kadar kısalırsa görüntü titremeleri azalır.
Daha açık yazacak olursak...
CRT ve Plazma monitörlerde ışık gerçekten kaynağından renkli iken LCD ekranlarda ışık beyaz rengin pixellerle renklendirilmesi ile oluşur bu yüzden pixellerin rengi vermesi için zaman geçer işte bu zamanlamaya Response time denir.
Burada var sayılan Beyaz-Siyah geçiş süresidir ama LCD ekranlarda en koyu siyah bile grinin bir tonu olduğundan üreticiler şark kurnazlığı ile bu süreyi griden-griye dönüş olarak belirtirler.
Bu süre ne kadar kısaysa renk geçişleri ve kontrast dengesi o kadar düzgün olur yine "Artifact" yada "Distortion" denilen gürültü/bulanıklıklar o kadar azalır.
Yine renk titremesi de düşeceğinden sağlıklı bir görüş sağlanmaktadır.
Bu teknoloji monitörün kendisinde bulunmakta ve GPU dan ayrı çalışmakla birlikte, yine de V-Sync prensibinin düzgün çalışabilmesi için önem arz etmektedir.
20 ms üzeri RT olan monitorlerde V-Sync yırtılmalar engellese de pek başarımlı çalışamaz.
Neyse, konumuza dönersek 3B objelerin çevredeki etmenlerden ton ve kontrast dengesi ile ayrıldığını bunun da ışığın durumuyla alakalı olduğunu ögrendik ama objenin kendisinde oluşan renk değişimlerinin de bu uyumu taşıması gerekmektedir.
Örnek olarak :
Siyah bir bilardo topu beyaz bir arkaplanda olduğunda siyah ve beyazın kesiştiği nokta da renk ton ile geçiş yapmamışsa kontrast çok büyür, beyin böyle bir anlamsızlığı kabul etmez objenin ton dolayısıyla da derinlik algılaması ya bozulur yada rahatsız edici bir hal alır.
Gerçek objelerde yansıyan ışık açı itibariyle ton kaybedeceğinden böyle bir etki doğal olarak oluşamaz.
Yani bunu obje sanki kesilip yapıştırılmış etkisinin önüne geçmeyi amaçlamak gibi de düşünebilirsiniz.
Bu aynı şekilde düz yüzeye sahip olmayan yükseklik, alçaklık yada kıvrım gibi şekilleri olan objeler için de geçerlidir.
Resmin içindeki renk geçişleri ve bozulmalar da bunlara rastlanabilir, mesela fotomontaj yada foto düzenleme sonucunda kısmen bulanık ve renk korozyonuna uğramış resimler yada resimdeki bölümler.
Bu tür sorunlara Aliasing denmektedir...
3 Boyut konusunda ise mantıken aynı olsa da iş biraz daha değişik hale gelir...
Çünki ışığın birden çok farklı açıda ve farklı tonlarda değişime uğradığı beyin tarafından önceden bilinen bir olgudur ve beyin bu beklentidedir.
Daha önce polygon sayısının fazlalılığının nesnenin yumuşak hatlı olmasında en önemli etken olduğunu belirtmiştim ama sonuçta gözün pixel yoğunluğuna yaklaşmadığınız sürece noktaları birleştirerek eğri kenarlar çizemezsiniz. Yani en iyi grafik kartlarında en yüksek çözünürlüklerde bile bu çizimler kenarları kesintili yada köşelidir.
Ayrıca bu çizimlere uygulanan grafikler de sahne ve ışık ile etkileşim halinde olduğundan ışık değişim yada geçişlerinde bozulmalar oluşur.
Bu geçişler düzgün yaşanmadığında oyun görüntüleri ya netliğini kaybeder yada beynin manzarayı kendisinin tamamlamasına iter bu yüzden oyuna konsantre olan insanlar bu bozuklukları fark edemeyebilirler.
Beynin yorumlaması ve tamamlama gücünü önceki yazıdan inceleyebilirsiniz.
Kısaca Anti-aliasing:
Nesnenin sahneye uyumunu sağlamasına, kenarların mümkün olduğu kadar yumuşak geçişlere sahip olmasına ve dengesiz kontrastın önüne geçilmesine çalışmaktır.
Her ne kadar modern oyunlarda texture dediğimiz görseller önceden anti-aliasing işlemine tabi tutulsa da yine de bozulmaların önüne geçilemez bu yüzden render time AA önemlidir.
Karışık oldu ama umarım anlatabilmişimdir...
Bu işlem için birden fazla teknik mevcut iken biz en çok kullanılan 2 tekniği inceleyeceğiz.
Öncelikle bu teknolojilerin başarımı GPU, 3D kütüphanesi ve Antialiasing'in matematiksel hesaplamalarına dayanır.
Anti-Aliasing ayrıca programlanabildiği gibi kütüphanenin varsayılan yöntemi ile de yapılabilir.
Mesela Radeon'un CFAA (Custom Filter Anti-Aliasing) ve nVidia'nın TXAA (Temporal Anti-aliasing) motorları mevcuttur, her iki sistem de GPU tarafından desteklenen ve sürücüler yardımıyla oluşturulan teknolojilerdir.
Her iki teknolojide özellikle kapatılmaz ise 3D kütüphanesinden bağımsız olarak filtreleme uygulayabilir ama özellikle FSAA'nın aşırı sistem gereksinimleri bu özellikleri genelde kapattırır.
Neyse önce varsayılan yöntemleri DX ve GL'yi bir tutarak inceleyelim.
1- FSAA : Full Scene Anti Aliasing, eski adıyla SuperSampling AntiAliasing.
Kullanılan ilk AntiAliasing yöntemi budur, ve en üstün yöntem olarak bilinir.
Bu yöntemde her pixel tek tek incelenir ve diğer pixelin renk etkileşimi karşılaştırılıp o pixel'in renk değeri belirlenir bu işlemi shader uniteleri gerçekleştirir.
Bu işlem için kaçtane pixel incelenirse renk doğruluğu o kadar yükselir.
FSAA nesnenin hem sahne uyumunu hem de nesnenin kendi ton/kontrast uyumunu etkilediğinden yapısal detaylarda ve gerçekçilikte kazanım sağlamaktadır.
Bu kazanım ise FSAA methoduna göre değişmektedir.
2X AA demek 2 pixelin
4X AA demek 4 pixelin
8X AA demek 8 pixelin
Yani A pixeli mavi olsun yanındaki B pixeli siyah ise A pixeli Laciverte yakın olacaktır örnekleme oranı arttıkça seçilen incelenecek pixel sayısıda artar.
Bu pixellerin seçilmesi için de bir kaç çeşit yöntem uygulanmaktadır ama şimdi o konu karışık olduğundan pas geçiyoruz.
2-MSAA : Multisample anti-aliasing
Bu yöntem de amaç polygonların kenarlarını incelerken iç kısımları atlamaktan ibarettir.
Hem obje kenarları hemde sahne ile kesişen dış çevre incelenir.
Her polygon pixel gruplarından oluştuğu için bu işlem zamandan ve iş gücünden tasarruf sağlarken 3 boyutlu nesneyi sahneye uyumlandırmaya daha çok odaklandırdığından nesnenin kendi yapısal detaylarında bir kazanım sağlamaz.
3-OBAA : Object Based Anti Aliasing
Bu yöntem yine MSAA ile benzerlik gösterirken farklılıkları bu sistemde sadece nesnenin incelenmesidir.
Bu yöntem 3B oyun ve Animasyonlarda kullanılmaz.
Birde nVidia'nın geliştirdiği bir çeşit MSAA olan TXAA ve AMD Radeon tarafından geliştirilen yine MSAA ya benzeyen CFAA bulunmakla birlikte FSAA yada MSAA açık iken performans kaybı dolayısıyla genelde kapatılır ama istenilirse paralel kullanılabilir.
Bütün bu render işleminin temelinde yukarıda da sıkça bahsettiğim gibi baş rolde her zaman ışık ve tonlamalar vardır.
Yani amaç nesneleri gerçek hayattakine benzetmeye çalışmak değil nesnelerin gerçek hayattaki gibi ışığa tepki vermesini sağlamaktır.
Render konusunu burada kapatırken yine bir Render tekniği olan ve Vulkan için çok önemli olan tessellation konusuna da değinerek bölümü bitiriyorum.
Tessellation kelime anlamı olarak mozaik yada taş döşeme gibi düşünülebilir.
Bilgisayar yani 3B konumunda ise yöntem benzer olmakla birlikte amaç nesnenin gerçekçiliğini artırabilmektir.
Bunu gerçekleştiren Render uniteleri polygon sayısına göre bu işlemi gerçekleştirirler.
İşte Tessellation da bu polygon sayısını hesap yaparak artırır böylece daha gerçekçi hatlar ve görüntüler elde edilebilir.
Asıl kullanım amacı düz olmayan yüzeylerdeki girinti ve çıktıntıları netleştirmektir, mesela kaldırımlar ve taş duvarlar gibi.
Genelde mekandaki sabit nesneler için (Yapılar, yollar vs) kullanılır ama hareketli nesnelerde de kullanılabilir.
Yani bir sınırlaması yoktur, her nesne de kullanilabilir...
Son olarakta ROP birimine geçelim...
Bazen Raster Operation Pipeline, bazende Rendering Output Pipeline diye geçen bu birim Render işlemlerininden geçen pixellerin renklerini ve tonlarını inceleyip daha sonra görüntü sinyali olarak işlenmeden önce bellekteki yerini ayarlayan birimdir.
Kalite kontrol birimi gibi düşünülebilir, render işleminin son aşamasıdır.
3B'un teknik terimlerinin önemli kısımlarına değindik...
Bu aslında çok derin ve geniş bir konu ama bizim GL ve Vulkan'ı anlamamıza yetecek kadar bilgi için bunlar yeterli.
Yanlış yada eksik gördüüğünüz yerler varsa inceler gerekirse düzeltiriz.
Bir sonraki bolumde OpenGL, Direct3D ve Vulkan incelenecek.
Keyifli okumalar dilerim.
aMeLeDeRViS
Teşekkürler
izleme listeme aldım
siz bu işin erisiniz gerçekten sürekli takip etmekteyim başarılar dilerim mobil legends bang bang incelemeleri için https://mobiloyunincele.blogspot.com beklerim
İç karartıcı fakat güzel animeydi, 2007de izlemiştim Berserk, Shigurui havası var... İnceleme için teşekkürler