0
Oyun Geliştirme Ders 1
29.Ağustos.2009 Kategori: Oyun geliştirme
Oyun geliştirme dersinde aldığım notları buradan paylaşmak istiyorum. Aslında notlardan hiçbirşey anlamayabilirsiniz ama en azından kavramlar bile önemli. 3D oyun geliştirmek istiyorsanız size ilk tavsiyem eski matematik konularını bir gözden geçirmeniz. Özellikle geometri, matrisler ve diğer kalkülus konuları.
Notlar tamamen basic terminology’i içermektedir. Konular kısaca şöyle;
- 3d rendering basics
- Basic Terminology (Vertex, Face, Normal etc.)
- World View Projection Matrices
- Viewing Frustum
- Quaternions
- Camera
- Basic Lighting
- Textures
- Vertex and Index Buffers
- Rendering Pipeline
- Depth Buffer
Bir oyun motoru kullanırken buradaki karmaşık matematiği kullanmayacaksınız. Çoğu işi sizin yerinize motor üstlenecek ama shader kullanırken kesinlikle bunlar işinize yarayacaktır.
Notlar tamamen matematikten ibaret, herahangi bir kod içermiyor.
Temel Tanımlamalar
Vertex : Uzayda bulunan bir nokta.
Face : En az 3 vertexten oluşan yüzey. Yüzeyler her zaman üçgenlerin birleşmesinden oluşurlar.
Normal : Bir yüzeye dik giden özel vektör. Birçok hesaplamada (özellikle ışık, kaplama ve fizik) kullanılıyor.
Vertex Buffer : Vertexlerin çizilmeden önce depolandıkları yer. Burada vertexlerden yüzey oluşturmanın 3 yolu vardır (TRIANGLE_LIST, TRIANGLE_STRIP ve DRAW_INDEXED).
World (Transformation) Matris : Uzaydaki nesnelerin Rotation, Scale ve Transformation bilgilerini tutan matristir.
View Matris (Camera Matris) : Kameranın pozisyon ve yön bilgilerinin saklandığı matris.
Projection Matris: Çerçeve bilgilerinin saklandığı matris.
Quaternion : Transformation bilgilerinin ifade edileceği (vektör bilgisi yerine) alternatif bir tür. Quaternion değeri bir karmaşık sayıdır ve oyun motoru kullanırken sıklıkla karşınıza çıkar.
Bunları daha uzun anlatmak isterdim ama yazarak anlatmak gerçekten zor. Ben bu notları sadece bir başlangıç olsun diye sunuyorum, sakın görünce bişey anlamazsanız korkmayın. İnternetten biraz araştırmayla daha fazla bilgi edinebilirsiniz. En azından nereden başlanacağı belli olsun. Yeni başlayanlar için aklımda daha farklı bir proje var, bakalım ne çıkacak