26 Mayıs 2022 Perşembe

Motion Tracking Notları - 03 (Plain Tracking&Camera Tracking)

Camera Tracking Test video
Plane Tracking

Daha önce bahsetmiştik, tracking yaparken amacımız kaydettiğimiz görüntüdeki uzay içerisindeki herhangi bir hareketi sanal ortamda yeniden yaratmak. Bu bir kamera hareketi, bir obje hareketi veya düzlemin hareketi olabilir. Farklı sebeplerden ötürü farklı nesnelerin trackleyebiliriz. Bunlardan belki de en kolayı Plane Tracking.  Bu yolla görüntüde yer alan herhangi bir düzlemi trackleyebilir hatta bu düzlemi maske olarak kullanıp ilginç işler yapabiliriz. 


     Plane Tracking için önce dört nokta seçilir ve sonrasında solda yer alan Solve menüsünden Plane Track sekmesinin altından Create Plane Track seçilir ve ekranda dört köşeli bir dikdörtgen belirir, bu bizim düzlemimizi tanımlamak için kullanacağımız alan. Düzlemin dört köşesi bizim seçtiğimiz Tracking Pointlere taşınır(Yeni versiyonlarda noktaları direkt seçerek taşıyabiliyoruz fakat eski versiyonlarda bu RMB ile veya SHIFT+RMB ile yapılıyor), sonrasında görüntüyü önceki gibi trackliyoruz.


     Tracklediğimiz bu düzleme herhangi bir görsel de koyabiliriz. N-->Track-->Plane Track, sonrasında başka bir pencerede Image Editor açılarak herhangi bir resim tanıtılır ve Plane Track sekmesi altında yer alan Image sekmesi aktif hale getirilir. bu şekilde en basit haliyle bir görseli düzlem üzerine yerleştirebiliriz fakat bu şekilde yerleştirdiğimizde görsel üzerinde herhangi bir kontrolümüz yok, program kafasına göre resmi düzleme döşüyor.

Camera Tracking

      Camera Tracking yaparken ulaşmaya çalıştığımız sonuç daha önce de bahsettiğimiz gibi yapılmış olan kayıt üzerinden kameranın hareketini 3D ortamında yeniden yaratmak. Görüntü üzerinde işaretlediğimiz Tracking Pointlerin kare kare ilerlerken birbirine göre konumları ve açıları çözümlenerek kameranın o süre boyunca yaptığı hareket yeniden yaratılmış olur.

     Camera Tracking modu için Motion Model olarak Affine Modelini tercih etmek daha doğru olacaktır, özellikle kamera hareketi sebebiyle oluşacak Motion Blur veya lens distorsiyonları yüzünden diğer modeller istediğimiz sonucu bize veremeyebilirler. Bu noktada bir de Normalize seçeneği aktif hale getirilmeli, bunun altında yatan sebep ise kamera hareketi boyunca değişme ihtimali olan Exposure değerleri sebebiyle noktayı kaybetmeden daha düzgün bir biçimde tracklemek.

     Sonradan oluşacak olan karesel ortalama hatayı en düşük seviyede tutmak adına: soldaki menüde Tracking Settings Extra--> Correlation katsayısını olabildiğince yüksek değerlerde tutmakta yarar var. Bu değer bire ne kadar yakın olursa o kadar kusursuz bir iş çıkar ortaya. 0.85-0.9 aralığı birçok açıdan ideal değerler sayılabilir.

     Camera Tracking'i düzgün bir biçimde yapmak için tüm görüntü boyunca kesintisiz tracklenebilir olan en az sekiz noktaya ihtiyacımız var. Bu noktalar sadece 2D görüntüde değil aynı zamanda kayıt aldığımız ortamda 3D olarak da homojen olarak dağılmış olmalıdır.

Soldaki Solve menüsünde Camera veya Object Tracking yapıyorsak Keyframe sekmesi aktif hale getirilmelidir. En az sekiz nokta oluşturulup Solve-->Solve Camera motion dendikten sonra ekran sağ üst köşesinde karesel ortalama hatamız program tarafından yazdırılacaktır. 1.00'ın altındaki değerler üzerinde çalışılabilir güzel sonuçlardır. Camera Solve sonrası Kamera hareketleri çözümlendikten sonra Graph ekranına aşağıdaki gibi mavi bir çizgi halinde kamera hareketi düşecektir. Bu çizgi sıfıra ne kadar yakın olursa o kadar doğru bir çözümleme yapmışız demektir.


Graph kısmında sorunlu noktalar tespit edilerek çıkartılabilir. Öncelikle Clip Display'den Info ve 3D Markers'ı seçeneklerini aktif hale getirmekte yarar var. Böylece ekranda seçili noktaların karesel ortalama hatalarını noktalar üzerinde görebileceğiz. 3D Markers seçeneği ise kamera çözümlemesi yapıldıktan sonra oluşturulan modele göre noktalara sanal bir nokta tanımlar, bu sonradan tanımlanan nokta yeşil nokta ile ifade edilen noktadır. Bunu şöyle yorumlamak gerekiyor, bu yeşil noktalar işaretlediğimiz noktalara ne kadar yakınsa sonuç o kadar güvenilirdir.

     Herhangi bir nokta seçili haldeyken Info kısmında yazan Average değeri noktanın kayıt boyunca hesaplanan yerinden ne kadar uzakta olduğunun ortalama değerini ifade eder.

     Eğer GoPro gibi distorsiyonun çok fazla olduğu bir aletle çekim yapılmışsa bu durumda distorsiyonu da refine etmek gerekir. Distorsiyon refine edildikten sonra Clip Display menüsünden Render Undistorted aktif hale getirilirse ekrana görüntünün distorsiyondan arındırılmış haldeki görüntüsü düser. Baz durumlarda görüntünün optik merkezi de kaymış halde olabiliyor. eğer karesel hata ortalaması yüksekse bu hatayı da solve camera motion derken göz önünde bulundurmakta yarar var.

     Eğer bu düzeltmelerin tamamı yapılmasına rağmen hala yüksek hataya sahip noktalar varsa ve bir şekilde bu noktaları kullanmak durumundaysak hatanın yüsek olduğu noktaların hesap ağırlıklarını azaltabiliriz. N-->Track-->Weight kısmında  nokta ağırlığı azaltılıp tekrardan çözümle yapılarak karesel hata kontrol edilir. Kabul edilebilir bir dengeleme için elde ettiğimiz sonucun 0.3'ün altında olması gerekmektedir.

     Tüm bunları yaptık ve hatalarımızı düzelttikten sonra sıra geldi bu verileri 3D Viewporta taşımaya. Bunun için T-->Solve-->Setup Tracking Scene diyoruz ve bunun yanında başka oryantasyon meselelerini halletmek istersek yine bu kısımdaki Orientation bölümünden yaralanabiliriz. Eğer zemini oturtmak istersek zeminde olduğunu düşündüğümüz herhangi bir üç noktayı seçerek Floor'u tıklamamız yeterli. Sonrasnda 3D Viewporta gelecek olan zemini ölçekleyebilir, rotate edebilir ve bu şekilde zeminle daha düzgün bir oturma sağlayacak şekilde konumlandırabiliriz.

Adding 3D Objects to Our Footage

     Tüm bu aşamaları geçebildiyseniz artık başarıyla çektiğiniz görüntüye 3D objeler ekleyebilirsiniz demek oluyor bu. Bu notları araştırır hale geldiyseniz üç aşağı beş yukarı siz de bayağı bir şey öğrenmişsinizdir modelleme konularında, ben oralara hiç girmeden birkaç şeyden bahsetmek istiyorum. Öncelikli konu gölge konusu. Bırakın 3D'yi 2D resimler bile gölge kritik, özellike obje ile zeminin birleşim yerlerinde. Bunu öğrenmek benim için biraz zor oldu ama temelde yapacağımız şey şu. Render motoru olarak Cycles'i kullanmamız gerekiyor, Evee'de henüz Shadow Catcher özelliği yok. Sonrasında gölgenin düşmesini istediğimiz bir zemin ekleyip bu zeminin Object Properties kısmına geliyoruz, Object Properties-->Visibility-->Shadow Catcher modunu aktif hale getirip sonrasında Render Properties-->Film-->Transparent aktif hale getirerek render alırken boş olan kısımların transparan özellikte olmasını sağlıyoruz. Bunu yaptıktan sonra sahneye çekimdeki ışığı taklit edecek bir ışık ekleyip gölgenin tadını çıkartabilirsiniz.




25 Mayıs 2022 Çarşamba

Motion Tracking Notları - 03 (2D Stabilization, Compositing&Join Tracks)


     Kaldığımız yerden gevezeliğe devam, buraya kadar olan bölümde hangi tür tracking pointleri nerelerde kullanmamız gerektiğine dair bir giriş yapmıştık, bugün son modelimiz olan Plane Tracking Motion Model'i ele alacağız. Bu yazılara dair tekrardan küçük bir hatırlatma yapmak istiyorum, bu notları lazım olduğunda daha kolay bir biçimde ulaşabilmek adına sizlerden çok kendime yazıyorum. Bu da benim için bir macera ve zamanla bu maceranın nereye evrildiğini daha iyi gözlemleyebilmek için küçük çakıl taşları bırakıyorum zamana.

     Bir sonraki Motion Modelimiz olan Plain Tracking'e geçmeden önce buraya kadar öğrendiklerimiz doğrultusunda birkaç şeyden bahsetmekte yarar var. Daha önce ekranın sağ tarafında "N" tuşu ile açtığımız kısımdaki Track menüsünde aşağıdaki biçimde tracking pointimizi görebildiğimizden bahsetmiştik, noktaya ait görselin altında RGB ve B/W sekmelerinin şöyle bir işlevi var, bazı durumlarda farklı renk bantlarında veya siyah beyaz görüntü üzerinde tracking yapmak daha verimli sonuçlar ortaya çıkartabilir, bu durumda bu kısımlardan istenilen renk bandını aktif hale getirerek tracklemeyi yapabilirsiniz.

Obsructions/Join Tracks

     Bazı durumlar tracklediğimiz noktalar bir engel tarafından bölünebilir veya kameranın görüş alanından çıkıp tekrar girebilir. Bu durumda eğer o noktayı kullanmak durumundaysak şöyle garip  yollar izleyebiliriz. Bu yollardan ilki tracking pointleri birleştirme.


     Yukarıdaki sahnede işaretlediğimiz tracking point belli bir noktadan sonra dubanın arkasında kalıyor ve sorasında tekrardan görüş açımıza giriyor. Bu durumda noktayı tek bir nokta gibi ele almak istersek öncelikle istediğimiz noktaya bir tracking point ekleyip (CTRL+LMB) görüş açımızdan çıktığı son ana kadar trackliyoruz, ardından nokta görüş açımızdan çıkıyor ve bir süre sonra tekrar beliriyor, bu durumda nokta artık iyice belirgin hale geldiği bir sahnede aynı noktaya ikinci bir tracking point ekliyoruz (CTRL+LMB), önce geriye doğru görüş açımıza ilk girdiği ana kadar trackliyoruz, sonrasında tekrardan ileriye doğru kaydın sonuna kadar devam ediyoruz tracklemeye. Bu işlemi neden nokta görünür olduktan hemen sonra tracking point ekleyip kaydın sonuna kadar yapmadık sorusu aklınıza gelebilir. Bunun sebebi paralaks, önde ve arkada olan yüzeylerin kesişimlerini yazılım tracking noktası olarak alığ sonra saçma sapan işler yapabiliyor, kendimizi güvenli sahada tutmak için önce noktanın tamamen açığa çıkmasını bekledik, önce geriye sonrasında tam güç ileriye doğru trackleme işlemini tamamladık. Şimdi elimizde iki nokta var, bundan sonra yapılacak tek şey noktaları birleştirmek, bunun için birleştirilecek olan iki nokta seçili haldeyken sol taraftaki menüden(T) Track bölümünde Track sekmesinin altında Join Tracks sekmesine tıklayarak işimizi tamamlıyoruz.
     İkinci çözüm yolu geçici bir süre ana nokta yerine onun yakınındaki bir noktayı tracklemek. Bunun için yine önceki gibi noktayı engelin arkasında kalacağı bir noktaya kadar trackliyoruz, sonrasında "GG" yaparak noktayı tüm bu geçiş boyunca taklit edecek ve görüşten çıkmayacak bir yere taşıyarak asıl nokta yerine bu yardımcı noktayı trackliyoruz bir süre, sonra nokta tekrar görüş açısına girdiğinde de tekrar "GG" ile ana noktaya taşıyor ve kaldığımız yerden tracklemeye devam ediyoruz. "GG" ile noktayı taşıdımızda noktanın yeri sabit kalırken sadece tracklemek için noktaya başka bir nokta sağlıyoruz. Bu yardımcı nokta ana noktaya ne kadar yakın ve aynı düzlemde olursa o kadar gerçeğe yakın bir trackleme yapmış oluruz.

Stabilization(2D Screen Stabilization)

     Plain Tracking'e geçmeden önce son bir başlıktan daha bahsetmekte yarar var, buraya kadar öğrendiklerimizle yapabileceğimiz çılgınca bir şey var, o da ekran stabilizasyonu. Farklı programlarda otomatik olarak yapılabilen bir şey olsa da görüntüye elle müdahale edebilmenin avantajları çok daha fazla. Bunun için önce noktalarımızı trackliyoruz. Sonrasında "N" ile aktif hale getirdiğimiz sağ taraftaki menüde yer alan Stabilization kısmını açıyoruz.  Görüntüyü stabilize etmek için bu kısımda 2D Stabilization aktif hale getirilir. 2D stabilization aktif hale getirildiğinde aşağıdaki menüler de aktif hale gelecek. Burada yapacağımız şey tracklediğimiz noktalar yardımıyla görüntüdeki sağa sola, yukarı aşağı titreşimleri veya kareketleri gidermek. Menünün en üst kısmındaki Anchor Frame programın belli bir kareyi referans alarak stabilizasyon yapmasına yardımcı oluyor. Onun altındaki Rotation sekmesi aktif hale getirilirse kameranın saat yönü veya tersine yaptığı gönme hareketleri, Scale aktif hale getirilirse de yakınlaşma ve uzaklaşma sonucu oluşan farklar giderilebiliyor. Hemen bunun altında yer alan Tracks for Location bölümü en kritik bölüm, stabilizasyon için kullanacağımız noktaları bu kısım yardımıyla tanımlayacağız, ekranda sabitleme için kullanacağımız noktalar seçili haldeyken buradaki "+" işaretine tıkladığımızda stabilizasyon için düşündüğümüz noktalar tanımlanmış olacak. Eğer Autoscale seçeneği aktif hale getirilirse program görüntüyü tamamen sabitlemeye yetecek kadar küçültüp kendisi otomatik stabilizasyon yapıyor. Son olarak bu yaptığımız düzenlemeler doğrultusunda sabitlenmiş görüntüyü viewportta görmek istersek eğer ekranın sağ üst kısmında yer alan Clip Display-->Show Stable demek gerekiyor.


Stabilize Edilmiş Görüntüyü Renderlamak

     Yukarıdaki işlemleri yapıp stabilize ettiğiniz görüntü şimdilik sadece sizin viewportunuzda, eğer bu görüntüyü bu şekilde render almak isterseniz Compositing modülününü kullanacaksınız. En basit modellerin renderını alırken bile önce yaptıklarımız compositinge referanslanıp compositing üzerinden render görüntüsü oluşturuluyor. Şimdi adım adım yapmamız gerekenler şöyle, Compositing bölümüne gelinir ve Use Nodes denilerek node sistemi aktif hale getirilir. Önce halihazırdaki render layer nodunu uçuruyoruz, bu bölümde buna ihtiyacımız yok, bir adet Image nodu ekleyip stabilize edeceğimiz görüntüyü tanımlıyoruz. Başlangıç ve bitiş framelerini tanımladıktan sonra stabilizayon için Stabilize 2D nodu ekleyip Image soketlerini birbirine bağlıyoruz. Stabilize 2D nodu az önce yaptığımız stabilizasyon işlemlerini tanıtmak için kullandığımız node. Son olarak da Alpha Over nodunu ekliyoruz, bunun sebebi görüntüyü stabilize ederken ekranda dönen görüntü sebebiyle oluşan boşlukları herhangi bir renk vs ile doldurmaki aşağıdaki şekilde Image soketlerini birbirine bağlayıp composite noduna bağlantıyı yaparsak render animation dediğimizde artık stabilize edilmiş görüntünün renderını alabiliyoruz. Alpha Over nodu için şöyle güzel bir tanımlaya yapılmış; bu node görüntü layerlarını birbirinin üzerine koyabilmemizi sağlıyor. (Üst soket arka plan için, alt soket ön plan için. Ön taraftaki görselin alpha değeri sıfırın üzerinde olduğu sürece alttaki katmanın üzerinde yer alır)

***Not: Videoyu export ederken video formatı olarak FFmpeg Video olarak ve Encding için MPEG-4 seçmekte yarar var.

***Not:Compositing ekranında üst sağda yer alan Backdrop seçeneği aktif hale getirilirse render alacağınız görüntüler compositinge ekranında arka plana izdüşürülür. Bunun için CTRL+SHIFT+RMB ile bir node seçilir ve Viewer nodu kullanılarak istenilen kısma ait görüntü arkaplanda görünür hale getirilir. Bu ekranda V zoom in, ALT+V Zoom out yapar.



17 Mayıs 2022 Salı

Motion Tracking Notları - 02 (Motion Models)

https://docs.blender.org/manual/en/latest/movie_clip/tracking/index.html
     Şimdi yavaş yavaş tehlikeli sulara geliyoruz, biraz çileli bir yolculuk olacak ama bu kutlu yolun sonunda yapabileceklerimizin sınırı yok, kesinlikle çektiğiniz sıkıntılara değecektir. Yukarıda bir adet tracking noktamızın anatomisini görüyorsunuz, maviyle gösterilen pattern area programın bir videoyu oluşturan kareler boyunca ilerleyere arayacağı ve önceki-sonraki karelerle eşleştireceği dokunun bulunduğu alanı tarif ediyor demiştik, ALT+S ile görünür hale getirebildiğimiz yeşil Search Area ise seçtiğimiz Pattern'in bulunduğu mavi alan için ne kadarlık bir alanda yazılımın arama yapmasına izin verdiğimizin ifadesidir. Kaydettiğimiz videolarda seçtiğimiz kontrol noktaları kamera dolayısıyla hareket ettiği için zaman zaman farklı işaretleme modları yani motion models kullanmamız gerekebilir. Kısaca Motion Modellere bu bölümde değineceğiz. 
https://blender.stackexchange.com/questions/142879/when-should-i-use-different-tracker-motion-models-when-motion-tracking


Location Tracking Modu
     Düşünün ki elinizde bir telefon var ve telefonu dikey biçimde tutmuş duvardaki dokuları videoya kaydediyorsunuz. Kamera ile duvar arasındaki mesafe neredeyse sabit ve kamera açınız da hemen hemen pek değişmiyor. Bu durumda Motion Model olarak Location modunu kullanabiliriz çünkü kamera açımız yani rotation ve mesafemiz değişmiyor
Location&Rotation Tracking Modu
     Yine farz edelim aynı duvarda kayıt yapıyoruz. Mesafemiz aynı fakat bu sefer iki elimizle kullandığımız bir kamera var ve daha önceki gibi sabit biçimde dikey halde durmuyor elimizde, bu sefer saat yönüne veya saat yönünün tersine hareketler yapıyor olalım. Duvardaki seçtiğimiz tuğlalar yukarıdaki görselde birinci ve ikinci hareketleri birlikte yapacaktır. Hem görüntüdeki yeri hem de açısı birlikte değişeceği için böyle durumlarda Location Rotation Tracking modu seçilmelidir, unutmayın hala duvara olan mesafemiz hemen hemen sabit. Bu noktada kameramızın objektif ekseni etrafında ne kadar döndüğünü yani rotasyon verisini üretmek için en az iki tracking point'e ihtiyacımız olacaktır.
Location, Rotation&Scale Modu
     Geldik yine aynı duvarın önüne kayda başladık, bu sefer hem kameramız yukarı-aşağı, sağa-sola hareket halinde, kameramızın açısı sürekli değişiyor ve bu da yetmiyormuş gibi bir de duvara olan mesafemiz değişiyor olsun. Bu durumda yukarıdaki görselde birinci, ikinci ve üçüncü hareketleri yapıyor olacak noktamız. Yani herhangi bir tuğla görüntüde yer değiştirecek, açısı değişecek ve aynı zamanda duvara olan mesafemiz değiştiği için küçülecek ve büyüecektir. Bu durumda Location, Rotation&Scale modu yardımımıza koşuyor.
Affine Tracking Modu
     Bu mod benim en sevdiğim mod, belki mesleki olarak da afin dönüşümlerini sürekli kullandığımız içindir bilemiyorum. Buraya kadar olan modlar hemen hemen 2D olarak düşünülebilecek hareketlerdi. Duvara göre olan konumunuz değişse de duvar dik halde karşınızdaydı. Burada biraz da 3D giriyor işin içine kameramızın hareketine göre veya kullanılan lensin oluşturacağı deformasyonlar sebebiyle seçtiğimiz nokta şekil değiştirebilir. Daire şeklindeki bir nokta mesafe, açı veya görüntüde yer aldığı konum sebebiyle daha eliptik bir hal alabilir, şekli deformasyona uğrayabilir. Bunu biraz kullandıkça çözeceğiz ancak bu durumlarda affine tracking modu hayat kurtarıyor.
Perspective Tracking Modu
     Efsaneye göre Blender'ın en sağlam çalışan Tracking moduymuş Perspective Tracking modu. Okul yıllarında illaki resim öğretmeniniz perspektif çalışması yaptırmıştır. Herhangi bir sahne içerisindeki doğrultular ufuk çizgisi üzerindeki kaçış noktalarına doğru yönelir ve bir noktada kesişir. Bu sadece ressamların işine yarayan bir şey değildir. Bu durum insanoğluna görüntüler üzerinde hesaplamalar, değerlemeler yapma imkanı da tanımıştır. Bunu keşfeden insaoğlu hesaplamaları da korkunç güçlü işlemcilere yükleyince ortaya muhteşem eserler çıkmıştır. Buna belki sonra uzun uzun değiniriz ancak bu durum burada da işimize yarayacak. Eğer sahnemiz içerisinde kamera açısına göre değişen perspektifi gözlemleyebleceğimiz geometrik dokular veya objeler varsa bu mod çok işimize yarayacaktır. Bu modla karo zemindeki karoların birleşimindeki artı işaretine benzeyen dokuyu takip edebileceğiniz gibi bütün bir karoyu da takip edebilirsiniz. Tracking alanınınz ne kadar büyürse tracklemek o kadar zaman tutacağını unutmamakta yarar var.

     




16 Mayıs 2022 Pazartesi

Motion Tracking Notları - 01 (Giriş)

     Sanırım Blender'la alakalı en sevdiğim husus Blender etrafında oluşan ve şekillenen ekosistem. İçerik üreticilerin çoğu aynı zamanda eğitmen gibi çalışıyor, insanlar sadece tüketmiyor bunun yanında farklı seviyelerden bir sürü insan garip garip şeyler üretiyor. Sorun yaşadığım bir noktada internette küçük bir arama sonrasında sayfalarca not, dakikalarca video ve görsel bulabiliyorum. İşin güzel yanı kullanıcıların da çoğu bilgi paylaşımına açık, herhangi bir platformda gerekli başlıklar altına yazacağınız sorununuz büyük ihtimalle cevapsız kalmıyordur. Şu ana kadar yaşadığım sorunları hep daha önceki forum yazışmalarından çözdüm. Umarım Blender komünitesi yoluna bu şekilde devam eder. 
     Birkaç hafta önce ürettiğim modelleri çektiğim videolara ekleme işiyle uğraşırken bir türlü zemini oryante edemedim ve bayağı bir başarısız deneme sonrası bu işi en baştan öğrenmeye kadar verdim. Bu konuda yardımıma CG Matter koştu, böylesine kaliteli Tracking eğitim videolarına ücretsiz ulaşabiliyor olmak hala şaşırtıcı geliyor bana, zamanında Youtube'un henüz bu derece coşkun olmadığı öğrencilik günlerinde yedi sekiz saatlik bir Autocad eğitimine birkaç aylık giderim kadar parayı gömmüştüm. Neyse gelelim Motion Tracking mevzusuna...

Image Sequence Kullanımı
     Motion tracking'e hemen geçmek istesek de öncesinde bazı şeyler yapmamız gerekiyor.  Blender her ne kadar en başarılı Open Source Motion Tracking modülüne sahip olsa da zaman zaman biraz problemli çalışabiliyor. Kaydettiğimiz herhangi bir görüntüyü programda işleyip ardından kaydedip çıktıktan sonra dosyayı bir süre sonra açtığımızda bazen senkronizasyon kayabiliyor veya yapmış olduğunuz ayarlar kaybolabiliyor. Bu sebepten ötürü video dosyası üzerinde çalışmak yerine oluşturulacak Image Sequences üzerinde çalışmak çok daha güvenli sınırlar içerisinde kalmamıza yardımcı oluyor.
     Herhangi bir görüntüyü Image Sequence haline nasıl getirebileceğiniz konusunda yine Blender'ın kendisi size yardımcı oluyor. Öncelikle programı Video Editing modunda açıp Add --> Movie diyerek yaptığımız kaydı Video Sequencer’a ekliyoruz.  Sonradan bize yardımcı olmasını istediğimiz eklenmiş bu videodaki detayları daha belirgin kılmak için sağdaki Render Properties --> Color Managment bölümünden View Transform’u Standart'a moduna getirip,  Look’u duruma göre ayarlıyoruz. (Filmic modunda görüntüdeki detayların belirginliği azalıyor). Bu aşamada videonun audio kısmı ile işimiz yok, LMB --> X ile ses kısmını uçurabilirsiniz. Eğer video başında veya sonunda netleme yaparken oluşan blur veya benim eski kameramdaki gibi stop pauseları varsa bu kısımları da manuel olarak silebilirsiniz.(Video Sequencer üzerinde SHIFT + Left Arrow ve SHIFT + Right Arrow video baş ve sonuna gitmek için kısayollardır)
     Gerekli ayarlamalarımızı yaptıktan sonra Image Sequence'lerimizi export etmek için sağdaki Output Ptoperties’e gelinir. FPS, çözünürlük değerleri kontrol edilir. File Format olarak PNG seçilir(PNG formatı compression’nın nispeten daha az olduğu bir dosya formatı, bu sebepten daha az detay kaybı söz konusu). Compression değeri sıfırlanır. Sonrasında Render Animation denilerek Image Sequencemiz oluşturulur. 

Motion Models
     Biliyorum hemen motion tracking yapmak istiyorsunuz fakat onun öncesinde bilmemiz gereken son bir adım daha var. Motion Tracking işlemini yapıyor olmamızın sebebi kayıt esnasında kameramızın yaptığı hareketleri bizim sanal uzayımızda tekrardan yaratabilmek. Bu hareketler kameramızın yaptığı ileri geri, yukarı aşağı hareketler, farklı açılara doğru yöneltmeler olabilir. Bu gerçekliği tekrardan yaratabilmek için ihtiyacımız olan şeyler Tracking Pointler yani kontrol noktaları.

    Kontrol noktaları yazılımın video boyunca veya video içerisinde bir süre boyunca izleyeceği kontrast farkının veya renk farkının yüksek olduğu noktalardan oluşabilir. Bu tanımladığımız noktaları yazılım her karede bularak sonrasında birbirlerine göre hız ve hareketleri doğrultusunda kamera hareketlerini ve sahneyi çözümlüyor. Kontrol noktalarını elle oluşturabileceğimiz gibi otomatik olarak programın da oluşturmasını sağlayabiliriz, bu konuya sonra değineceğiz. Kontol noktalarının seçiminde zaman yol göstericimiz olacak, biraz tecrübe biraz deneme yanılma usulü ilerleyen bir süreç. İşin güzel yanı da bu, her zaman keşfedilecek, öğrenilecek yeni şeyler var. 
     Yavaş yavaş kafa karıştırıcı kısımlara geliyoruz. Tracking Pointler de kaydettiğimiz görüntülerde hareket halindeler, bazen yukarı aşağı, bazen kameranın açısı değişmesi sebebiyle bazen de uzaklaşma yakınlaşma sebebiyle. Bu duruma bir de işaretlediğimiz Tracking Point'in şekli de eklenince durum biraz karmaşıklaşıyor ancak henüz paniğe kapılmaya gerek yok, bu kısımda daha başarılı bir biçimde tracking yapmak için gerekli olan Motion Modeller'den bahsedeceğiz.


     Blender'ı açtık ve sonrasında sol üst köşeden Movie Clip Editor'ü açtık, ardından ilk aşamada bahsettiğimiz Image Sequence'yi oluşturup Movie Clip Editor modunda açtık. Şu anda bizi yukarı sol ve sağdaki menülerin karşılaması gerekiyor, eğer ekranın sağ ve solunda bu menüler yoksa "T" sol taraftaki, "N" ise sağ taraftaki menülerin hotkeyleri. Sol tarafta yer alan menüde Clip sekmesinin altında Set Scene Frames'e tıklarsanız otomatik olarak başlangıç ve bitiş karelerini kendisi tanımlar, Prefetch ise videoyu daha seri oynatmak için ön belleğe yükler. Sonra geçelim bir alt sekme olan Marker sekmesine, isterseniz Tracking Pointleri buradan Add veya Delete diyerek ekleyebilir veya silebilirsiniz fakat bu uzun yol, nokta eklemek için de bir hotkeyimiz var, CTRL+RMB ile videoya yeni tracking point ekleyebilirsiniz. Bir sonraki Tracking Settings artık işlerin biraz biraz karışmaya başlayacağı nokta. Pattern Size Tracking Point'in arayacağı dokunun boyutunu, Search Size ise bu dokuyu noktananın etrafında ne kadarlık bir alanda tarayacağını ifade eder, Search Box'ı ekranda görmek için hotkey ALT+S. Search Area boyutu ne kadar büyürse arama işlemi o kadar uzun sürer çünkü aramayı o kadar geniş alanda yapar yazılım. Motion Model ve Match öncesinde Prepass ve Normalize seçeneklerinden bahsetmekte yarar var. Prepass anladığım kadarıyla noktanın önceki hareketine göre bir model oluşturup sonrasında noktayı bir sonraki karede belli bir alanda aramaya yardımcı oluyor. Normalize ise kameraya giren ışığın miktarı ve doğrultusu sebebiyle oluşan exposure değişimlerini dengeleyerek noktayı daha başarılı bir biçimde aramaya olanak verir fakat nokta adedi fazlalaştıkça tracking hızı yavaşlayacaktır. Son olarak bu bölümde Track sekmesinin altındakilere de değinip Motion Models kısmını ikinci parçaya ayıracağım. Bu kısım biraz genel bilgi ve menüleri tanıtma gibi kalsın. Track menüsünün altında trackleme seçenekleri var, buradan noktayı kare kare trackleyebilir veya herhangi bir t anından geriye ve ileriye doğru da trackleyebilirsiniz.         Herhangi bir andan başa veya sona kadar noktayı tracklemek için bu sekmeleri, herhangi bir andan geriye veya ileriye tek kare tek kare noktaları tracklemek için ise veya  kullanabilirsiniz. Şimdilik bu kadarlık bilgi yeter. Biliyorum ortalık bayağı karıştı ancak sabır her şeyin ilacı. Bazı şeyleri refleks haline getirene kadar çalışmamız gerekiyor.
     Sağ tarafta yer alanTrack menüsü altında Tracking Settings ile trackleme ayarları üzerinde oynanabilir, Frame Limits ile belli adet kare üzerinden ilerlenilebilir.  Hızlı sahnelerde motion blur vs.nin de devreye girmesiyle tracking zorlaşabiliyor, bu durumda aşama aşama ilerlenmek istediğinde bu şekilde işler kolaylaştırılabiliyor. Şu anda neden iki ayrı yerde benzer menüler var dediğinizi duyar gibi oluyorum, bunun sebebi şu sağdaki tracking menüsü genel olarak tüm tracking noktalarının ayarlamalarını yapmamıza yararken soldaki tracking menüsü seçtiğimiz nokta özelinde çalışır.

***Eğer göz atmak isterseniz CG Matter'ın Motion Tracking video linklerini aşağıya bırakıyorum, bende bayağı yararı oldu. 









8 Mayıs 2022 Pazar

Nihayet Motion Tracking(Blender'da IX. Hafta)


     Cahil cesaretiyle daldığım Blender'da ilk birkaç hafta çaresizce bocaladıktan sonra bu günlerde ağırdan da olsa eğlenmeye başladım. Genelde sizin de bildiğiniz üzere modelleme üzerinden gidiyordum fakat bu aralar dümeni sakince Motion Tracking'e doğru kırdım. Bu konuda önümüzdeki günlerde detaylı notlar hazırlamak istiyorum. Motion Tracking'i en temel haliyle tanımlamak istersek temelde çektiğiniz herhangi bir videodaki kameraya ait yöneltme bilgisinin videodaki unsurlar üzerinden tekrardan üretilmesi ve bu yolla çektiğiniz videoya görsel efektler ekleyebilmenizi sağlayan en temel aşama olarak tanımlayabiliriz. Dediğim gibi son günlerde genel olarak tracking üzerine çalışınca haftasonu küçük bir pratik yapmak istedim. 
     Temelde yapmak istediğim daha önce oluşturmuş olduğum rastgele bir modeli çektiğim uygun bir videoya ekleyebilmekti. Önce eski modellerden birini denedim ancak içime sinmedi, sonradan eski bir uçak kokpit fotoğrafı buldum. Sonrasında bunu bir Image Texture olarak kullanıp videoda gördüğünüz masaya yakışacak bir gösterge kutusu haline getirdim.
     Modelimizi hazırladıktan sonra çektiğimiz videodaki ortamı yazılım içerisinde tekrardan yaratmamız gerekiyor. Yani sanal kameramıza aynı dönme, yakınlaşma vs. hareketleri yaptırabilmemiz için videoyu Movie Clip Editor modunda açmamız gerekiyor. Buradan sahne ayarlarını yaptıktan sonra kontrol noktalarımızı oluşturup baştan sona tüm sahnelerde trackledikten sonra geriye kamera hareketlerini çözümlemek kalıyor. 
     Nedense otomatik nokta üretici bende bir türlü düzgün nokta bulamadı, her seferinde kendim bizzat tekrardan işaretledim noktaları. Sonrasında masa üzerinde üç nokta seçip floor olarak tanımladım. Aslında bu yüzeyi hiç kullanmadım fakat gösterge kutusunu konumlandırma konusunda bu zemin yardımcı oldu diyebilirim. Sonrasında baktım ki zemin çalışıyor geçtim Compositing aşamasına. Meğersem modeli oluşturmak etmek yetmiyormuş, neyi nasıl render almamız gerektiğini bir de buradan tanımlamak gerekiyormuş. Compositing kısmı da dipsiz bir kuyu gibi, şimdilik dikkatimi dağıtmak istemiyorum. En azından belli bir yere kadar burnumu her deliğe sokmamakta kararlıyım. Şimdilik gayet sade bir node dizilimiyle aşağıdaki videoyu ürettim. Kamerayı deli gibi sallamama rağmen iyi iş çıktı gibi. 






5 Mayıs 2022 Perşembe

Büyük Selimiye Camii(Üsküdar) Çizimi

     Bu aralar resmi biraz boşlamıştım, nedense artık evde resim çizemiyorum. Dışarıda da hala havalar soğuk gidiyor, bu yazıyı yazarken evde kalın bir hırkayla oturuyordum. Her şeye rağmen geçtiğimiz hafta uzun bir aradan sonra tekrardan buluştuk Usk İstanbul ekibiyle. Uzun bir üşenme sürecinden sonra kendimi zorladım ve çizmeye başladım. Yine detaylarda fazla boğuldum ve sinir oldum bu duruma. Yine de evde tamamladım resmin kalanını, sanırım bu çalışma blogdaki ilk resimlerinden biri oldu bu senenin. Umarım senenin kalan kısmı resim açısından böyle geçmez.

4 Mayıs 2022 Çarşamba

Hungry Bug Restaurant(Dorohedoro)/Blender'da VIII. Hafta


     Bu hafta Blender'la 8.haftayı doldurdmuş bulunuyorum, elbette debelenmekle geçen ilk haftayı saymıyorum. Bu sekiz haftalık sürecin sonunda yavaş yavaş ortaya bir şeyler çıkartır oldum. Ben daha lineer bir ilerleme beklerken süreç daha çok parabolik bir biçimde ilerleme eğiliminde devam ediyor. Başlarda bu kadar şey nasıl öğrenilecek diye umutsuzluğa kapıldığım çok fazla zaman oldu, şimdilerde bir şeyler üretttikçe bu korku yerini yenilerine bırakır oldu.
     Son iki haftada UV Editor ve Image Texture'lar ile neler yapılabileceğini görünce resmen çılgına döndüm, fotoğraflardan, rastgele çizimlerden bir sürü deneme yaptıktan sonra Dorohedoro animesinden bir sahneyi modellemek istedim. Animeyi baştan sona taradıktan sonra birkaç tane güzel referans görseli buldum ve bunlarla modellemeye giriştim. Ne yazık ki tüm bileşenleri tek bir görselden çıkartamadım, farklı sahnelerden kesilmiş parçalar farklı aydınlatma şartları sebebiyle bazı noktalarda bariz belli oluyor, yine de sonuç beni tatmin etti diyebilirim.
     Son iki haftadır node sistemine birazz daha alıştım, artık eskisi kadar yabancı hissetmiyorum kendimi. Artık yavaş yavaş bazı basit şeyleri kendi node dizilimlerimle yapar oldum. En azından temel düzeyde nasıl hareket etmem gerektiğine dair fikir yürütebiliyorum şu anda. Mesela bu sahnede yer alan sis, yanıp sönen tabela ve dönen pervaneyi nodelarla oluşturmayı tercih ettim. Aslında Keyframe atayarak da rahatlıkla yapabileceğiniz bu tür efektleri geometry nodeları veya shader nodelarıyla yapmanın güzelliği kontrol kolaylığında yatıyor. Graph Editor'de bazı şeyleri tek seferlik yapmak daha kolay olabilirdi belki ama her seferinde tek tek hız, yoğunluk vs. ayarlamaktansa bu işi tek sefer ayarlayıp sonrasında sadece değerlerle oynamak bana daha kolay geldi. 
     İlk olarak havalandırmada yer alan pervaneyi geo nodes ile çılgınlar gibi spin attırabilir miyim acaba diye düşündüm, birkaç deneme sonrasında gayet basit bir şekilde bu işi başardım, işin güzel yanı yine dediğim gibi hızını ayarlamak çok kolay. 
     Sonradan aklıma acaba tabelalardan birini arızalı izlenimi verecek şekilde yanıp sönen bir şeyler mi yapsam diye düşündüm. Bu etkiyi daha da kuvvetlendirebilirmişim sonradan bakınca aklıma daha güzel fikirler geldi. Ben tabelayı tamamen bir Emitting Object olarak düşündüm, oysa aslında tabelayı yarı saydam yapıp içine iki tane floresanvari aydınlatma koyabilirmişim, böylelikle daha güzel çalışırdı efekt. Şimdilik aynı projede daha fazla vakit kaybetmemek adına bu haliyle bıraktım.
     Son olarak sis efektinden bahsedelim. Bu tarz şeyler bilgisayarı fazlasıyla yoruyor. Bir de bu projeleri tatil süreçlerinde yaptığım için hep evdeki bilgisayarı kullandım, fukaranın gücü ziyadesiyle sınırlı. Özellikle node dizilimleri art arda altı yedi tane olunca aksırıp tıksırmalar, program kapatmalar başlıyor. Bazı şeylerle biraz daha oynamak istesem de maalesef donanım izin vermedi. Hal böyle olunca biraz daha sade node dizilimleriyle takılmak durumunda kaldım. Neyse sis efektini olduğu gibi kullandım, birkaç Youtube kanalı gezip ortalama bir şeyler belirledim ve aşağıdaki dizilimi oluşturdum. Sisin üzerine biraz daha çalışmak gerekiyor, hem render alırken işleri daha da hızlandırabilmek , hem de daha gerçekçi bir görünüm için. 
     Tabii ki bu projeden de kendime bir dolu ders çıkardım. 

  • Otuzüç yaşına geldin hala şu tabakalara düzgün isimler vermeyi beceremedin, ortalık karışıktan sonra aklına geliyor düzgün isimlendirmek. Anlık olarak akılda kalıcı gibi görünseler de üzerinden günler geçince hangi tabaka nerede anlamak güçleşiyor. Özellikle bir de aynı yapı üzerinde farklı farklı Image Texture'lardan oluşturulan tabakalarla çalışılıyorsa hatırlamak imkansız hale gelebiliyor. Bunun için kullanılan görsel adları ve tabaka ilişkileri daha net kurulmalı.
  • Her detayı modellemekle vakit kaybetme, bazen saatlerce uğraştığın şeyler hoşuna gitmeyebiliyor, harcanan onca zaman da boşa gidiyor.
  • Tekrardan "Imperfection is the Digital Perfection."
  • Kendine güzel bir görsel arşivi kur, fotoğraflar, anime sahneleri vs.
  • Sahnede yer alan objelerin açılarını konrol et, bazen sanki sahneye 2D eklenmiş gibi durabiliyorlar(Bkz. mavi tabela)
     Hatalarımdan hiç ders çıkarmadan yapacağım yeni projelerde görüşmek üzere. 









3 Mayıs 2022 Salı

Otomat Makinası Modelleme (Blender'da VII. Hafta)

     Eğer Blender programı bir insana dönüşseydi bu kuşkusuz Ian Hubert olurdu. Bir şekilde Blender denince aklıma hep Ian Hubert geliyor. Bir süredir Ian Hubert'in Patreon sayfasını takip ediyorum ve gündelik unsurlarla ne kadar harika şeyler yapılabileceğini görmek şaşırtıcı, kendi adıma bazı şeyleri gereksiz yere zorlaştırdığımı fark etmeme yardımcı oldu. Bazı konularda ustalaşmış insanları iş üstündeyken izlemek saatler süren eğitimlerden daha yararlı olabiliyor. Benim için öğrendiklerimi hangi şekilde kullanacağımı anlamak her zaman biraz zor olmuştur, böyle birini kendi projeleri için aşama aşama çalışırken görmek en azından hangi yolun beni nerelere çıkartabileceği konusunda güzel fikirler verdi. Eğer siz de kendisine destek olmak ve yeni şeyler öğrenmek isterseniz: Ian Hubert's Patreon Page
     Bu hafta bayağı zamandır gözüme kestirdiğim, metro çıkışındaki otomat makinesini modellemek istedim. Aslında burada denemek istediğim şey elimde olan basit bir eski nesil bir Sony Cybershot fotoğraf makinesiyle neler yapılabileceğini görmekti. İş çıkışı yine otomatın önünden geçerken pek de özen göstermeden hızlı bir biçimde fotoğrafladım. Sonra sokaktan etiket olarak kullanabileceğim bazı ilanları aramaya koyuldum. İlanların ayrı ayrı fotoğraflarını çektim ve onları sonradan kullanmak üzere küçük bir kolaj haline getirdim. İşin aslı bulabildiğim etiketleri sonradan pek beğenmedim, biraz daha kirli şeyler olsun isterdim. Bu da demek oluyor ki bu işle uğraşmadığım zamanlarda bile gözlerimi açık tutmam ve referans toplamam gerekiyor.
     Materyalleri topladıktan sonra çok da fazla düşünmeden daldım işin içine. 3D Modelleme işi düşündüğümden çok daha zevkli bir iş, bu işlerle uğraşırken modelcilik ve urban sketching'den gelen tecrübelerin ne kadar işe yaradığını anlatamam. En azından başlangıç aşamasında nereye odaklanmam gerektiğine dair çok yararlı oldu geçmiş veriler. Modelleme esnasında Ian Hubert'ten kaptığım UV editing numaralarını kullandım, fotoğraflar rastgele çekilmiş olsa da bayağı iş gördü. Son olarak da ilanları rastgele kesip otomatın yüzeyine yapıştırınca fena olmadı, bir miktar yaşanmışlık iyidir.
     Cam efekti için herkes başka başka node dizilimleri kullanmış, yoğun olarak kullandığınız render motoruna göre bu dizilimler de değişebiliyor ancak bu şekildeki yüzeylerde eğer Evee'de çalışıyorsanız aşağıdaki node dizilimini kullanabilirsiniz. Glossy BSDF'nin Roughness kısmına bağlayacağınız bir Image Texture nodu ile cam yüzeyin bazı kısımlarını mat hale getirerek istediğiniz biçimde doku katabilirsiniz. Ayrıca Musgrave Texture veya Noise Texture nodelarını bir Bump noduyla normal soketine bağlarsanız cam yüzeyinde biraz dalgalanma elde edebilirsiniz ki ışığın bu şekilde kırılması camı çok daha çekici kılıyor.
Yine son olarak bu çalışmadan öğrendiklerimiz kısmına geldik, kısaca özetlemem gerekirse:
  • Referans görüntüyü işe başlamadan önce iyi incele ve kafanda genel hatlarıyla bir planlama yaptıktan sonra işe başla, gidebildiğin yere kadar Loop Cut'larla git, sonradan Knife Tool işin içine girince eskisi kadar güzel Loop Cut'lar atamayacaksın. Ana şeklin üzerindeki işler tamamen bitmeden Knife tool kullanıca Bevel gibi toollar da istenilen sonucu vermede sorun yaşatıyor, bu yüzden önce olabilecek en detaylı haliyle objeyi oluşturmak en güzeli.
  • Kendine her manada bir kütüphane oluşturmaya başla, buna referans görseller, textureler, node düzenlemeleri vs. dahil.
  • Bu iş özelinde kullanışlı ve güzel fotoğraflar çekmeyi öğren.
  • Farklı görüntü işleme programları işini kolaylaştırabilir, bunları da öğrenmekte yarar var.
  • Artık bir şeyler üretme aşamasına yavaş yavaş geliyoruz, bu ürettiğin modelleri sonradan da rahatça kullanabilmek için tabakalandırmayı ciddiye al(Asla öğrenemedi...). Klasörlemeyi bu işe uygun şekilde referans görselleri içerecek şekilde yap ve bu ürettiklerini de bir kütüphane içerisinde saklamayı unutma.