Vray DMC Sampler ve Gizemli Dünyasına Yolculuk – 2 | Truva Design

Vray DMC Sampler ve Gizemli Dünyasına Yolculuk – 2

Bu makale bir önceki yazımızın devamıdır. Lütfen Buraya tıklayarak önce bir önceki makaleyi okuyunuz.

Sezgisel algoritmaları bir kenara bıraktığınız harikalar dünyası: DMC Sampler.

Deterministic Monte Carlo (DMC).

Bu zamana kadar edindiğimiz bilgi sayesinde DMC sampler’ın işleyişini anlamak kolay olacak. Bilmemiz gereken ilk ve en önemli şeylerden biri şu ki: bir pikselin sampling işleminde fazladan sample üretilip üretilmeyeceği hususunda , o pikseli çevreleyen tüm piksellerin renk bilgileri hesaba katılır. Daha önce Adaptive Subdivision Sampler ile DMC Sampler’ın render’daki farkını gösteren bir örnek paylaşmıştık. Özellikle ince çizgilere sahip geometrilerde DMC’nin daha sağlıklı sonuç aldığını gözlemlemiştik. Şimdi ise piksellerdeki çalışma prensibi olarak farkını ele alacağız.

image Website…

ADAPTIVE SUBDIVISION SAMPLERDMC SAMPLER

Soldaki : ADAPTIVE SUBDIVISION SAMPLER

fazladan sample gerekip gerekmediğine, yalnızca pikseli çevreleyen kenarlardan edinilen bilgiye dayanarak karar verir

Sağdaki : DMC SAMPLER

fazladan sample gerekip gerekmediğine, pikseli çevreleyen ve pixel içinde bulunan tüm piksellerin renk bilgilerini de hesaba katarak karar verir.

Belki bu durum, kulağa önemli gibi gelmez ama aslında çok önemlidir. Çünkü bu sayede sahnedeki küçük detayları çok iyi yakalar…DMC Sampler çevredeki piksellerden aldığı sample’ları daha rastlantısal bir patern izleyerek gerçekleştirir; işlemi, Adaptive Sudivision Sampler gibi düzenli bir gride bağlı kalarak yapmaz. DMC Sampler ayrıca, Vray’in önceki sürümlerindeki QMC’ye kıyasla da daha serbest bir patern ile sampling işlemini yapar.

İnsanlar genellikle, DMC Sampler’ın hareket izi (motion blur) ve alan derinliğini (DoF) neden daha kısa sürede hesaplayabildiğini merak ederler. Bunun sebebi DMC Sampler’ın sahnedeki her bir alanı kontrol edip, gerekli olmayan kısımlara fazladan sampling işlemi yapmamasıdır. Elbette ki bu durum render’da zamandan kazandırır. Hem de sonuç görselindeki piksellerin düşük kalitede olmasına da sebebiyet vermez.

Teknik olarak bu şu anlama gelir: DMC Sampler, DMC Sampler ayarlarındaki maksimum değerler baz alınarak, sahnedeki her bir değeri (materyal, ışık, vs…) altbölünme işlemine sokar. Subdivision Sampler’da ise böyle bir şey olmaz. Aralarındaki en temel fark budur. Daha detaylı kavramak için sıradaki örneği inceleyelim.

dmc sampler

 

Tekrar etmekte fayda var: Örneğin, sahnemizde bir materyalin buzlu yansıma değerini 40 subdiv, hafif bir gölge için de gölge değerini 10 subdiv ayarlayalım. DMC Max Sample ayarımız ise 5 olsun. Bu durumda sahnedeki her bir değer 5 ile bölüneceği için, yansıma için maksimum subdiv 8 (40:5), gölge için maksimum subdiv 2(10:5) olur.  Fakat pikselin sampling işlemi daha çok sample’a ihtiyaç duyarsa hala daha fazla sample alması söz konusudur. Örneğin bizim örneğimizde,  pikselin içine nüfuz eden her bir ışın için Vray 8 yansıma subdiv (8’in karesi olarak 64 sample) üretir. Fakat ihtiyacı varsa, DMC maksimum değeri 5 olduğu için maksimumda (8X5) 40 yansıma subdiv’e kadar (1600 sample) sample alması mümkündür. Bu hesaplar biraz karışık mı ? Belki biraz karışık gelebilir. Şu da bir gerçek ki  VRay’in kendi kılavuzunda da bu hesaplar açıklanmadığı için kendi kendine idrak etme durumu biraz zaman alıyor diyebiliriz 🙂

dmc

Bu grafik buzlu yansıma (glossy reflection) üzerinden DMC sampler’ın olayı nasıl ele aldığını basitçe göstermektedir. Materyalde buzlu yansıma default olarak 100 subdiv olarak ayarlı. Birinci örnekte DMC’nin maksimum değeri 5. Bu da materyalin yansıma subdiv sayısını 20’ye düşürür. İkinci örnekte de aynı hesap geçerlidir. Son örnekte de Max değer 50 olduğundan, bu gerektiğinde maksimum 50 kez bölünebileceği (2500 sample üretebileceği) anlamına gelmektedir. Bu yüzden, 2 adet yansıma subdiv ile başlayıp daha sonra gerekli oldukça detaylanır.

Öyleyse şimdi, DMC’nin sahnedeki her bir değeri nasıl yeniden bölünmeye uğrattığından da bahsettiğimize göre, DMC’nin adaptif özelliği ve sahnedeki her bir değer (DoF, gölge, ışık, vs…) ile nasıl ilgilendiğini ele alalım. Adaptive Subdivision Sampler’ın nasıl işlediğini kavramak kolaydı. Çünkü sahnedeki her bir değeri ayrı parametreler olarak hesaplamaya sokuyordu.

DMC’nin sahnedeki her bir değeri aynı anda altbölünmelere uğratmasından ötürü; DMC Max değerini düşük tutarsanız, adaptif hareket etme özelliği ortaya çıkar. Eğer DMC Max değerini 1 yaparsanız, 50 adet adaptif sample alınır. Bu durumda üretilen sample sayısı bakımından Adaptive Subdivision Sampler ile aynı fonksiyona dönüşmüş olur. Yani tümüyle adaptif davranma söz konusudur. Fakat DMC algoritmanın doğası itibariyle, maksimum DMC ayarı çok fazla yukarı çekilince tam tersi olarak, adaptif özellikten uzaklaşılmış olur. Bunun sebebi, örneğin Max değer 50 olduğunda, 1 adet adaptif sample alınır. Bu demek olur ki sahnedeki her bir yansıma için 1, ışık için 1, hareket izi için 1, alan derinliği için 1 ve diğer tüm değerler için 1’er adet sample üretilir. Bunu yapmasının sebebi gerektiğinde maksimum 50 adet albölünme yapabilecek olmasıdır. Bu yaklaşık 2500 sample anlamına gelir. Yansıma için sadece 1 adet sample kullansa bile kaliteli yansımalı sonuçlar alınabilmektedir.

Alan derinliği ve hareket izi ve buzlu yansıma gibi pek çok efektin olduğu sahnelerde Vray minimum sayıda sample ile harika sonuçlar elde eder. Bu bahsettiğim örneklerde DMC Max değerini çok yüksek tutmakta fayda var. İhtiyaç duyarsanız materyalin kendi özelliklerine gidip sıkıntılı duruma lokal olarak da müdahale edebilirsiniz. Genellikle, nesne hareketliyse ve flu ise çok fazla yansıma sample’a ihtiyaç duyulmaz. Çünkü en sonunda, her şey yenideb bulanıklaştırılacak. Subdivision Sampler bunu algılayamaz ve her bir değer için ayrı ayrı sampling işlemi kasar. Finalde yok olcak olsa bile her bir değeri tek tek işler. Aşağıdaki örnekte bu tarz render’larda iki sampler’ın arasındaki zaman performansı farkını görebiliyoruz

dmc_adaptive_compare01dmc_adaptive_compare02

DMC’nin en büyük kusuru, teknik hesapları bilmeyenler için karmaşık gelebilmesidir. Bazen sahnede çok fazla detay ve değer varsa, DMC Max ayarını ciddi miktarda yüksek tutmakta fayda var. Çünkü bu ayarı düşürmek (4’e falan çekmek) render süresini çok fazla uzatır.

Örnek 01: Hair (Tüylü Yüzey)

Hair bir nesnenin sampling işlemi için ciddi can sıkıcı bir mevzu olabilir. Adaptive Subdivision Sampler bu tarz nesnelerin sampling işleminde daha kötü bir performans gösterir. Gerekli durumda fazladan alınacak olan sample’ları nereye yerleştirmesi gerektiğine düzgün karar veremez. DMC ise bu konuda oldukça başarılıdır. Tüylü yüzeye sahip nesnenin sampling işlemini oldukça hızlı ve yapaylıktan uzak gerçekleştirir. Adaptive Subdivision Sampler’da olduğu gibi çizgisel kırıklıklara veya titreşimli çizgilere izin vermez. Aşağıdaki örnekte iki sampler arasındaki hair uygulaması farkını inceleyeceğiz. DMC için Min 1 Max 50 Color threshold (renk eşiği) 0.02, Adaptive Subdivision için ise Min 0 Max 2 Color Threshold ayarı  0.5’tir. Adaptive Subdivision Sampler için oldukça yüksek bir eşik değeri kullandım. Çünkü bir animasyonda olması gerektiği şekliyle 0.1 yada 0.05 kullandığımda render süresi 20 dakikaya kadar uzadı.

dmc-hair

Pekala, öyleyse hair örneklerinde ayarlarımız nasıl olmalıdır?

DMC minimum sample 1 veya 2, maksimumda ise 50 kullanabilirsiniz. Eğer animasyon detaylarında sıkıntı çekerseniz, minimum sample’ı 2 yapmanız durumu düzeltecektir. Color threshold (renk eşiği) 0.02 ya da 0.005 gibi oldukça düşük bir ayarda kalabilir. DMC sampler’ın options (seçenekler) sekmesini unutabilirsiniz. Çünkü adaptif özelliği hemen hemen kaybolur bu ayarda. Çünkü sahnedeki her bir değer 1’e düşer. Bu durumda DMC harika çalışır. Çünkü hair için gerekli olan ışın bilgisinin karmaşıklığı ve çokluğuna rağmen (bazen 100-300 ışın) hızlı ve güzel sonuç almayı başarır.

dmc-hair

Fark edebileceğiniz gibi 3. örnekte alınan sonuç en kalitelidir. Render’daki her şey yumuşak geçişli ve nettir. Animasyonda da bu böyledir. Blur ile çalışırken hair’i ayrı bir bileşen (pass) olarak Min 1 Max 50 ayarlayıp, geometrinin kalanını da VRay properties’den (Özelliklerden) Matte olarak ayarlayarak render alabilirsiniz. Daha sonra post prodüksiyonda hair için gerekli müdahaleyi gerçekleştirebilirsiniz.

 

Örnek 02: Düz Yüzeyler, Buzlu yansımalar

İlginç olan şu ki bazı durumlarda DMC Max ayarını 4’e düşürmek kısa sürede kaliteli bir sonuç verebilir. Bu durum, buzlu yansıma özelliğine sahip düz yüzeylerde geçerlidir. Yani geometriden çok materyalin sampling özelliğine konsantre olur.

dmc-blurness

DMC Max değeri 5 ile 50 arasında nasıl farklar olduğuna bakalım.

Screenshot 2016-04-04 23.51.52

İlginç değil mi? DMC Max değerinin 5 olduğu ilk örnek, DMC Max değeri 50 olduğu durumdaki bir örneğin yalnızca küçük bir fraksiyonudur. DMC Max değerinin sahnedeki her bir yansıma değerini bölünmeye uğrattığı örnekleri hatırlayalım. Burda da aslında tam olarak olan budur. Materyalin buzlu yansıma özelliği için subdiv ayarı 50’ye ayarlanmış. Bu demektir ki birinci örnekte Max değeri 5’e ayarlı durumda 10 subdiv (50:5) yani 100 adet yansıma sample üretilir. Fakat DMC max değerinin 50 olduğu durumda sadece 1 adet sample üretilir. DMC Max ayarı 50 iken Vray az sayıda ışın bilgisi ile temiz bir yansıma elde edemeyecektir. Bu sebeple, bazı yansımalı düz yüzeyler için daha çok ışın örneklemesine gerek olmasa bile Vray’in piksellere daha çok ışın göndermesi gerekir.

İkinci sıradaki örneklerde ise, DMC Max 50’ye ayarlıdır fakat zemin ve duvarların materyallerindeki yansıma subdiv ayarları değiştirilmiştir. Daha çok ışın bilgisi yüklenmesi ile yansımanın nasıl değiştirğini açıkça gözlemleyebiliriz. Yani böyle durumlarda yansıma değerini 300’e çıkarmaktan çekinmeyin. DMC Max 50’ye ayarlı olduğu için her bir ışın için sadece 6 subdiv oluşur. Böylece hızlı bir render ile kaliteli bir yansıma efektine kavuşursunuz.

 

Örnek 03: Subpixel (piksel altı) Mapping Metodu(V-Ray: Color Mapping Sekmesi)

Subpixel Mapping sahnelerinizde ve animasyonlarınızın render’ında sıkça başvurabileceğiniz bir yöntemdir. Eğer hareketsiz bir görsel üzerine çalışıyorsanız, bu seçimi deaktif yaparsanız, daha gerçekçi bir görünüm elde edersiniz. Fakat hareket izi ve alan derinliği kullandığınız animasyonlarınızda bu özelliği aktif etmeniz render süresi ve daha az sample üretilmesi açısından çok akıllıca olacaktır. Subpixel Mapping’in kullanımı ve kullanılmaması arasındaki fark şudur: Bu özellik aktifken her piksel önce tonemapping’e uğrar. Daha sonra VRay o piksel için başka sample’lar üretiyorsa onlarla renk bilgisi ortalaması alınır. Eğer subpixel aktif değil ise bütün sample’ların önce renk ortalaması alınır, VRay en sonda tonemapping uygular. Sıradaki şema bu süreci anlatmaktadır.

subpix_01

SUBPIXEL MAPPING AÇIKKEN
Subpixel Mapping aktifse pikselin içinden alınan her bir sample, kamera pozlama ya da color mapping sekmesinde belirlediğiniz renk skalasına göre tonemapping’e uğrar. Daha sonra mevcut piksel rengi bilgisi ile birleştirilir.

subpix_02

SUBPIXEL MAPPING KAPALIYKEN
Subpixel Mapping kapalıysa her bir sample hesaplanır ve hep beraber renk bilgisi ortalamasına katılır. Sampling bitince tüm piksel rengine final değere ulaşmak için tonemapping uygulanır. Bu daha gerçekçi bir sonuç yaratır. Fakat özellikle hareket izi ve alan derinliğinde lekelenmeler oluşturma durumu söz konusudur.

Render’da karşılığı şu şekildedir:

subpix_01subpix_02

Sağdaki Subpixel aktif olan imajın daha net bir sonuç verdiğini görmekteyiz. Daha hızlı render alır, fakat parlaklıkla ilgili sıkıntı olabilir. Bu da gerçekçilik konusunda dezavantaj sağlar

subpix_03subpix_04

DMC Max değerini 1’e getirince yansıma değeri her bir ışın için aza indirgenemeyeceği için, subpixeli kapatmış olmakla aynı etkiyi alırız.

Böyle bir farklılık oluşmasının sebebi: DMC 1’e ayarlıyken, VRay piksele 1 adet ışın gönderir. Daha sonra bu ışın yansımalı yüzeye çarpar ve 30 adet yansıma sample üretilir. Bu 30 yansıma örneğinin ortalama renk bilgisi alınır. Yüzeyin diffuse (yayılma) bilgisi ile birleştirilerek, tonemapping uygulanır. VRay, bir yansıma hesaplamasında 30 yansıma bilgisini kullandığı için subpixel mapping aktif olmadığı zaman da aynı parlaklıkta olur. DMC’nin 50’ye ayarlı olduğu duruma kıyasla, yansıma değeri 1’e düşmesi ardından yansıma sample’ı diffuse (yayılım) bileşeni ile ortaklanır ve tonemapping uygulanır. DMC Max ayarı 50’de olduğu için VRay yansıma efektini daha iyi verebilmek için daha fazla ışın göndermek isteyecektir. Bu durum malzemenin kendi özelliğine gidip ana rengi değiştirerek veya yansıma sample’larının sayısı yükseltilerek çözülebilir. DMC Max değerini 50’ye ayarladığınızda materyaldeki yansıma subdiv 500 gibi bir değere ayarlanabilir. Buna göre her bir ışın için 10 yansıma subdiv sample’ı üretilir. Bu şekilde subpixel aktif olmadığı halde, aktif olduğu zamanki parlaklığı yakalayabilirsiniz.

Örnek 04: Sahnede 10’dan Fazla Area Lights (Alan Işığı) Olması

Sahnede çok fazla area lights kullanıyorsanız, DMC’nin çok fazla faydasını görürsünüz. Özellikle alan derinliği veya hareket izi söz konusuysa, DMC daha da cazipleşecektir. Sıradaki ikili örnek aradaki farkı göstermektedir. Bu örneklerde 100 adet area lights kullanılmıştır. Örneklerde, DMC’nin Subdivision Sampler karşısındaki üstün performansını gözlemleyebiliyoruz. Render’larda noise (parazit) durumu neredeyse aynı, DMC’nin bazı kısımlarının daha temiz sonuç aldığını söyleyebiliriz. Fakat şunu göz ardı edemeyiz ki, DMC için Max ayarı 50 kullanılmış. Bu oldukça yüksek bir ayardır. Buzlu yansıma için Lightcache’yi açmak çok ışıklı sahnelerde çok yardımcı olur.

lights_01
ADAPTIVE SUBDIVISION SAMPLER
MIN 0 MAX 2 CLR THRESHOLD (RENK EŞİĞİ) 0.05

 

lights_02

DMC SAMPLER
MIN 1 MAX 50 CLR THRESHOLD (RENK EŞİĞİ) 0.02


 

Örnek 05: DMC Ayarları ile Irradiance GI Kalitesi

Irradiance Map’te noise (parazitlenme) ya da titreşimleri gidermek için, IR Map de DMC Sampler ayarlarındaki parametreler ile kontrol edilir.

ir map

Adaptive Amount (adaptif miktarı) 1’e ayarlıysa genelde sıkıntı çıkar. IR Map GI sample’ları için çok fazla ışın gönderemediği için, daha fazla bilgiye ihtiyacı olup olmadığı konusunda sağlıklı karar alamaz. Bunun önüne geçmek için, adaptif miktarını 1 değerinden aşağı çekmek faydalı olacaktır. İkinci örnek ise 0.5’e ayarlı. GI’daki farkı rahatça gözlemleyebilirsiniz. Alternatif olarak da min samples değerini, son örnekte olduğu gibi, 128 gibi bir değere çekerek çözüme ulaşabilirsiniz

 

Sonuç

Biraz karmaşık bir konu olsa da, anlatmak istediklerimizi paylaşmış olmanın mutluluğunu yaşıyoruz. 🙂 Kimileri DMC Sampler’ın birleşik parametrelerle çalışmasından ötürü hesap karmaşası yaşar ve Adaptive Subdivision Sampler’a geri döner. Çünkü onda alacağınız sonucu öngörmeniz daha kolaydır. Fakat bir kere DMC ‘nin gücünü keşfettiğinizde, bu sistemde kalmak isteyeceksinizdir. Çünkü DMC, render motorunuz ve sampling algoritmaları üzerinde tamamiyle bir hakimiyet geliştirme fırsatı sunar. Birleştirilmiş parametreler ve değerler ile de daha hızlı ve kaliteli sonuçlar alabileceksiniz. Mutlu render’lar!  😀


 

Araştırma ve Çeviri : Hilal Ölmezses | Derleyen : Fatih Ekşi

Makale bir çok kaynaktan faydalanılarak hazırlanmıştır. Truva design  dışında herhangi bir sitede veya dergide veya başka bir online/yazılı platformda  yayınlanamaz.

Kaynak  | Copyright 2010 Toni Bratincevic

 

 

 

Yorumlar

  • GokhanB
    Cevapla

    Kaleminize saglık,harika bir paylasım,tebrik ediyorum sizleri.