İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü 3B Görüntüleme II İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü
Kamera ve Sahne İlişkisi Bilgisayar ortamında 3B görüntüleme için sahne ve kamera kavramları kullanılmaktadır. Kamera ile sahnenin görüntüleme alanına (viewport) 2B izdüşümü yapılır. Çeşitli grafik uygulamalarında kameralar kullanım amacına göre tanımlanmaktadır. Sabit (Beneath a Steel Sky, Pong ve türevleri, Blade Runner vb.) Sadece dönebilen Sadece kayabilen (Super Mario Bros, Braid, Street Fighter, Mortal Kombat vb.) Serbestçe hareket edebilen (Total War serileri) Belirli yönlere hareket edebilen (Starcraft II, SimCity IV, Command & Conquer serileri) Takip eden (Lara Croft, Prince of Persia: Warrior Within, God of War vb.) İttirilebilir (Euro Truck Simulator, Need for Speed serileri) First Person (Quake serileri, Half Life ve modları, Unreal Tournament vb.) Ayrıntılar için: http://www.whatgamesare.com/2011/10/camera-comes-first-game-design.html (İngilizce)
Kamera ve Unsurları Bir kamera (veya tek kare için fotoğraf makinesi) 3B ortamı bir film şeridi veya dijital piksel dizisi üzerine aktarır. Bilgisayar ortamında tanımlanan bir kameranın Konum Yönelim Görüş Alanı (Field of view) Odak uzaklığı Görüntü düzleminin eğikliği İzdüşüm özellikleri kullanım amacına göre programlanır. Programlanan bu kameranın hareketi için genelde kamera nesnesi denilen ayrıca bir yapı tanımlamak gerekebilir.
Kamera ve Görüntüleme Görüntüleme Hacminin Kırpılması Görüntüleme Düzlemine İzdüşüm Görüntüleme Alanının 2B Ekran Koordinatlarına Dönüştürme 3B Dünya Koordinatları Kırpılmış Dünya Koordinatları 2B Ekran Koordinatları
Görüntüleme Hacmi Kameranın görebileceği her şeyi içeren geometrik şekle görüntüleme hacmi (view volume) denir. Konik bir görüntüleme hacmi, gözün görüşüne yakındır ancak koni şeklinden kaynaklanan hesaplama güçlüğü söz konusu olduğundan pek tercih edilmez. Yaklaşım olarak kesik piramit (frustum pyramid) kullanılabilir. Paralel izdüşüm için dikdörtgenler prizması şeklinde gözün veya fotoğraf makinesinin görüşüne benzemeyen bir görüntüleme hacmi tanımlanır. Konik görüntüleme hacmi
Görüntüleme Hacmini Oluşturma Genişlik açısı Yükseklik açısı Altı değişkeni belirlemek gerekir. Kameranın konumu (nereden bakıldığı) Bakış vektörü (bakılan noktaya doğru) Kameranın yönelimi En – boy oranı (Aspect ratio) Yükseklik açısı (Height angle) Ön ve arka kırpma düzlemleri Bazı durumlarda odaklanılan nesnelerin daha belirgin, diğerlerinin bulanık görünmesi için odak uzaklığını da belirlemek gerekebilir. Çeşitli film ve dizilerde kullanılmaktadır. Arka kırpma düzlemi Ön kırpma düzlemi
Kamera Konumu Dünya koordinat sistemine göre kameranın nerede duracağı kamera konumu ile belirlenir. Dünya koordinat sisteminin temel eksenlerini tanımlarken sağ el kuralı kullanılabilir. Farklı koordinat eksenleri tanımlarken, görünümün değişmemesi için kamera koordinatlarının da uygun biçimde ayarlanması gerekir.
Kameranın Yönelimi Bakış ve üst vektörleri ile ifade edilir. Bakış vektörü hangi noktaya bakıldığını belirtirken, üst vektörü ise kırpma düzlemlerini dik kesen düzlemlerin yüzey normalidir. Kameranın bakış vektörü etrafında döndürülebilmesini sağlar. Üst vektörünün izdüşümü Üst vektörü Bakış vektörü Konum
Kamera Koordinat Uzayı x, y, z temel eksenlerinin kamera koordinat sisteminde karşılığı olarak u, v, w eksenleri tanımlanabilir. Bu sistem de sağ el kuralına uyar. w, bakış vektörüne ters istikamette bir birim vektörüdür. v, üst vektörünün bakış vektörüne dik olan izdüşümüdür. u vektörü de v ile w vektörlerine dik bir vektördür. Bu üç vektör de birim vektör cinsinden ifade edilir.
Görüş Açısı Görüş hacmini belirten açıdır. (katı açı da olabilir.) Ayrıca resimdeki perspektif çarpıklığı belirlemektedir. Kesik piramit için yükseklik açısı ile genişlik açısı kullanılır. Genişlik açısı, yükseklik açısı ile en – boy oranından hesaplanabilir. Programlamada görüş açısı değiştirilerek fotoğrafçıların duruma göre geniş veya dar açılı lensler kullanması ile benzer nitelikte görünümler elde edilebilir.
Kırpma Düzlemleri Sonsuz büyüklükte bir görüntüleme hacmi oluşmasını engellemek için kırpma yapılır. Arka kırpma düzlemi ile görüntülenecek en uzak alan belirlenir. Ön kırpma düzlemi ile görüntülenmesi istenmeyen çok yakındaki nesneler görünümden çıkarılır.
Ön (Yakın) Düzlem Bazı durumlarda kırpma hacminde çok yakındaki nesneler görüş alanını kapatmaktadır. Bu durumu engellemek için bu nesneler transparan bir biçimde görüntülenir. Okami oyunundan alınan aşağıdaki görüntüler bu duruma örnektir.
Arka (Uzak) Düzlem Arka düzlemin ötesindeki nesnelerin görünmeyişi algı sorunlarına yol açabilmektedir. Need for Speed II vb. eski yarış oyunlarında binalar, yollar gibi şekillerin aniden belirmesi buna bir örnektir. Bu durumu engellemek için uzakların sisli gösterilmesi veya daha düşük detaylı modellerin kullanılması yöntemleri kullanılmaktadır. Günümüz grafik donanımının gücü arka düzlemin uzaklığının arttırılmasına imkan vermektedir.
Sisli Görünüm
Düşük Detaylı Modelleme
Odak Uzunluğu Bazı kamera modellemelerinde odaklama uzaklığı da dikkate alınır. Bu uzaklık (fotoğraf makinesi lensi gibi) ideal odaklanma menzilini belirleyen bir ölçüdür. Kameradan aynı odak uzunluğunaki nesneler diğer nesnelere göre daha belirgin görüntülenir. Görüş alanı dışındaki nesneler ele alınmaz.
Paralel Görüntüleme Hacmi Ortografik, aksonometrik gibi paralel izdüşümlerde kullanılır. Bu görüntüleme hacmi oluşturulurken perspektif görüntüleme hacmi (kesik piramit) bileşenlerinin genişlik ve yükseklik açıları dışındaki bütün bileşenleri kullanılır. Bu şekilde elde edilen görüntüleme hacmi bir dikdörtgenler prizmasıdır.
Paralel Görüntüleme Hacmi Bu durumda nesneler uzaklıklarından bağımsız olarak (boyut küçültmesi olmadan) aynı boyutta görünürler. Paralel izdüşüm eksenleri, 3B sahnenin 2B izdüşüm işlemini de kolaylaştırır. Yükseklik Genişlik Bakış vektörü Yakın mesafe Konum Uzak mesafe Üst vektörü Üst vektörün izdüşümü
Kamera Uygulaması Bu konuda anlatılan kamera ve özellikleri aşağıdaki uygulamada görülebilir. http://cs.brown.edu/courses/cs123/demos/camera/