Screen Space Ambient Occlusion

screenspace_1

Klasik render yöntemlerinde (Direct Illumination), sadece ýþýðýn çarptýðý yüzeyler aydýnlatýlýr. Ama gerçek hayatta ýþýk ilk çarptýðý yüzeyde durmayýp, yüzeylerden sekerek, aydýnlatmaya devam eder. Bunu bilgisayarda elde etmemizi saðlayan aydýnlatma modeli Global Illumination’dýr. GI’nin hesaplanmasý için farklý yöntemler (radiosity, photon mapping yöntemleri akla ilk gelenler)olmasýna karþýn, hesaplamasý çok daha uzun sürer. Direct Illumination’da ýþýðýn bir noktadan sonra aydýnlatma etkisi hesaplanmazken, GI’de çok daha kompleks iliþkiler ve ýþýnýn yayýlmasý göz önüne alýnmak zorundadýr. Eðer hesaplayamýyorsan, taklit et…Burada devreye giriyor…

Ambient Occlusion tam GI hesaplamasý yapmadan, ortamýn aydýnlatma (ambient) etkisini canlandýrmayý saðlayan bir tekniktir. Ýlk olarak ILM tarafýndan Pearl Harbor filminde kullanýlan yöntem, mantýk olarak sahnede bulunan tüm nesnelerin ortam ýþýðýndan (ambient) ayný oranda etkilenmediði düþüncesinden hareket eder. Iþýndan daha çok, aydýnlatýlan yüzeyin ne kadar ýþýk alabileceðini saptamaya çalýþýlýr. Sonuç tam GI hesaplamalarýnýn ürettiði sonuçlar kadar baþarýlý olmasa da, çoðu zaman yeterlidir. Aþaðýdaki resimde gördüðünüz gibi aydýnlatýlacak yüzeyin çevresindeki nesnelerle iliþkisi göz önüne alýnarak, sahte ama çok daha hýzlý bir GI etkisi elde edilir.

Ambient Occlusion’ýn oyunlarda çokça görünmeye baþladýðý günümüzde, kullanýlan yöntem ise etkinin tam olarak 3D olarak elde edilmeyip, ekranda görünen kýsmýn, derinlik ve normal verilerini kullanýlarak sonuca ulaþýlmasý metodudur. Screen Space Ambient Occlusion olarak adlandýrýlan bu yöntemi Starcraft II oyunundan, Crysis’e kadar birçok oyunda görmek mümkündür. Çok hýzlý olan bu yöntem oyun geliþtiriciler açýsýndan bilinen, bir yöntem olmasýna raðmen, prodüksiyon dünyasýnda çok üzerinde durulmayan ya da gözden kaçan yöntemlerden biridir.

Kullandýðýmýz 3D yazýlýmlarda zaten Occlusion alabiliyoruz. Hýz olarakta oldukça makul seviyelerde. Ama bazen bir sahnedeki etkiyi arttýrmak ve hýzlý þekilde occlusion almak için yeni bir pass almak ve kompozisyon yazýlýmda kullanmak gerekebiliyor. Gerektiðinde, direkt olarak kompozisyon yazýlýmýnda Ambient Occlusion almak nasýl olur? SSAO ile mümkün… Nasýl mý? Burasý benim teknik sýnýrlarýmý aþýyor, ama baþlangýç için bir takým bulgularýmý sizinle paylaþabilirim… Eklenti geliþtirici arkadaþlarýmýza kolay gelsin…

Etkiyi hýzlý olarak test etmeniz ve görmeniz için online örnek:
http://www.smart-page.net/as3/sp_smartssao/

GameDev Sitesinde Konuyla ilgili bir makale.
http://archive.gamedev.net/reference/programming/features/simpleSSAO/

Nvidia sitesinde yer alan konuyla ilgili bilgi, video ve örnek kod
http://developer.download.nvidia.com/SDK/10.5/direct3d/Source/ScreenSpaceAO/doc/ScreenSpaceAO.pdf
http://developer.download.nvidia.com/SDK/10.5/direct3d/Source/ScreenSpaceAO/doc/ScreenSpaceAO.wmv
http://developer.download.nvidia.com/SDK/10.5/Samples/ScreenSpaceAO.zip

Ogre oyun motoru için kod örneði
http://www.ogre3d.org/forums/viewtopic.php?f=11&t=58839

Yine Nvidia’dan farklý bir yazý
http://www.slideshare.net/NVIDIA/multilayer-dualresolution-screenspace-ambient-occlusion

StarCraft 2 oyununda Screen Space Occlusion kullanýmýyla ilgili yazý
http://developer.amd.com/documentation/presentations/legacy/Chapter05-Filion-StarCraftII.pdf

Nuke için plug-in :
http://www.nukepedia.com/gizmos/plugins/filter/ssao/

Shake için plug-in:
http://www.pixelmania.se/shake
Plug-in’in arayüzü — > http://www.pixelmania.se/shake/occlusion.asp

Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Performance Optimization WordPress Plugins by W3 EDGE