12 Ağustos 2011 Cuma

KAN DAMARINDA YOLCULUK

Doyurucu bir eğitsel bulamanın sancısı ile çırpınırken aklıma seneler önce tıp projesine hazırladığım damar sahnesi geldi. İşte aradığım buydu. Uzaklarda aramaya hiç gerek yokmuş.
Her ay olmasa da, iki ayda bir tatlı bir telaş kaplar içimi. Dergiye ne yazacağım konusunda karar vermek inanın hiç kolay değil. Yazılacak, dizgisi, sayfa düzenlemesi yapılacak, kâğıda basılacak, on binlerce dağıtılacak... Günü birlik yazışmalarda sarf ettiğimiz cümlelerden farklı olmalı. Tozlu bir ofis masasının üstünde haftalarca hatta aylarca bekleyecek. Ve gün gelecek sayfalarını kurcalayan kişinin dikkatini çekecek, okunacak. Ayırılan bu kadar vakte değmeli değil mi?
Sanırım yaş ilerledikçe espri anlayışımı kaybediyorum. Eskiden daha iyi girişler yapardım. Neyse fazla uzatmadan konuya girmek en iyisi olacak. Bu ay işinize oldukça yarayacağını düşündüğüm bir konuya değineceğim. Görsel zenginliği yanında değiştirilebilir yapısı ile farklı şekillere uyarlanabilmesinin ilginizi çekeceğini düşünüyorum. Anlatım esnasında -pek âdetim olmasa da- sayısal değerleri vermekteyim ama bu girilmesi gereken sayıların verdiklerim olduğu anlamına gelmiyor. Doğru değerleri sahnenizin boyut ve yapısına göre deneyerek keşfetmeniz en sağlıklısı. Veee modelleme ile başlıyoruz.
MODELLEME
Sahnemizin yapısı oldukça basit. Arka planımız, tek başrol oyuncumuz (alyuvar) ve onun yüzlerce figüranı (!) var. Alyuvar ile başlayalım. Önce kesitini çizin.

Sol görünümde, Line aracı ile çiziyorum. Şekil olarak armuda benziyor. Ardından Lathe komutu ile kalınlık kazandırın.

Sonrasında uygulayacağımız Modifier’ların daha yumuşak görünmesi için Line / Steps ve Lathe / Segments değerlerini düşük tuttun. Ama tüm dörtgenler açığa çıktı, neresi yumuşak derseniz. TurboSmooth yardıma yetişecektir. Önce Noise ile formu bozun. Strength ile hangi eksende / ne kadar bozulacağını belirleyin. Scale, Noise’in büyüklüğünü belirler. Etki miktarlarını nesnenin oranlarına göre belirleyin. Unutmamanız gereken doğada hiç bir şekil düz ve pürüzsüz değildir.  Bu prensipten yola çıkarak gerek model, gerekse kaplamalarda küçük modifikasyonlar ile inandırıcılık seviyesi yüksek 3B resimler elde etmeniz mümkün.
Damarı modellemeye başlamadan önce süreci hızlandıracak tavsiyede bulunacağım. Itoo Software’in (itoosoft.com) Clone isimli bedava eklentisi. Web sayfası aracılığı ile indirdikten sonra kullandığınız 3DS MAX sürümüne göre kurulumunu kolayca yapabilirsiniz. Ne işe yaradığına gelince, Array (Tools / Array) komutundan farklı değil ama tüm parametreleri Modifier içinde saklayıp sonradan değiştirmeye olanak vermesi çok pratik. Yani istediğiniz zaman kararınızı değiştirip sonucunu anında görebilir hatta parametreleri canlandırabilirsiniz.
Önce damar çeperinin ilk tuğlasını modelleyelim.

Badem / çekirdek arası bir formda olacak. Box’tan yola çıkarak, noktaları çekiştirerek modellemeyi tercih ettim. Sphere ya da benzer başka bir primitif nesneden yola çıkarak ta modelleyebilirsiniz. Modelleme esnasında yüzey sayısını olabildiğince düşük tutmaya gayret edin. Çünkü az sonra çoğaltarak sayısını arttıracağız. Modelleme sonrası (sol görünümü baz alarak modellediğinizi varsayıyorum) nesnenin eksenini biraz açığa (sağa ya da sola) kaydırın. Böylece damarın yarıçapını belirlemiş oldunuz. Modifier listesinden Clone’u seçerek nesneye uygulayın. Number of Clones değerini 10-15 birim arttırın. Ne kadar gerektiğini az sonra deneyerek göreceksiniz. Rotate bölümünden Y değerini arttırın (Modellerken farklı bakış açısını referans aldı iseniz diğer açıları deneyin). Buraya girdiğimiz sayı kopyalar arasındaki mesafeyi ayarlamakta. Arttırıp sonucunu anında görebilirsiniz. Benim oranlarıma göre göre on iki (12) kopya ve otuzar (30) derecelik açı aralığı yeterli geldi.

Damarın ilk halkasını elde etmiş oldunuz. Modifier listesinden seçerek tekrar Clone uygulayın. Kopya sayısını arttırın. Displacement Y = -150, Rotate Y = -22,5 girerek kendi oranlarıma göre halkayı ileri doğru çoğaltarak damar görünümü kazandırdım.

Sahnenize uygun değerleri deneyerek bulmanız gerekiyor. Böylece düz damarı modellemiş oldunuz, sıra geldi simit haline getirmeye. Nesne boyutlarınızı referans alarak, üst görünümde çember (Circle) oluşturun. Benim çemberin çapı 1500 birim oldu. Damar nesnesini seçin. Modifier listesinden Path Deform’u (SpaceWarp olmayanı) seçerek uygulayın. Önce Pick Path’i sonra çemberi tıklayın. Eğer etki etmedi ise Path Deform Axis’i değiştirin (mesela Y). Damar çemberi tamamlamak için kısa ya da uzun gelmiş olabilir. Çözüm için iki alternatifiniz var. Path Deform / Stretch değeri ile oynayabilir ya da ikinci Clone Modifier’ının kopya sayısını değiştirebilirsiniz. Gördüğünüz gibi oldukça esnek bir damar elde ettiniz. Çember yerine kendi çizeceğiniz serbest eğrileri de kullanabilirsiniz. Tercih sizin. Damarın düşük polygonlu yapısından rahatsız oluyor iseniz TurboSmooth imdadınıza yetişecektir. Damarın içyapısını test etmek için canlandırma aşamasına geçip kamerayı oluşturduktan sonra içinde şöyle bir gezinebilirsiniz. Modellemeyi tamamladık. Parçacık etkisini canlandırma aşamasında uygulayacağımız için malzeme aşaması ile devam ediyoruz.
MALZEME
3DS MAX‘nin malzeme düzenleyicisi ile çalışırken, hali hazırdaki kaplamaları karıştırarak istediğimi elde etmeye çalışmak ayrı keyif veriyor. Özellikle 2011 sürümü ile birlikte ana yapıya dâhil edilen şematik malzeme düzenleyicisi ile bu iş iyice kolaylaştı. Devamlı elinizin altında bulunan araç ve kaplamaları daha iyi tanımanıza da yardımı ediyor. Bu yüzden tavsiyem, zaman ayırabildiğiniz projelerde üreteceğiniz malzemeler üzerinde etüt yapın. Falloff, Noise ve Cellular’i iç içe kullanarak kendinizi bile hayretler içinde bırakacak dokular oluşturmak mümkün. Hazır kütüphanelerden sürükle bırak ile sahnenizi donatmak her ne kadar hızlı çözüm olsa da, sizi tembelliğe alıştırabilir.
Damar içi sahnesi için altı üstü iki tane malzemeye ihtiyacımız var. Bu da malzeme üzerinde etüt yapabileceğiniz anlamına geliyor. İlk olarak damar dokusu ile başlayalım.

Standart malzemeden, Oren-Nayar Blinn tipini seçin. Diffuse Color rengini 172, 67, 18 olarak ayarlayın. Diffuse Color Map’a Falloff atayın. Side Color’ı 232, 22, 18 olarak ayarlayın. Front Map’e Cellular atayın. Cellular Map parametrelerini ayarlayalım. Cell Color’ı 108, 18, 6 girin. Variation değerine 9,3 girin. Divison Colors’ı 168, 21, 21 ve 110, 68, 68 olarak girin. Cell Characteristics bölümünden, tipi Circular seçin. Size değerine 29,6 / Spread değerine 0,6 / Bump Smoothing değerine 0,3 girin. Thresholds / Mid değerine de 0,3 girin. Output / Amount değerine 1,3 / RGB Offset değerine 0,08 girin. Böylece rengini ayarladık, ana malzeme ayarlarına geri dönün. Specular Map’e Falloff atayın. Tipi Shadow / Light olarak değiştirin. Shadow Color’ı 199, 95, 0 girin. Lit Color’a tam beyaz girin. Mix Curve’ü resimdeki gibi ayarlayın.

Ana malzeme ayarlarına geri dönün. Glossiness, Specular ve Bump Map’e az önce Diffuse Color / Falloff içinde ayarladığımız Cellular Map’i Instance olarak kopyalayacağız. Bunu ister Material / Map Navigator’ü açarak sürükle bırak ile ya da üzerine sağ tık ve Copy / Paste Instance komutu ile yapabilirsiniz. Glossiness ve Specular etki değerlerini 30 , Bump değerini 50 olarak girin. Self Illumination Map’e Falloff atayın. Front Color’ı 88, 49, 17 girin. Side Color’ı 255, 230, 155 girin. Mix Curve’ü resimdeki gibi ayarlayın.

Böylece damar malzemesini tamamlamış olduk.
Sıra geldi alyuvar malzemesine.

Yeni / boş bir malzeme kutucuğu seçin. Tipi Oren-Nayar Blinn olarak seçin. Diffuse Map’e Falloff atayın. Falloff ayarlarından Front rengini 121, 68, 41 / Side rengini 194, 65, 20 girin. Ana malzeme ayarlarına geri dönün. Glossiness Map’e Falloff atayın. Renkleri değiştirmeden Mix Curve’ü resimdeki gibi ayarlayın.

Üst kademeye geri dönün ve etki miktarını 75 olarak değiştirin. Specular Level Map’e Falloff atayın. Renklerini değiştirmeden Mix Curve’ü resimdeki gibi ayarlayın.

Üst kademeye geri dönün ve etki miktarını 40 olarak değiştirin. Self Illumination Map’e Falloff atayın. Front rengini 102, 53, 5 / Side rengini 255, 114, 154 girin. Üst kademeye geri dönün. Bump Map’e Noise atayın. Coordinates / Source’u World XYZ seçin. Böylece alyuvarların dokuları hareketli gibi görünecek. Size değerini sahnenize oranlayarak belirleyin. Ben on üç (13) olarak girdim. Üst kademeye geri dönün. Reflection Map’e Falloff atayın. Tipi Fresnel olarak değiştirin. Front rengini siyah bırakın, Side rengini 255, 182, 182 girin. Output / Output Amount’u 0,6 girin. Alyuvar malzemesini de tamamlamış olduk.

AYDINLATMA
Mikro boyuttaki görüntüleri bilgisayar ortamında gerçekleştirmenin en zor yanlarından biri aydınlatma olsa gerek. Özellikle damarın kapalı ve yarı geçirgen olduğunu düşünürsek hızlı sonuç almak iyice zorlaşıyor. Render süresini abartmadan orta şekerli aydınlatma için iki ışık öneriyorum.

Bir tanesi kamera ile aynı konumda diğeri ise (kameraya göre) ön / sol üstte duracak. Kamera ile aynı konumda olan ışığın şiddetini 0,2 / rengini 255, 210, 210 olarak ayarlayın. Advanced Effects / Ambient Only’i işaretleyin. Far Attenuation bölümünden Use / Show’u işaretleyin. Start / End değerlerine damarı bir kısmını kapsayacak şekilde ayarlayın. Sahnemdeki değerler 200 / 800. Bu ışık damar içine hoş ve loş görünüm verecek. Sağ üstteki ışığın şiddetini 0,4 / rengini 254, 247, 198 girin. Soften Diffuse Edge değerini 100 girin. Son olarak ikisini de kameraya bağlamayı unutmayın. Böylece ışıklar kamera ile birlikte hareket edecek. Işık ayarlarını tamamlamış olduk. Gölgesiz nasıl olacak demeyin. Gölge etkisini, Post Process aşamasında Ambient Occlusion Pass‘ten yararlanarak kazandıracağız. O yüzden ham Render’ı zorlamaya gerek yok.
CANLANDIRMA
Damarı simit şeklinde modellediğimiz için kendini tekrarlayan hareket yapacağız. Önce kare sayısını üç yüze (300) çıkarın. Kamera çember boyunca (yani dairesel yolda) hareket edecek ve kendi Z ekseninde (Roll / Yuvarlanma hareketi) tur atacak. Parçacıklar yani alyuvarlar, yolculuğu esnasında kameranın çevresinden geçip kaybolacaklar. Kamera hareketini Path Constraint ile verelim. Create / Cameras / Free Camera ile kamerayı oluşturun. Kamera seçili iken üstteki menüden,  Animation / Position Controllers / Path Constraint’i tıklayın. Hemen ardından damara şekil vermek için oluşturduğunuz Circle’ı tıklayın. Kamerayı çembere bağlamış oldunuz. Varsayılan olarak kamera, aktif zaman aralığında çember üzerinde hareket edecektir. Sağ panel otomatik olarak Motion paneline geçecek. Kameranın yönünü düzeltmek için Path Parameters altındaki Follow, Axis Z ve Flip’i işaretleyin. Damarın içinde iken yukarısının hangi yön olduğu önemli değil ama yine de düzeltmek isterseniz kamerayı yerel Z ekseninde 90 derece çevirebilirsiniz. Kamera hareketini tamamlamış olduk. Dilerseniz yerel Z ekseninde tam bir tur atmasını sağlayarak hareketi güzelleştirebilirsiniz.
ALYUVARLAR (PARÇACIKLAR)
Parçacıklar sahnemizin en önemli bileşenleri. O yüzden özen göstermemiz gerekiyor. Parçacık sistemi tercihini, hareket tekrarı kolay olmasından ötürü (yazının son paragrafını kontrol edebilirsiniz) PArray’den yana kullanıyorum. Ama önce PArray’in kaynak nesneye olan ihtiyacını karşılamamız gerek. Create / Shapes / Donut ile çapı damardan büyük olmayan iç içe çember nesnesi oluşturun. İç çemberin çapını da, parçacıkların kameranın içinden geçmeyecek miktara göre belirleyin. Animation / Position Controllers / Position Constraint komutu ile kameranın yoluna bağlayın. Kamera ile birlikte hareket edecektir. Hareketini iptal etmek için Animation / Delete Selected Animation ile hareketi silin. Çemberin ilk noktasında sabit duracaktır. Modifier listesinden seçerek Edit Mesh atayın. Böylece yüzey oluşturmuş oldunuz. Az sonra bu yüzeylerden parçacıklar çıkacak. PArray’i seçin Object Based Emitter / Pick Object ile iç içe çember nesnesini seçin. Zaman sürgüsünü kaydırarak parçacıkların çıkışını teyit edebilirsiniz. Parçacıklar damardan bağımsız hareket ediyorlar. Damar boyunca hareketlerini sağlayalım. Create / SpaceWarps / Forces / Path Follow oluşturun. Pick Shape Object ile kameranın yolunu seçin. Path Follow ayarlarıyla oynamadan önce Bind to Space Warp komutu yardımıyla PArray ile ilişkilendirip yaptığınız değişikliklerin sonucunu gerçek zamanlı görebilirsiniz. Travel Time parçacıkların seyahat süresini belirtir (300). Variation yolculuk süresini farklılaştırır (50). Last Frame bittiği kareyi belirler (400). Along Offset Splines ile hareket esnasında kesit kalınlığını korur. Diverge parçacıkların yayılarak hareket etmesini sağlar. Stream Taper yayılmanın miktarını (10), Variation farklılığını belirler (50). Stream Swirl parçacıkların burgu hareketi yapmasını sağlar (5), Variation ise farklılık miktarını belirler (40). Counterclockwise ile burgu yönünü saat yönünün aksi olarak belirlersiniz. Takip yolu parametrelerini tamamladık. Şimdi gelelim PArray parametrelerine. PArray’i seçin. Viewport Display tipini Mesh olarak seçin ve Percentage’e 100 girin. Böylece tüm parçacıkları gerçek boyutlarında görebileceğiz. Particle Generation bölümüne geçin. Rate 1 girin. Speed ve Divergence değerlerini de sıfırlayın. Çünkü bunları SpaceWarp kontrol edecek. Emit Stop 150 girin. Display Until 400, Life 150, Variation’a 10 girin. Particle Type bölümünden Instanced Geometry’i işaretleyin ve Pick Object ile alyuvar nesnesini seçin. Sistemdeki her bir parçacık alyuvar halini alacaktır. Dikkat etmeniz gereken alyuvarın yüzey sayısını düşük tutmanız gerektiği. Aksi durumda sahneniz çalışılmayacak derecede ağırlaşabilir. Particle Size’a dönün. Size değerini sahne oranlarınıza göre belirleyin. Benim verdiğim değer 0,7. Variation ile alyuvarların boyutlarını farklılaştırırsınız (22). Grow / Fade For ile girdiğiniz kare boyunca büyüyüp küçülmesini sağlarsınız. İkisini de 10 girdim. Böylece parçacıkların pat diye belirip kaybolmasının önüne geçmiş olursunuz. Temel parçacık parametrelerini tamamladık. Birazda devinim kazandıralım. Rotation and Collision bölümünü açın. Spin Time (30) parçacıkların kendi etrafında dönüş süresini belirler, Variation bu değeri farklılaştırır (20). Phase / Variation, parçacıkların dönüşe başlama açısının farklı olmasını sağlar (20). Parçacık hareketini de tamamlamış olduk.
Eğer buraya kadar bir sorun yaşamadan geldiyseniz, Play’e bastığınızda çember boyunca hareket eden ve kendi etrafında dönen, yolun yarısında kameranın üzerine yağıp kaybolan alyuvarlar görmeniz gerekiyor. İyi seyirler J.
RENDER ve POST PROCESS
Render konusunda özel ayara gerek yok. Render için Scanline Render motoru ziyadesi ile işinizi görecektir. Fakat Pass’ler için Mental Ray’in özelliklerini kullanacağımız ve çıktıyı bir kerede alarak süreci uzatmamak için Mental Ray’i seçin. Ham Render dışında gereken Pass’ler, 1- Mikrobiyolojik görsellerin vazgeçilmezi, alan derinliği etkisi için Z-Depth. 2- Detay ve inandırıcılığı arttırmak için Ambient Occlusion.

Mental Ray’e geçecek olmamız ek ayar ya da değişiklik gerektirmeyecek. Çünkü kullandığımız tüm özellikler Mental Ray ile yüzde yüz uyumlu.
Z-DEPTH PASS
Z-Depth ile ilgili en önemli husus, barındırdığı tonların farklı derinlik miktarlarına karşılık geldiğidir. Z-Depth kanalına uygulanacak Antialias derinlik etkisini olumsuz yönde etkileyecek. Bu yüzden, Render Setup / Render Elements’ten Z Depth ekledikten sonra Enable Filtering seçeneğini kapamayı unutmayın.
Render Elements ile Alias’lı çıktı alamaz iseniz, Rendering / Effects‘i kullanmanızı tavsiye ederim. File Output efektinin seçenekleri arasında yer alan Depth ile Antialias uygulamadan elde etmek mümkün.
AMBIENT OCCLUSION PASS
Render Elements seçeneklerinden mr Shader Elements’i ekleyin. Shader kutucuğuna tıklayarak, açılan pencereden Ambient / Reflective Occlusion’u seçin. Ardından atadığınız kaplamayı sürükle bırak ile malzeme düzenleyicisine taşıyın. Tek değiştireceğimiz ayar Max Distance. Miktarını sahnenizin boyutların göre belirleyin. Benim sahne boyutlarımda 60 birim yeterli geldi.
Mental Ray’i seçtiğiniz zaman varsayılan olarak açık gelecek Final Gather’ı kapayın. Ayrıca Spatial Contrast değerini 0,03 civarında tutarsanız, detaylarda sorun yaşamazsınız. Ek olarak keskin kenarlar için, Filter tipini Lanczos olarak değiştirin. Render’ı başlatmadan önce dosya yollarını doğru verdiğinizden emin olun. Sunduğu kayıpsız sıkıştırma ve renk derinlik imkânlarından dolayı dosya tipi olarak PNG’yi tercih ediyorum. Post Process’e aşamasında yüksek çözünürlüklü çıktılarda oluşabilecek Banding etkisinin önüne geçmek için Files / Setup ile açılan dosya tipi özelliklerinden renk derinliğini RGB 48 bit seçmenizi tavsiye ederim.

Aynı zamanda Post Process yazılımında da projenizi yüksek renk derinliğinde oluşturmanız ve çalışmanız gerekmektedir.
SON SÖZ
Anlatıma burada nokta koyarak Post Process aşamasının ileriki sayılara erteliyorum. Tabi biraz daha tavsiye yazmadan bırakmam. AO Pass’i Multiply modunda kullanmak ilk aklıma gelen. Z-Depth Pass’i alan derinliğinde kullanmanın yanı sıra bir miktar Blur vererek Multiply modunda kompozisyona ekleyerek derinlik hissini arttırabilirsiniz. Alan derinliği etkisi için ise, bugüne kadar gördüğüm en kaliteli eklenti olan Frischluft firmasının Lenscare ürününü tavsiye ediyorum. En az hata ile 3B alan derinliğine benzer etkiyi yakalamak için birebir. Ayrıca Z-Depth Pass’i kullanarak renk kanallarını bir miktar kaydırıp Chromatic Aberration (kandamar81.jpg) etkisi verirseniz tadından yenmez.
Damar yapısını düz kullanacak (yandan kesiti görecek şekilde) iseniz ve parçacık hareketini kesintisiz olarak tekrarlanmasını istiyorsanız scriptspot.com sitesinde bulabileceğiniz Particle Looper isimli script sizi çok mutlu edecek. Super Spray, Blizzard, PArray ve PCloud ile sorunsuz çalışan bu script sayesinde parçacıkları görüntüden çıkarmadan hareketlerini tekrarlamasını sağlayabilirsiniz. Kullanımına ilişkin tüyoları kendi sayfasında bulacaksınız.
Yine bir yazının sonuna geldik. Umarım sizin içinde doyurucu ve faydalı bir konu olmuştur. Bilgisayar grafiği ile ilgili aklınıza gelen her konuda benimle yazışmaya çekinmeyin (osmansafi@gmail.com). Bir sonraki sayıda görüşmek üzere hoşça kalın. 

Hiç yorum yok:

Yorum Gönder