26 Temmuz 2011 Salı

SU DAMLASI (SIÇRAMASI)

Kullanılan yazılım, 3D Studio MAX


Koşun banyoya doldurun leğenleri, bulun buluşturun bir damlalık, su damlatıyoruz!

Hiç unutamadığım bir anımdır. Ama kaç sene öncesi olduğunu hatırlamıyorum. Katıldığım seminerdeki konuşmacı arkadaş RealFlow ’dan bahsediyor. Tek tük sendeliyor ama fena gitmiyor, lakin aksilik yakayı bırakmayacak ya, bu seferde yazılım göçüyor. Araya girmemek için zor zapt ediyorum kendimi. Konu hararetli devam ederken arka sıralardan bir el kalkar ve o tarihi soru sorulur. RealFlow ile benzin döküp, sonradan alev almasını sağlamak mümkün mü? Aslında arkadaş konuya fizik deneyi gibi yaklaşıp parametreleri tanımladıktan sonra - gerçek hayattaki gibi - olması gereken şeyleri yazılımdan beklenip beklenmeyeceğini soruyor... Tam anlamı ile reddedemeyeceğim bir yaklaşım olsa da, her şeyi yazılımdan beklememeliyiz. Yaptığımız işin adı animasyon, simülasyon değil. Simülasyonu yapan yazılım, onu kullanıp animasyon haline getirecek olan ise bizleriz. Geçtiğimiz aylarda yapmaya çalıştığım su damlaması ile uğraşırken bunu anımsadım ve 91.436’ıncı denemeden (!) sonra RealFlow ile uğraşmayı bırakıp, el ile canlandırma kararı aldım.

RealFlow ile maceramı bir kaç cümle ile özetleyeyim... Yaptığım her denemede geriliyordum, ya simülasyon hassasiyeti tutmuyor, ya sıvının yoğunluğu. Dar alanda parçacıklar güzel sıçrar iken, alanı genişlettiğimde azalan derinlikten ötürü sıçrama yetersiz kalıyordu. Yoğunluğu arttırınca da simülasyon süresi uzuyordu. Lokal yerçekimini arttırdım, kaygansılığı ve yapışkanlığı azalttım... olmadı. Sıçramayı kotarsam bile su yüzeyi pürüzsüz olmuyordu, stabil hale gelmiyordu. Ki bu en büyük sıkıntı. 3DSMax kullandığım için Glu3D (Sıvı simülasyon eklentisi) ile de bir kaç deneme yaptım ama elde ettiğim sonuçlar anlatmaya değmeyecek kadar kötüydü. Baktım bu iş simülasyon ile olmayacak sıvadım kolları, paçaları ve daldım suyun içine.

BAŞLIYORUZ


  1. Tabi daldık ama bu iş öyle kafadan olmuyor. Öncesinde bolca referans resim ve video toplamak gerekiyor. Yoksa ortaya oldukça sübjektif hatta sürreal bir şeyler çıkabilir. Resimlere malzeme ayarları ve ışıklandırma esnasında ihtiyacımız olacak. Referans video kaynağı olarak ilk tavsiyem, stok fotoğraf ve video siteleri... son çare ise YouTube. Güzel aydınlatılıp makro ve yavaş çekilmiş, cillop gibi su damlamasını başka nereden bulabilirdik ki? Videoları bilgisayarınıza indirebiliyorsanız ise ne ala, indiremiyor iseniz internet gezgini üzerinden tekrar tekrar, yavaşlatarak izleyin.
  2. Masa başına geçtiğimizde, alacağımız büyük kararlara göre seçimler yapacağız (Bob Ross ’un kemikleri sızlasın). Öncelikle tek damla mı yapacağız yoksa birden fazla mı, buna karar verelim. Tek damlanın yüzeyde oluşturacağı dalgalar daire şeklinde olacağı için, dairesel yüzey örülümüne ihtiyacımız olacak. Yok eğer birden fazla damla yapacak isek klasik düzlem nesnesi (Plane) ile başlayacağız.

    Tek damla ile yola devam ediyorum. Dairesel yüzey örgüsünü kolayca elde edebilmek için silindir (Cylinder) nesnesini kullanıyorum. Yüzey dilim miktarını ihtiyaca göre daha sonra ayarlamak akıllıca olacak. Damlayı ise Geosphere ’den oluşturdum. Çünkü az yüzey ile daha pürüzsüz küre formu veriyor (Acayip cimriyim!).

    Nesnelerin ölçülerini kafanızda kurguladığınız sahneye göre ayarlayın. Kendi sahnemde su yüzeyini olabildiğince geniş tutuyorum. Çünkü post prodüksiyon aşamasında derinlik kanalı (Z-Buffer) yardımı ile artalanı sonsuz fon haline getireceğim.

    Böylece sahnenin kabasını oluşturduk. Hadi hareket katalım.
  3. Damlayı düşürmeden önce su yüzeyinin tamamen hareketsiz kalmasını istiyor iseniz hiçbir şey yapmanıza gerek yok. Ama hafif dalgalanması sahneyi daha inandırıcı kılacaktır diyorsanız Noise ve Wave Modifier ‘ları işinizi görecektir. İlk Noise ‘i orta büyüklükte (Scale) ve düşük değerde (Strength) uyguladım. İkinci Noise ‘i ise daha yüksek değerde ve damlanın düşme anına göre boyutunu azaltıp, düşme sonrası arttırdım.



    Wave ‘i de sabit değerde hareketlendirdim. Modifier Stack ‘iniz karışmaya başladığında, Modifier ‘ları yeniden isimlendirerek rahat çalışabilirsiniz. Listeden üzerine sağ tıklayın ve Rename deyin. Böylece ilk bakışta hangisinin ne işe yaradığını göreceğiniz gibi Track View ’da da (Zaman çizelgesi) rahat edeceksiniz. Uyguladığınız tüm Modifier ‘lar suyun hem üst hem de alt yüzeyine etki edecektir. Sadece üst yüzeyine etki etmesini sağlamak için Volume Select yerinde bir seçim olacak. Soft Selection özelliğini etkinleştirin ve Falloff değerini arttırın. Böylece merkezden uzaklaştıkça su yüzeyi düzleşecek. Ayrıca Modifier Stack yapısı bozulmayacak ve istediğiniz zaman, - sorunsuz bir şekilde - aktif / pasif hale getirebileceksiniz.
  4. Artık damlayı düşürelim. Damlanın ne kadar yüksekten düşeceğine, kadrajımıza göre karar vereceğiz. Burada kamerayı unuttuğumuzu (!) anlıyoruz, hemen oluşturalım. Makro plan düşündüğüm için kamerayı yakın tutmaya gayret ediyoruz. Lakin kurduktan sonra bir önceki cümlenin 3DSMax’in sanal evreninde ne kadar saçma olduğunun farkına vardım. Çünkü yakın / uzak, büyük / küçük gibi karşıt kavramlar tamamen algıyla ilgili. O zaman şöyle düzeltelim; nesnelerin konumunu ve ebadını makro plan gibi algılanacak şekilde ayarlıyoruz. Kamera ve kadrajı ayarladığımıza göre artık damlayı düşürelim. Damlanın su yüzeyini geçip bir miktar aşağıya inmesi için 14-15 kare kullandım. Damla hızlı iken Stretch ile uzattım. Suya çarpma anında ise daralttım. Ardından suya karıştığı hissini vermek için, 4-5 karede boyutunu sıfırladım.
  5. Damla düştüğüne göre yüzeyi hareketlendirelim. Damlanın birincil sıçraması için Displace + Gradient Map kullandım.



    Gradient ’i küçük tuttum ve 0.1 şiddetinde (Strength) + 3 boyutunda (Scale) Noise ile yavaşça hareket (Phase) etmesini sağladım.



    Displace / Strength değerini önce eksiye, ardından artıya ve tekrar eksiye düşürerek esnettim.



    Sıçrama artı konumda iken Gizmo ’nun boyutunu düşürdüm, eksiye geçerken tekrar arttırdım. Sıçrama artı konuma geçtiğinde, eş zamanlı olarak Geosphere ’i büyütüp, yukarı ve aşağı hareket ettirdim. Geosphere ‘i yukarı aşağı oynatır iken Stretch ‘i anime etmeyi unutmayın. Hızlı iken uzatın, yavaşlama anlarında kısaltın. Damla suya tekrar girdiğinde boyutunu sıfırlamayı unutmayın. Aksi durumda şeffaf malzeme atadığınız suyun içinde baloncuk gibi gözükecektir.

Buraya kadar yaptıklarımız, su yüzeyinde belli belirsiz kıpırdanmalar. Damlanın düşüşü ve su yüzeyinde oluşturduğu birincil sıçrama hareketi.

  1. Ana dalgayı hareketlendirerek devam edelim. Ana dalga içinde, sıçrama da olduğu gibi Displace + Gradient Map kullandım.


    Gradient ‘i halka oluşturacak şekilde ayarladım ve sıçramadaki ile aynı Noise ayarlarını kullandım. Dilerseniz Gradient ’in ortadaki anahtarına Noise Map atayarak yüksekliğin de dalgalı olmasını sağlayabilirsiniz. Dalganın yayılımını canlandırırken Displace / Gizmo ‘yu yeniden boyutlandırmak yeterli. Damlanın ilk düşüşü için boyutunu sıfırdan dört yüze kadar genişlettim, ikinci sıçrama içinde aynı hareketi tekrarladım. Displace / Strength değerini de arttırıp azaltmayı unutmayın.


  2. Hareketlendirmede sonlara yaklaştık. Ripple ile ana dalgayı tamamlayalım. Dikkat etmeniz gereken şey, önceki hareketler uyumlu olması gerektiği. Bu yüzden şiddetini (Amplitude) sıfırlayıp, damlanın yüzeye teması ile arttırıp, azaltıyoruz. Dalga boyunu da damlanın teması anından itibaren olacak şekilde arttırın. Phase değerini eksi yönde arttırın, böylece merkezden dışarı doğru açılan dalgalar elde edeceksiniz.


Hareket ile yazacaklarımız bu kadar, biraz da nesnenin yüzey yoğunluğuyla uğraşalım. Eğer başlangıçta dilim sayısını yüksek vermedi iseniz dalgalandırma sonrası su yüzeyi oldukça köşeli gözüküyor olsa gerek. Hiç sorun değil. Hatta daha iyi, çünkü hareketi akıcı görüp, gerekli revizeleri yapabilmeniz için gerekli. Ama Render sonucunda ne olacak? Böyle mi gözükecek? Hayır! TurboSmooth kullanarak yüzey sayısını arttıracağız ve oldukça pürüzsüz gözükecek. Önce ilk TSmooth ’u Cylinder ile ilk Modifier ‘ın arasına atayın ve Iterations değerine 2 girin. Eğer bilgisayarınız yeterince güçlü değil ise sahnenin akıcılığı azalacaktır. Önüne geçmek için TSmooth ’un üzerine sağ tıklayın ve “Off in Viewport” u seçin. Böylece Render esnasında yüzey sayısı artar iken, çalışma ekranında herhangi bir değişiklik olmayacak ve performans azalmayacak. TSmooth ’u geçici olarak çalışma ekranında da aktif hale getirin, çünkü Render esnasında nasıl göründüğünü bilmemiz gerekiyor. Modifier ‘ların en üstüne Relax atayın. Value ve Iterations değerlerine 1 girin. İkinci TSmooth ‘uda en üste atayın ve Iterations değerine 1 girin. Toplamda yüzey sayısını 3e katladığımız için sahne oldukça ağırlaştı. Yüzey yumuşaklığından memnun iseniz, TSmooth ‘ları ve Relax ’ı Ctrl tuşu yardımı ile seçip çalışma ekranında pasif hale getirin. Ağırlık gidecek ve sahneniz kuş tüyünden hafif olacaktır.

IŞIK VE MALZEME

Toplam 2 ışık kullandım. İlki orta yükseklikte ve solda uzak, ikincisi sağ üstte ve ilkine göre oldukça yukarda. Işıkları sahneyi aydınlatmaktan ziyade yüzeyde oluşmasını istediğim parıltılardan ötürü bu şekilde konumlandırdım. Dilerseniz Place Highlight aracı ile bu işlemi görerek yapabilirsiniz. Place Highlight aracını yüzeyin dalgalı haline yahut damla üzerine uygulamanız daha olacak. Çünkü eğimli yüzeylerde parıltı algısı daha doğru algılanacaktır. Kuvvetli parlamalar için aynı anda birden fazla ışığa da uygulayabilirsiniz. Sizi Place Highlight aracı ile baş başa bırakıp malzeme ayarlarına geçiyorum.

Kullanacağınız Render motoru ile uyumlu su malzemesi var ise onu kullanıp gerçekçiliği bilgisayara devredebilirsiniz. Hatta aydınlatma ve ışığa da hiç kasmadan, kütüphanenizdeki kıyak bir HDR resmi arka plana atayıp, aydınlatmayı da onun üzerinden yaparak ışık, malzeme ve Render aşamalarını hepten bedavaya getirebilirsiniz. Ama bu yöntem, benim gibi sabırsız biri için bitmek bilmeyen Render süreleri anlamına geliyor. Ayrıca amacımız balık tutmayı öğrenmek (!) olduğu için kolaya kaçmayacağız. Acı yok Rocky!

Bu gaz dan sonra “M” kısayol tuşu ile malzeme düzenleyicisini açarak devam edelim. Şeffaflık ile ilgili daha fazla ayar imkânı sunduğu için Raytrace malzeme kullandım. Ana rengi koyu mavi olarak değiştirin (15, 80, 126). Index of Refraction değerine 1.1 girin. Specular Level ‘i 120‘ye attırın. Reflection kanalına Falloff atayın ve geçiş eğrisine kavis vererek yansımaların kenarda erimesini sağlayın.
 
Extended Parameters bölümündeki Advanced Transparency / Fog özelliğini etkinleştirin. Ana rengi buraya kopyalayabilirsiniz. End değerine 70 girin. Amount değerini 0.6 ’ya düşürün. Böylece malzeme, siyah ortamda dahi mavimtırak gözükecek. Bu hali ile test Render ‘ı aldığınızda en önemli unsurun yeni yansıma ve kırılmaların eksik olduğunu göreceksiniz. Çünkü suyumuz simsiyah uzayın ortasında. En kral render motoru ve en gerçekçi malzemenin bile simsiyah uzayda yapabileceği pek bir şey yok. O yüzden nesnenin çevresini doldurmamız gerek (malumunuz, şeffaf nesneler biraz kırılgandır kendini yalnız hissetmesin). Bu aşamada - var ise - kütüphanenizdeki HDR ‘lere göz kırpabilirsiniz. Eğer elinizdeki HDR resimleri yetersiz buluyor iseniz, 3DSMax 2009 ile birlikte gelen Composite Map özelliğiyle karıştırarak daha güzel sonuçlar elde edebilirsiniz. Elinizde hiç HDR resim olmayabilir de. Bu durumda başvuracağımız ilk kaynak Google Efendi olacak. Arama kutusuna “free hdr” yazdığınızda karşınıza gelecek kaynaklardan bedava HDR resim indirebilirsiniz. Resimleri buldunuz ama 3DSMax’in algıladığı (Spherical) tipte olmayabilirler. Mesela bulduğunuz HDR Mirrored Ball tipindedir.
 
Spherical tipine çevirmek için ara bir yazılıma daha ihtiyacınız olacak. Bu tarz dönüşümler için HDRShop ‘u tavsiye ederim.
HDR resimler üzerinde bazı temel düzenlemeler ve değişiklikler yapmanıza olanak tanıyor, üstelik ilk sürümü bedava. Yazılım hakkında fazla detaya inmeden, panoramik dönüşümün nereden yapıldığını tarif edeyim. Üstteki menüden, Image / Panorama / Panoramic Transformations seçeneği ile dönüşümleri yapabilirsiniz. Format kısmından uygun olanı seçin, çözünürlüğü belirleyin ve işlemi onaylayın. Yeni resminizi kaydetmeyi unutmayın. HDR işleme derken Composite Map konusunu biraz hızlı geçtiğimi fark ettim. 2009 sürümü ile güncellenen CMap ile resimlerinizi artık Photoshop / katman kullanımında olduğu gibi üst üste bindirebilir, dilediğiniz karışım tipini / miktarını seçebilirsiniz. Maske atayabilir, renk düzenlemeleri yapabilirsiniz. Özellikle elinizdeki tek bir HDR resmin yetersiz kaldığını düşünüyorsanız, diğerleri ile karıştırabilir ve daha güzel yansımalar / aydınlatmalar elde edebilirsiniz.

Tabi unutulmaması gereken, CMap ‘te kullandığınız katman sayısının fazlalığı, Render sürenizi arttıracaktır. O yüzden abartmaya gerek yok. Malzeme ayarlarımızda bu kadar sayılır. Tabi sizin kurcalama payınızı da hesaba katıyorum.

BİTTİ GİBİ

Hatırlasanız başlarda derinlik kanalı, Z-Buffer gibi şeylerden bahsetmiştim. Son olarak bu konudan bahsedip, yazımızı bitirelim. Render sonrası görüntüyü AfterFX ‘te işlerken birkaç ekstra kanala ihtiyacım olacak. Bunların başında Depth / Z Buffer gelmekte. Bu sahnede sonsuz fon / alan derinliği etkisi için oldukça gerekli. Depth Buffer ‘ın da Alias ‘lı olması gerekiyor
. Çünkü DBuffer ‘daki her piksel / tonlama bir derinlik miktarına denk geliyor. Kenarların kırık gözükmemesi için resme uygulanan Antialiasing işlemi ile elde edilen ara geçiş tonları derinlik kanalında saçmalamalara sebep oluyor. Bu yüzden 3DSMax ‘ten DBuffer çıkış alırken, Render Elements / Z Depth yerine, Effects / File Output  / Depth ‘i tercih ediyorum. Antialias uygulamamasının yanında derinlik miktarını otomatik analizi opsiyonu da oldukça kullanışlı. Pratik kullanımı Render Elements ’e göre biraz daha karışık gözükse de daha temiz sonuç vermekte. Ekstra kanalları harici almak yerine, RLA / RPF gibi ekstra kanalları içinde saklayan bir dosya tipi seçerek bunların hiç biri ile uğraşmayabilirsiniz de. Post Process yazılımınızın / derinlik efektinizin bu formatı gördüğünden emin olun. Aksi durumda ekstra birkaç işlem daha (RLA / RPF içinde derinlik kanalının siyah beyaz resim haline getirilmesi gibi) gerekebilir
.

SONSÖZ

Uzun zamandır özgün bir şeyler yazdığımı hissetmiyordum. Bu açıdan su damlaması fena olmadı. Umarım sizler içinde okuması keyifli ve öğrenmesi verimli olmuştur. Bilgisayar grafiği ile ilgili aklınıza takılan şeyleri bana yazmayı (osmansafi@gmail.com) unutmayın. Bir sonraki sayıda görüşmek üzere, hoşça kalın.

Hiç yorum yok:

Yorum Gönder