radiosity vs global illumination

radiosity`nin mantığı, scanline ve kamera projeksiyon rendererları. farkları, avantajları, dezavantajları ve renderer seçimi konusunda ön fikir.

yazıyı ele alırken genel kavramları, yeni başlayan kişiler anlayacak şekilde aklımdakini yorumlayarak yazmaya çalıştım. yanlış ifadede bulunduğum yerler olabilir.yazının içeriğinde aksini iddia ettiğiniz bir bölüm varsa, lütfen neyin yanlış olduğunu ve doğrusunun ne oluduğunu belirtin. kimseyi yanlış bilgilendirmek istemeyiz :)


radiosity, gönderilen ışının enerjisini aktarması yoluyla aydınlatması olayını hesaplar.bir ışın gelir. bir yere çarpar, orayı aydınlatır ve enerjisini aktarır, enerjisini aktardığında malzemenin rengine ve özelliklerine göre sıfır´a düşmemişse zıplatır. ve sonraki çarptığı yerde yeniden hesaplar ve bu şekilde enerjisi bitene kadar tekrarlar. ancak bunu, sahnedeki poligonlar üzerinde yapar. radiosity, mantık yapısı dolayısıyla farklı uygulama şekillerine sahip olabiliyor. bir örnek üzerinden yola çıkayım. bir radiosity hesaplayıcısı, bir poligon tespit eder ve bu poligona, kullanıcının tanımladığı değerlere dayalı orantıda ışınlar gönderir. ve gene kullanıcının belirlediği değerler kadar bu ışını sahne içinde takip ederek sahneyi aydınlatmasını sağlar.yani, radiosity´nin hesap süresi, sahnedeki poligonların sayısı ile doğru orantılıdır. sahnenin boyutlarına göre poligon sayın çok düşük ise fotogerçekçi hesaplama zayıflar, bu yüzden radiosity hesaplamalarında sahne poligonlarını yeniden bölümleme ( tessellate ) seçenekleri olur. ordaki ayarlardan sahneyi otomatik olarak çok sayıda poligona bölebilirsin. gelişmiş radiosity hesaplayıcıları ışık nesne ilişkileri kullanarak gereken yerlerde daha fazla poligon, gerekmeyen yerlerde daha az poligon bölümlemesi yaparak optimum poligon seviyesi ile en uygun sonuca ulaşmayı hedefler.

ancak radiosity günümüzde geçerliliğini yitirmiş, yerini global illumination denen yöntemlere bırakmıştır. scanline denen ve sahnedeki poligonlar ile vertexler arasındaki ilişkiye göre aydınlatma ve görüntü üretme metodunu kullanan yöntemlerde global illumination pek pratik olmadığından radiosity bu tip rendererlarda daha çok işe yarar ( 3ds max´ın varsayılan render sistemi scanline tipidir. zaten adı da böyledir )
 ama kamera projeksiyonuna dayalı renderer´larda sistem daha farklı işlediğinden global illumination teknikleri bu tip renderer´larda hızlı ve başarılı sonuçlar elde eder. bu yüzden radiosity´nin yetersiz kaldığı bir çok hesaplamayı yapabilir. kamera projeksiyonuna dayalı rendererların temeli, sahnedeki, görüntüye etkisi olmayan bölümleri tespit edip onları render hesaplarından arındırmaktır.

öncelikle,
render yapılacak kamera açısından, kameranın resim düzlemi üzerindeki pixellerden sahneye ışınlar gönderilir. gönderilen ışının uzayda bir nesneyle kesişip kesişmediği kontrol edilir. eğer ışın bir nesneye çarpıyor ise, çarptığı poligon´a göre sahnenin neresine yansıdığı tespit edilir. yansıdığı yönde eğer bir nesne yok ise, yada ışık kaynağı yok ise, o poligon ve sonrası hesaba katılmayacaktır. çünkü mantıken o poligonun aydınlık olması mümkün değildir. ( bu kısmını genel fikir versin diye bu şekilde anlattım ama pratikde bu şekilde olmayabilir. yine de çok benzer mantıklarla işliyor )

scanline hesaplamalarında ışık kaynağından sahnedeki her vertex´e bir ışın gönderilir. ışının, vertex´e varana kadar bir nesne ile kesişmiyorsa vertex´in üzerine düştüğünde vertex ile ışık kaynağının arasındaki ( normal denilen vertex´in bakış yönüne göre hesaplanan ) açısı tespit edilerek bir aydınlık değeri verilip materialine ve bu aydınlık değerine göre rengi belirlenir.. böylece  nesneler pratik bir şekilde aydınlatılır. ve sonra da kamera´nın gördüğü alanlardaki vertexlerin renkleri ile poligonlar doldurularak sonuç görüntü hesaplanır. radiosity´nin temeli poligonlara ışın göndermek olduğu için, scanline mantığına uyar. ama sahnedeki her vertex ve poligon üzerinde işlem yapılacağı için sonucu hesaplamak, poligon sayısı arttıkça zorlaşır.

kamera projeksiyonu temelinde çalışan renderer´lar, ışının gittiği yönde poligon olması yada olmaması esasına göre çalıştığından, zaten kameranın direkt yada dolaylı olarak görmediği kısımlar render´a dahil edilmeyeceği için, yada kameraya düşmediği için... Görüntüye bir katkısı olmayan ışınlar başta elendiği için, render süresinde ciddi bir düşüş söz konusudur. ancak kamera projeksiyonu temelli rendererlar kolay hespalanan,temel ışın izleme (raytracing ) yöntemiyle render çıktısının oluşacağı kamera açısının görüntü düzlemindeki  her pixelinden ışınlar göndererek başlangıçta bir süre, sahnedeki gereksiz kısımları elemekle zaman geçirir. temel ışın izleme çok karmaşık olmadığından hesaplaması oldukça hızlıdır. bu bakımdan, 10 bin poligonlu bir sahnenin radiosity hesabı 1 dakika sürüyor ise, gereksiz poligonlerı eleme süresi örneğin 1.5 dakika sürebilir. ancak poligon sayısı 1 milyon´a çıktığında, radiosity hesabı, her poligon üzerinde tek tek işlem yapacağından 1 saat´e çıkıyorsa, kamera projeksiyonunda, render ebatı değişmediğinden, gene kameradan aynı sayıda ışın gidecek, sadece poligon sayısı arttığı için ışın tekrar yansıdığında hesaba girebilecek yeni poligonlar olacağından çok olsa 5 dk´ye( belki 15 ) çıkacaktır. bu yüzden kamera projeksiyonu temelli renderer´lar poligon artışına dirençlidir.

kısacası, radiosity, karmaşık sahneler için pratik bir yöntem değildir.
radiosity´nin biraz daha tarihte kalmış, global ışımanın hesaplanmasının bilgisayarlarca kolaylaşmasından önce altın çağını yaşamış bir teknik olduğunu söyleyebiliriz. ancak günümüzde global ışıma tekniğinin uygulanabilir hale gelmesiyle önemini yitirmiştir.
yinede poligon yükü çok düşük sahnelerde, global ışımaya göre daha hızlı bir şekilde fotorealizm elde edilebilir.. ama aradaki zaman farkı, her iki tekniği de detaylıca öğrenmeye değmeyecek kadar önemsiz kalacaktır.

max´in render sistemi = default scanline renderer

kamera projeksiyonu temelli renderer´lar :

vray
brazil
mental ray
final render
maxwell

piyasada en çok rağbet gören kamera projeksiyon temelli rendererların kullandıkları yöntemlere göre özellikleri :

vray, ışın simülasyonu konusunda çok başarılı, düz ışık hesaplarında en güzel sonuca hızlı ulaşıyor. ancak ışın izleme yöntemi için kullandığı sistem dolayısıyla poligon direnci diğer sistemlere oranla düşük. aşırı poligon yükü olmayan sahnelerde ışın hesaplarında hızlı performans sergiliyor.

brazil : ışın izleme sistemi ve kamera projeksiyonu konusunda kullandığı yöntemlerle, aşırı poligon yüklerine dirençli. ve aynı sebepten, doğrusal olmayan ışıma hesaplarında çok başarılı, aynı sebeplerden aşırı yansıma hesapları gereken durumlarda diğer renderer´lardan çok daha başarılı olarak öne çıkıyor.

mental ray: shader adı verilen ve nesnelerin nasıl görüneceğini belirleyen yorumlama sistemi oldukça başarılı, ışıma ile nesneleri ilişkilendirme konusunda diğer rendererlardan daha ilerde olduğundan, fotorealizm elde etme konusunda diğer rendererlara göre daha başarılı denilebilir. performansı konusuna yorumum yok.

maxwell çok yeni bir renderer olması dolayısıyla diğerlerine göre fazla yaygın değil. ayrıca diğer rendererlardan farklı olarak max´in dışında çalışması da, bir çok kişi için soğuk bir etken.

final render? çok güzel sonuçlar alanlar var. yani eskiden beri kalitesi biliniyor. ancak ben hiç araştırmadım :)...

rendering tekniğini, yada renderer´inizi yapacağınız işlere göre seçmekte fayda var.

örneğin :
düşük poligonlu ve karmaşık olmayan sahneleriniz daha çok ise, vray iyi bir çözümdür ( mesela 500binden daha az poligonlu sahnelerle çalışıyor iseniz ve sahnede genelde karmaşık nesneler yok ise.. mesela bir orman render´i vray ile korkutucu derecede uzun sürebilir.)

poligon yükü çok fazla olan sahneleriniz oluyorsa, ve özellikle yansımalar sizin için önemli, çok fazla ve sürekli ise brazil sizin için uygun bir çözüm olabilir. ( pratikte yansıtma özelliği olmayan bir nesne yoktur. bu da, sadece ışığa dayalı olmayan- daha gerçeğe dayalı fotorealizm için neredeyse şarttır. brazil materialleri bu yöndedir. bu yüzden film prodüksiyonlarda genel tercih sebebidir. ancak küçük mimari sektörlerde müşteri memnuniyeti ve basit sahneler için fazlaca işlem yükü getirir)

diğer renderer´ların tercih sebepleri ve ileri teknik özellikleri konusnda yorum yapamam ancak mental ray´de material temelli fotorealizm´e dayandığı için, film ve prodüksiyon sürecinde genel tercihlerden biridir. vray´in fotorealizm´i ışık temelli yapması, materialleri ikinci planda bırakması dolayısıyla ileri düzey prodüksiyon işlerinde tercih edilmez. ama siz tercih edebilirsiniz. ancak sıkıntı yaşamanız kaçınılmazdır. tır ile dağa tırmanma yarışı yaparsınız. ama formula arabalarıyla aynı pistte yarışamazsınız!...

burdan şu sonucu çıkartmamız gerekiyor. şu renderer şundan üstün konusu söz konusu değildir.zaten günümüzde teknolojinin vardığı boyut dolayısıyla  farklı bir mantık kullanıp yeni bir rendering teknolojisi geliştirmek 100lerce bilim adamıyla mümkün olabilir belki. çünkü günümüzdeki rendering mantığı 100lerce ( hatta binlerce ) bilim adamı ve yazılımcının ortak ürünüdür. ve neredeyse haddine ulaşmıştır.
dolayısıyla renderer geliştiren firmalar, kendilerine belirli hedef kitleler seçerek, seçtikleri hedef kitlenin ihtiyaçlarına en hızlı şekilde cevap verecek renderer´i geliştirme çabasındadırlar. yoksa brazil´i yapan adam da bilir ışık temelli fotorealizmi ( ben bile biliyorken ) vrayi yapanlar da bilir hızlıca yansımaları elde etmeyi ve poligonlara direnmeyi.

söz konusu sektör ihtiyaçlarına cevap veren renderer var iken, çalıştığınız veya kendinizi geliştirip yer edinmek istediğiniz sektöre yönelik geliştirilen rendererlara kendizi adapte etmek, ve bu rendererların çalışma mantıklarını kavramak en mantıklı yoldur.





Ekleyen: chrome_nickel

teşekkür
iboreddiİbrahim ÇALOĞLUAvatar

açıklama için teşekkürler çok değerli bilgiler verdiniz


MSİ X99A GAMİNG EXEON 2658 14 CORE 28 CPU NVIDIA GTX 970
2015-04-06 15:58:12
  • Offline
  • Erkek
Peki bu gün hedef kitleler aynı mı?
alper-ozyurtAlper Özyurt

Makaleyi çok doyurucu buldum ancak sormak istediğim bir şey var. Şuan için vray mimari modellemede son derece fazla kullanılıyor ve görmete olduğumuz sahneler oldukça karmaşık ve yüksek poligona dayanıyor. Bu makale ne zaman yazıldı bilmiyorum ancak şuan için vray`in hedef kitlesi değişmiş görünüyor mu. Ben yoğun poligonlu mimari görselleştirmeye yönelmek istersem max için neyi tercih etmeliyim. Ya da başka bir 3D yazılım içinde neye yönelmem daha doğru yukarıdaki mantığa dayanarak (programalrın güncel hallerini dikkate alarak)


2016-10-28 17:24:05
  • Offline
  • Erkek

Kapalı

Topic closed automatically because it`s been more than a year!