Elektrik Mühendisliği · Sayı 440 · Kasım 2010
BİLGİSAYAR OYUNLARI İÇİN FİZİK
Bilgisayar, yazılım ve internet Teknik / bilimsel makale
- Yıl
- 2010
- Sayfa
- 4
- Okuma süresi
- 5 dk
- Görüntülenme
- 0
Konu
Bilgisayar, yazılım ve internet
Anahtar kelimeler
- oyun fiziği
- klasik mekanik
- çarpışma tespiti
- yay-kütle modeli
- hareket yakalama
- Yumuşatılmış Parçacık Hidrodinamiği
Özet
Yazı, bilgisayar oyunlarında kullanılan fizik simülasyonlarının tarihçesini ve klasik mekanikten yumuşak cisim, sıvı modelleme ve karakter canlandırmaya uzanan temel kavramlarını tanıtmaktadır.
Tam metin
Metin PDF'ten otomatik çıkarılmıştır; tablo, şekil ve formüller eksik ya da hatalı olabilir. Özgün dizgi için PDF'e bakın.
Dr. Umut Durak-ODTÜ, Enformatik Enstitüsü [email protected]
Giriş
F izik, bilgisayar oyunlarında uzun süredir kilit bir rol oynamaktadır. Oyunların başarısı ile oynayanı sarması, onu kendi dünyasına katması arasında önemli bir ilişki olduğu için, oyunda sunulan görselliğin ve davranışların; beklenen, alışıla gelen, yani tanıdık olması gerekir. Görselleştirmedeki teknolojik gelişim hem sanatsal olanı hem de gerçek olanı sunma olanaklarını oldukça artırmıştır. Eş zamanlı olarak, davranıştaki gerçekçiliğin desteklenmesi yönündeki çalışmalar “Oyun Fiziği” olarak adlandırılan bir alanı ortaya çıkarmıştır. Bu yazıda oyun geliştirmek için kullanılan fizik alan bilgisi tanıtılacak ve bu alanın çağdaş araştırma problemlerinden bahsedilecektir.
olan klasik mekanikten başka bir şey değildir.[1]
Oyun fiziği bilgisayar oyunlarının erken dönemlerinden bu yana kullanılagelmektedir. En erken uygulama biri 1961 yılında MIT (Massachusetts Institute of Technology) öğrencilerinden Martin Graetz, Steve Russell ve Wayne Wiitane tarafından geliştirilen “Spacewar!” oyunudur.[2] Spacewar!’un oyuncularının amacı bir yandan uzay gemilerini kontrol edip bir yandan ateş ederek rakipleri yok etmek ve yıldızlara çarpmamaktır. Oyunda kullanılan yerçekimi, mermi yörüngelerinin yamulmasına ve gemilerin mermilere doğru çekilmesini sağlayarak, özgün bir his
yaratmıştır.[3] Spacewar! oyununun bir görseli Şekil 1’de sunulmuştur.
Bundan on sene sonra Atari Firması tarafından satışa sunulan Pong [4] Oyunu’nda, iki oyuncu karşılıklı 2 boyutlu bir tenis oynamaktadır. Oyun topun rakete hangi açı ile vurduğunda hangi açı ile sekeceğinin hesaplandığı basit fizik hesabına dayanmaktadır.[3]
Erken dönemlerde oyunlar içindeki kıvılcım, top, mermi, havai fişek gibi parçacıkların hareketi için kullanılan fizik, zaman içinde önce 2 boyutta katı cisimlerin hareketi sonrasında 3 boyutta katı cisimlerin hareketlerinin hesaplanması için kullanılmıştır. Gü-
Oyun Fiziği Nedir?
Fizik, Türk Dil Kurumu’nun Büyük Türkçe Sözlüğü’nden “Maddenin kimyasal yapısındaki değişiklikler dışında genel veya geçici yasalara bağlı, deneysel olarak araştırılabilen, ölçülebilen, matematiksel olarak tanımlanabilen madde ve enerji olgularıyla uğraşan bilim dalı” olarak tanımlanmaktadır. Herkesin takdir edeceği üzere fizik çok geniş bir disiplindir ve yüzlerce alt alana sahiptir. Oyun fiziği dediğimiz ise temelde nesnelerin yerçekimi ve diğer kuvvetler altında nasıl hareket edeceklerini söyleyen kanunlar bütünü
Şekil 1- Spacewar! Oyunu
elektrik mühendisliği, 440. sayı, kasım 2010 27
nümüzde ise parçacık ve katı cisim mekaniği dışında, giysiler, kumaşlar, ipler gibi yumuşak cisimlerin, sıvıların, gazların hareketlerinin hesaplanması, çarpışma ve çakışma hesapları, kırılma, dağılma hesapları, vücut hareketinin hesaplandığı bez bebek fiziği, oyun fiziğinin konuları içine girmiştir. Bundan sonraki bölümlerde bu konuları genel olarak ele alacağız.
Klasik Mekanik
Klasik mekanik, oyunlarda en çok kullanılan temel araçlardan bir tanesidir. Oyun dünyasının yapısına göre, 2 boyutlu veya 3 boyutlu uzayda oyun içindeki nesnelerin hareketlerinin hesaplanması için kullanılan ana yöntemdir. Oyun içindeki nesnelerin hareketleri, duruma göre parçacık veya katı cisim kabulleri, kinematik veya dinamik kullanılarak hesaplanabilir. Parçacık, kütlesi olan ama boyutları önemsiz olan cisim olarak tanımlanırken; katı cisim, birbirine göre konumları değişmeyen parçacıklar bütünü olarak tanımlanabilir. Katı cisim hareket ederken şekil değiştirmez ve şekli ile yönelimi önemlidir. Parçacık ise nokta şeklindedir ve yönelimi yoktur. Kinematik cismin konum, hız ve ivmesi ile ilgilenir. Bunların arasındaki bağıntıları ve bu değerlerin zaman içinde nasıl değiştiklerini konu alır. Dinamik ise, cisimlerin üstüne etkiyen kuvvet ve momentleri, onların doğrusal ve açısal hareketleri ile ilişkilerini konu alır.[5]
Oyun içindeki nesneler üzerine etkiyen kuvvetleri modellemek de klasik mekaniğin konusudur. Nesnelerin hareketlerinin gerçekçi algılanabilmesi için, kuvvetleri hesaplamak için kurulan modellerin çalışılması gerekir. Bu modeller bazen gerçeği yansıtırken, bazen de algıyı aldatmak için hilelere başvurur. Örnek olarak, ekrandan hemen kaybolmaması için oyunlardaki mermilerin namlu çıkış hızları gerçeğin 10 kat kadar altında tutulur, enerjilerini korumak içinse kütleleri artırılır. Hal böyle iken yerçekiminin etkisi de yer-
Şekil 2- Pong Oyunu Konsolu
Şekil 3- Gorillas Oyunundan Ekran
çekim ivmesini azaltarak sağlanır.[1] Bu örneği en iyi, rakiplerin birbirine atış yaptıkları ünlü MSDOS oyunu
Gorillas’ı [http://en.wikipedia.org/ wiki/Gorillas_(video_game)] hatırlayarak, canlandırabilirsiniz.
28 elektrik mühendisliği, 440. sayı, kasım 2010
Klasik Mekaniğin Ötesi
Gerçek hayatta cisimler aslında katı cisim mekaniğindeki kabule uymazlar. Yapıları uyarınca her cismin belirli bir elastik karakteri vardır. Bunun ötesinde oyun dünyasında ise katı cisimlerin dışında da birçok unsur vardır. İpler, kablolar, giysiler, hatta sıvılar ve gazlar. Bunların modellenmesi ve bu unsurların davranışlarındaki gerçekçi algının yaratılması yine oyun fiziğinin konusudur. Yay-kütle modelleri, yay dizileri yumuşak cisimleri modellemekte kullanılan en yaygın araçlardır.[6] Şekil 4’te örnek olarak kumaş için hazırlanmış bir Yay-Kütle modeli sunulmuştur.
Oyunlardaki sıvıların davranışlarının modellenmesi ise oyun fiziğinin en çağdaş problemlerinden bir tanesidir. Oyun fiziğinin gerçek zamanlı karakteri ve düşük donanım isterleri sıvıların hareketlerinin hesaplanmasını olanaklı kılan hesaplamalı akışkanlar dinamiği gibi yöntemlerin bu alanda kullanılmasını imkansız hale getirmektedir. Bu noktada, Yumuşatılmış Parçacık Hidrodinamiği (YPH) [7] son yıllarda umut vaat eden bir yöntem olarak kullanılmaya başlanmıştır. Şekil 5’te akışkan çözümleri için YPH kullanan fizik motoru Physx’in [8] demolarından birinin ekran görüntüsü sunulmuştur.
Oyunlar içindeki nesnelerin tek başlarına hareketleri kadar, birbirleri ile olan etkileşimleri de oyun fiziğinin konusudur. Nesnelerin birbirleri ile çakışmalarının bulunması, çarpışmaların tespit edilip çözümlenmesi, oyun fiziğinin temel problemleri arasındadır. Detaylı anlatımları [9] numaralı kaynakta bulunabilecek çakışma algoritmaları kullanılarak, tespit edilen olası veya gerçekleşmiş çakışmalar, çarpışma çözümlemesi ile irdelenip, itki ve momentum hesaplamaları ile çarpışma sonrası nesnelerin hareketleri hesaplanmaktadır.
Şekil 4- Kumaş Yay-Kütle Modeli
Şekil 5- Physx Demosundan Ekran Görüntüsü
Oyun fiziği, oyun içindeki nesneler dışında karakterlerin canlandırması problemi ile de uğraşır. Özellikleri birbirinden farklı birçok eklem, kemik ve kas grubundan oluşan bir karakterin hareketini gerçekçi olarak canlandırmak başlı başına bir zorluktur. Bu işi aynı sahne içindeki birçok karakter
için gerçek zamanda yapmak ise, karmaşıklık ve hesaplama yükünü alabildiğine artırmaktadır. Aynı anda çalıştırılması gereken algoritmaları sıralarsak, integrasyon şeması, çakışma ve girişim hesapları, kısıt çözücü, katı cisim hareket denklemleri gibi bir liste ile karşılaşırız.[10]
elektrik mühendisliği, 440. sayı, kasım 2010 29
Hareket yakalama yöntemi, karakter canlandırma için oyun fiziği ile birlikte kullanılan araçlardan biridir. Aktörün üzerine yerleştirilen işaretler kullanılarak yapılan hareketlerin sayısal ortama alınması olarak tanımlanabilecek hareket yakalama yöntemi, özellikle karmaşık hareketleri ve etkileşimleri modellemekte çok kullanışlıdır.[11] Şekil 6 hareket yakalama sürecinin aşamalarını sunmaktadır.
[8] Physx, http://www.nvidia.com/object/ physx_new.html
[9] Ericson, C., Real-time Collision Detection, Morgan Kaufmann Publishers, Amsterdam, 2005
[10] Jakobsen, T., Advanced Character Physics, GDC Proceedings, 2001
[11] Motion Capture, http: //en.wikipedia.org/wiki/Motion_capture <
Sonuç
Bu makale ile okuyucuya oyun fiziğine temel düzeyde bir aşinalık kazandırılmaya çalışılmıştır. Önce kısa bir tarihçeyi izler biçimde oyun fiziği tanımlanmış, daha sonra da oyun fiziğinin kapsadığı problemler başlıklar halinde okuyucuya tanıtılmıştır. Makale okur için konuya bir giriş niteliği taşımakla birlikte, kullandığı referanslar, bütünsel bir çalışma için temel oluşturacak niteliktedir.
Kaynakça
[1] Milligon, I., Game Physics Engine Development, Morgan Kaufmann Publishers, Amsterdam, 2007
[2] Spacewar!, http://en.wikipedia.org/ wiki/Spacewar!
[3] A History Of Game Physics, http://www.insidemacgames.com/news/ story.php?ArticleID=16511
[4] Pong, http://en.wikipedia.org/wiki/ Pong
[5] Bourg, D.M., Physics for Game Developers, O’Reilly & Associates, Beijing, 2002
[6] Eberly, D.H., Game Physics, Morgan Kaufmann Publishers, Amsterdam, 2004
[7] Smoothed Particle Hydrodynamics, http://en.wikipedia.org/wiki/Smoothedparticle_hydrodynamics
Şekil 6- Hareket Yakalama
30 elektrik mühendisliği, 440. sayı, kasım 2010