Pixar, Animasyonlarda Matematikten Nasıl Faydalanıyor?

Aslında işin özüne inersek animasyonların altında yatan matematiğin bildiğimiz çarpma, bölme işlemlerinden ibaret olduğunu söyleyebiliriz. Ama normal sayılarla değil, matris denilen sayı tablolarıyla yapılıyor bu işlemler ve çok karmaşıklar. Şu an diyebiliriz ki dünya nüfusunun en yetenekli ve en zeki olan önemli bir kısmı bilgisayar grafikleri ve sinema işindedir. Bu filmler öylesine büyük bir beyin gücü ve emekle yapılıyor ki , sonucun bu kadar muazzam olması hiç de şaşırtıcı değil. Animasyonlar insanları büyülüyor. Mesela İnanılmaz Aile, Rapunzel (Tangled), Ters Yüz gibi animasyonlar şimdiden unutulmazlar arasına girdi bile… Son tahlilde, bütün bu harika filmlerin altında yatan şeyin matematik olduğunu bilmek, matematiğin ne denli güçlü bir araç olduğunu anlamamız için yeterlidir.

Pixar teknolojisi matematik ile bilgisayarın şahane bir kesişimi, hatta kaynaşmasıdır. Yazılım mühendisliğinden soyut matematiğe, bilgisayar biliminin bütün teorik araştırmaları, istatistik ve fizikle el ele veriyor Pixar animasyonlarında.  Aşağıda Ters Yüz adlı animasyon filminden bir kare görüyoruz. Bu kareyi oluşturmak için matematikten nasıl yararlanıldığına bir göz atalım.

pixar-animasyonlarda-matematikten-nasil-faydalaniyor

Renderleme

Sanatçılar tarafından bilgisayarda oluşturulan 3 boyutlu sahnenin görünür hale getirilmesi gerek. Peki, bu işlem nasıl yapılıyor?

Sahne bilgisayarın hafızasında geometrik bir model olarak yer alır. Bu yüzden sahnenin 2 boyutlu ekrana çizilerek görünür hale getirilmesi gerekir. Bu işe renderleme deniyor. Renderleme hayali 3D bir sahnenin 2D olarak oluşturulmasıdır. Gerçekçi bir şekilde yapılmazsa sahnenin hiçbir cazibesi ve inandırıcılığı kalmaz.

Renderleme sahneye yerleştirilen bir kamera aracılığıyla yapılır. Kamera da diğer nesneler gibi matematiksel olarak oluşturulmuş hayali (geometrik) bir cisimdir. Bilgisayara render komutu verildiğinde renderer denen bir yazılım devreye girer ve kameranın sahneyi nasıl “göreceğini” hesaplayarak görüntüyü oluşturur. Oluşturduğu bu görüntüyü ekrana yansıtarak, bizim de görmemizi sağlar.

Bilgisayar bunu “hayali” ışık ışınlarının yollarını hesaplayarak yapıyor. Tahmin edebileceğiniz gibi bu karmaşık işlemler matematiksel yöntemlerle başarılıyor. Aşağıdaki görselde “renderleme” denklemi görülmekte. Ekranda beliren her bir nokta, aslında kendisine doğrudan ve dolaylı yollardan gelen ışık ışınlarının bir toplamı, yani integralidir.

{\displaystyle L_{o}(x,{\vec {w}})=L_{e}(x,{\vec {w}})+\int _{\Omega }f_{r}(x,{\vec {w}}',{\vec {w}})L_{i}(x,{\vec {w}}')({\vec {w}}'\cdot {\vec {n}})d{\vec {w}}'}

Aslında bilgisayar her şeyi bu kadar kesin hesaplamıyor. Çünkü hesaplanması gereken sonsuz sayıda nokta ve sonsuz sayıda yansıma var. Hiçbir bilgisayar bu hesabın altından kalkamaz. (Doğanın sonsuz işlem gücüne hayran olmalıyız.)

Bilgisayarların gerçekte yaptığı istatistik hesap tekniklerini kullanarak render denklemini sadeleştirmekten ibaret. Böylece denklem, hesaplanabilir hale geliyor. Bilgisayar grafiklerinde istatistiğin birçok dalı kullanılmakta: Markov Zincirli Monte Carlo yöntemleri; önem örneklemesi; istatistiksel mekanik ve kapalı önyargı-varyans ticareti gibi…

İstatistiğin dışında fizik de devreye giriyor. Işık skalar bir büyüklük olmadığından bilgisayarda ışığı temsil etmek için hangi modeli kullanacağınıza karar vermelisiniz. Işığın kutuplanması (polarizasyonu) dikkate alınacak mı? RGB vektör modeli kullanılacak mı? 255’ten büyük ışık şiddetlerine izin verilecek mi? (Bilgisayarlarda genellikle siyah için 0, beyaz için ise 255 değeri kullanılır. Bu da ışığın sadece 256 parlaklık seviyesine izin verildiği anlamına gelir. Oysa gerçek yaşamda ışığın parlaklığının bir üst sınırı yoktur. Parlaklık seviyeleri milyarlar mertebesinde olabilir. Ancak bunu bilgiyasarda temsil etmek imkânsız gibi bir şeydir. Bir sahnede Güneş gibi parlak bir cismin bulunması durumunda 255’ten daha büyük değerlerin kullanılması zorunlu olabilir.)

main-qimg-a3577c291c7b2efc2df8e1474457be12

Kestirme yollar kullanılmadığı takdirde hiçbir bilgisayarın böylesine muazzam bir hesap yükünün altından kalkamayacağı açıktır. O halde işin içine ciddi miktarda mühendislik optimizasyonu girmektedir. (Temel amacı “kısa yollar” bulmak olan bir çalışma alanı.)

Simülasyon

Resmin nasıl çizildiğini anladık, şimdi neyin resmini çizeceğimize karar verme zamanı…

Üstteki resimde Üzüntü (filmdeki bir karakter) erimiş lavlar üzerinde yüzüyor, tüylü bir kazak giyiyor ve konuşurken cildi deforme oluyor.

Akışkanların animatörler tarafından canlandırılması çok zordur. Bunun yerine akışkanı simüle etmek daha iyi sonuç verir. Yukarıdaki resimde lavların hareketi de matematiksel olarak simüle edilmiştir. Canlandırma sinemasında fiziksel simülasyonların önemi büyüktür. Filmlerde gördüğümüz birçok şey simülasyonla oluşturuluyor. (Saç, kıllar, giysiler, kalabalıklar, kar taneleri, çarpışmalar, ateş, duman vs.) Böyle oluşturulmuş bir sahne daha etkileyici ve inandırıcı görünmektedir.

Süveter, ipliklerin dokunması ile yapılmış bir tür kumaştır. Kumaşlar birbirine bağlı minik yaylardan oluşmuş bir sistem şeklinde modellenebilir. (Her bir kumaş iplikçiği minik bir yay gibi davranır.) Simülasyonun mantığı kısaca budur. Üzüntü hareket ettikçe kumaşın nasıl kıvrılacağı simülasyon yazılımı tarafından hesaplanır.

Üzüntü’nün saçı da simüle edilmiştir. Simülasyonda her bir saç teli kafa hareketlerinden etkilenen fiziksel yaylar gibi ele alınabilir.  Rüzgârın etkisi de hesaba katılmalı tabi… Sonuç olarak simülasyon motoru (yazılımı), bütün bunları hesaba katarak her bir saç telinin bir arada nasıl hareket edeceğini hesaplar.

particle-plume

Lav bir akışkandır ve akışkan simülasyonuyla canlandırılabilir. Aynı zamanda lav bir ışık kaynağıdır. Erimiş kayalar, sıcaklıklarına bağlı olarak kara cisim ışıması yaparlar. (Kara cisim ışıması, sıcak bir cismin rengini veren bir denklemdir. Örneğin 3000 derece Kelvin’deki bir ampülün hangi renkten ne kadar ışıma yapacağını kara cisim denklemiyle bulabiliriz. Kara Cisim Denklemi, Kuantum Kuramı’nın kurucusu Planck tarafından bulunmuştur.)

blkbody

Tabi, Pixar’ın kalplerimize dokunarak para kazanmaya çalışan bir şirket olduğunu unutmayalım. Daha yaratıcı olabilmeleri için sanatçıların önündeki teknik engellerin kaldırmaya çalışması bu yüzdendir. Pixar’ın matematik ve teknik ekibe bunca yatırım yapmasının nedeni bu olsa gerek. Pixar sanatçıları daha etkileyici öyküler anlatabilmek için sahnelerine diledikleri kadar ışık, renk, hareket ve karmaşa koyabiliyorlar.

Sahneleme

Bir sahnenin 3D olarak temsili matematiğin en temel dallarından biri olan doğrusal cebir sayesinde olmakta. (Bkz. Khan Akademi.) Modelciler sık sık karakterlerin 3D kafesi üzerindeki noktaların yerini değiştirirler. Hem de bunu binlerce kez yapmak zorunda kalırlar. 3D uzayda bir noktayı yerinden oynatmak, yani ona bir dönüşüm uygulamak, doğrusal cebir sayesinde mümkün oluyor.

trans

Döndürme, boyutlandırma ve öteleme gibi temel dönüşümler işin kolay kısmıdır aslında. (Sadece matrislerin toplamı ve çarpımı…) Doğrusal cebir bundan çok daha zor işlerde de kullanılır. Örneğin, ters kinematik (inverse kinematics) ve simülasyonlarda…

 

Ters Kinematik, zincir gibi birbirine bağlı nesnelerin (el, ön ve üst kollar, omuz ve gövde) hareketini çözümleyen bir animasyon teknolojisidir. Ters kinematikte siz sadece uçtaki nesneyi (eli) hareket ettirirsiniz, geri kalan nesnelerin hareketi bilgisayar tarafından hesaplanır. Böylece canlandırma sanatçısının işi kolaylaşır.img011

 

Bir simülasyonu oluşturan binlerce minik yay, devasa bir denklem sistemi oluşturur. Bu sistemin çözümü doğrusal cebir yardımıyla yapılmaktadır. Simülasyonlar esasında binlerce satır ve sütundan oluşan devasa matrislerle yapılan işlemlerdir.

Üzüntü’nün yanağı sıkıldığında yanağının alacağı şekli de yine doğrusal cebir belirliyor. Bir sıkışma simülasyonunda hacim korunmazsa simülasyon gerçekçi görünmez. (Yanak sıkıldığında etin biçimi değişse de hacim değişmemelidir.)

Son bir örnek de çarpışma simülasyonlarıdır. Çarpışma karmaşık bir dinamik simülasyondur. Çarpışan cisimlerin çarpışma noktaları, çarpışma sırasındaki yön ve hızları hesaba katılmalıdır. Ayrıca çarpışan cisimlerin esnekliği gibi özellikleri de simülasyona dâhil edilmelidir. (Çelik bilyelerin çarpışmaları ile çamur toplarının çarpışmaları birbirinden farklıdır.)

Gölgeleme ve Doku Oluşturma

Gerçek yüzeyler genellikle çok karmaşıktır. Bir ağaç kütüğünü düşünelim. Kütüğün yüzeyindeki damarlar, reçine, nem, böceklerin açtığı yaralar vs. gibi birçok şeyi tek tek modellemek çok zordur. Bunun yerine o yüzey bir doku ile kaplanır. Ancak kaplama doğru biçimde simüle edilemezse, kütük göze çok yapay görünecektir.

1169_tid_main

Çıkıntılı ve pürüzlü bir yüzey ışığı düz bir yüzeyden çok farklı yansıtır. Gerçek yüzeyler bilgisayarda yaratılmış olan yüzeylerden çok daha düzensizdir. Bu yüzeylerin geometrilerinin bilgisayarda birebir oluşturulması pratik olmaz, çünkü milyarlarca minik üçgen kullanmak gerekir. Bunun yerine gölgeleme teknikleri (Shading) kullanılarak yüzeylerin gerçekçi görünmesi sağlanır. Gerçi shading kelimesini biz gölgeleme olarak çevirdik ama doku oluşturma ya da doku kaplama demek daha doğru olacaktır.

Birbirinden farklı yüzey dokuları nasıl oluşturulmalıdır?

Burada makine öğrenmesi, doğrusal regresyon analizi ve çeşitli parametrik modeller devreye girmektedir. Bunun yanında BSSDF modelleri de aktif olarak araştırılmaktadır.

Aslında makine öğrenmesi ile yüzey dokularının nasıl görüneceğini tahmin etmek mümkündür. Yani, ışınların izleyeceği yolları tamamen hesaplamaya gerek kalmadan, tahminle aynı sonuçlara ulaşmak mümkün. (Normalde milyarlarca ışının tek tek her bir yüzeyden nasıl yansıyacağı vs. hesaplanmak zorunda.)

Bu sonuçlar istatistik dağılımlardan faydalanarak da elde edilebilir. Bu yolla örneğin süveter, saç ya da deri gibi pürüzlü yüzeylerin kendine özgü parıltısı oluşturulabilir. Resimdeki yüzeyler ne kadar girintili çıkıntılı görünüyor, oysa bunlar basit bir küp ve torus sadece.

main-qimg-7a3b448ee00c45875378c6dd7a524572

Ama doku kaplama ve gölgeleme algoritmaları sayesinde, pürüzlü görünmeleri sağlanmış. Burada kullanılan algoritma (yöntem), gerçek pürüzlü yüzeyin yansıtma karakteristiğinden istatistik örnekleme yoluyla oluşturuluyor. Bu algoritmalar, karmaşık bir yüzeyin (örneğin kürk gibi) gerçek gibi görünmesini sağlıyorlar. Bu da büyük başarıdır. Çünkü yüzeyin karmaşık geometrisi bilgisayarda oluşturulsaydı hesaplamalar bilgisayarlar için bile çok karmaşık hale gelirdi.

Kaynak: https://www.cs.drexel.edu/~david

Geometrinin Diğer Dalları

Paraboller, parametrik eğriler, fraktallar bilgisayar grafiklerinde her zaman karşımıza çıkıyorlar. Parametrik eğrileri ele alalım. Bunlar nod denen 3D noktaları birbirine bağlayan eğri parçalarını tanımlayan denklemler kümesidir. Bir çimen yaprağının biçimi parametrik eğrilerle oluşturulabilir. Bir topun zıplamasını tanımlayan hız-zaman grafiğinde de aynı eğriler karşımıza çıkar. Canlandırmacı, bu eğrilerle oynayarak animasyonun daha pürüzsüz, ilginç ya da gerçekçi olmasını sağlayabilir. Bütün bunlar Bezier splines denen parametrik eğriler sayesinde olmaktadır.

dpCff

Diferansiyel Geometri ve Topoloji

Keenan Crane bu alanda çok ilginç çalışmalar yapıyor. Onun çalışmalarını tam olarak ben de anlayamıyorum, ama hesaplama konusunda büyük gelişmeler sağladığı kesin. Bir tavşan modelinin küreye dönüşmesi gibi problemlerin çözümünde kullanılan bir takım işlemler bu sayede yapılabiliyor. Bu türden işlemler klasik kafes geometrisi ile başarılamamaktaydı.

main-qimg-11d3011065ca37fe1a1add9f298a42e1

Sinyal İşleme

Ters Yüz filminin karakterleri parıltılı bir hâleye sahipler. Bu da kenarlarında tırtıklı (testere ağzı gibi) bir görüntü oluşmasına neden oluyor. Bu tırtıklar bilgisayar grafiklerinde çok ciddi bir sorundur. Yakından bakıldığında bilgisayar ekranındaki şekillerin minik karelerden (piksel) oluştuğu görülür. pA7uyDüzgünleştirme algoritmaları uygulanmazsa çizgiler göze düzmüş gibi görünmez. Özellikle kenar ve konturlarda merdivensi bir görünüm oluştururlar. Bu istenmeyen görüntüye aliasing denir. Aliasing ciddi bir sorundur. Bilgisayar bilimcileri bu pürtüklü görüntüyü ortadan kaldırmak için anti-aliasing yani düzgünleştirme algoritmaları kullanırlar.

 

Düzgünleştirme algoritmaları, çizgilerin testere ağzı gibi görünmesini engeller. Anti-aliasing algoritmaları sayesinde ekranındaki harflerin kenarları düzgün görebiliyoruz. (Kullanılan algoritmalardan birisi Monte Karlo Işık Taşınımı adını taşıyor.)

main-qimg-48a33c93d159cb567e87a54eec03383e-c

Özet Ve Kaynaklar

Bilgisayar grafikleri matematiği yoğun biçimde kullanmaktadır. Çünkü bilgisayar grafiklerinde amaç fiziksel gerçekliğin (ışık, akışkanlar, çarpışmalar) olabildiğince hızlı ve gerçekçi biçimde taklit edilmesidir.

Bilgisayar grafiklerinde kullanılan matematiğe öğrenmek için Khan Akademi’nin Pixar-in-a-Box iyi bir başlama yeridir.

Kaynak Makale: Eric Jang (Buradan okuyabilirsiniz.)

Genişleterek Uyarlayan: Sinan İpek

Daha gelişmiş fikirler için Ke-Sen Huang’ın sayfasına gidilebilir.

Disney Research (Araştırma) da ziyaret edilecek yerler arasında.

Matematiksel 

Yazıyı Hazırlayan: SİNAN İPEK

Yazar, çizer, düşünür, öğrenir ve öğretmeye çalışır. Temel ilgi alanı Bilimkurgu yazarlığıdır. Bunun dışında Matematik, bilim, teknoloji, Astronomi, Fizik, Suluboya Resim, sanat, Edebiyat gibi konulara ilgisi vardır. Ara sıra sentezlediklerini yazı halinde evrene yollar. ODTÜ Matematik Bölümü mezunudur ve aşağıdaki başarılarıyla gurur duyar:

TBD Bilimkurgu Öykü yarışmasında iki kez birincilik,
2. Engelliler Öykü yarışmasında birincilik,
Ya Sonra Öykü Yarışması’nda finalist,
Mimarlık Öyküleri Yarışması’nda finalist,
44. Antalya Altın Portakal Belgesel Film Yarışmasında finalist.

Bunlara da Göz Atın

Einstein’ın Gölgesinde Geçen Bir Hayat: Mileva Marić

Einstein’ı ve başarılarını hepimiz artık etraflıca biliyoruz ancak biraz da size onun gölgesinde kalan ya …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

ga('send', 'pageview');