Stencil buffer’ın ne olduğunu öğrenmem ve sonrasında “Portal yapılır bunla” fikrinin gelmesi ile başlayan proje.
Portal nedir diyenler için herkesin denemesini tavsiye edeceğim Valve’nin ürettiği bir oyun. Amaç oluşturduğumuz portallar yardımıyla başlangıç noktasından bitiş noktasına gitmek.
Peki “portal” nedir derseniz, şöyleki: iki tane kapı hayal edin, birinden girdiğimiz de aslında diğerinden çıkıyoruz. Türkçe de kurt deliği diye kullanılıyor (hoş aslında oda wormhole ya neyse) diye düşünüyorum.
Yani bir ss ile anlatmak gerekirse:
Bu dikdörtgen pencere gibi duranlar portallarımız oluyor, pembe renkli şekil sarı duvardaki portalın önünde, dikkat ederseniz kırmızı duvardaki portaldan baktığımızda hemen önde onu görüyoruz.
Daha iyi anlamak için programı deneyin =)
İki sürümü var, hemen hemen aynı. Başta windows ta yazmıştım, daha sonra linux üzerinde test ettim.
Windows sürümü için glut isimli kütüphaneyi kullanmanız gerekiyor. Kendisinin asıl amacı opengl komutlarını bir parça basitleştirmek ve opengl i platformdan bağımsız olarak çalıştırmak. Ama klavye fonksiyonları çok zayıf olduğu için windows.h kütüphanesinden bir fonksiyon kullanmak zorunda kaldım. Bu yüzdende linux sürümünde glfw diye glut yerine başka bir kütüphane kullandım.
glut hakında bilgi için
http://www.opengl.org/resources/libraries/glut/
glfw hakkında bilgi için
http://glfw.sourceforge.net/
glut sürümünde linker a glut opengl ve glu kütüphanelerini vermelisiniz. glfw için biraz daha fazla şu kütüphaneler lazım olaca: glfw, GLU, GL, X11, pthread, Xxf86m, m, Xrandr. Ayrıcı -L ile şu klasörüde vermelisiniz: /usr/X11R6/lib
Programı yazarken hiç comment yapmamıştım =) Şu an biraz eklesem de hala kaynak kodu açık olmaktan çok uzak. Şu an saat sabah 7 ve uykusuzluk sayesinde hiç şevkim kalmadı doğrusu =D İlerde projeyi geliştirmeye başlarsam daha açık bir şekilde anlatmayı düşünüyorum.
Çalıştırabilir dosyalar
Kaynak kodları (windows visual c++ da hazırlandı, direk olarak dsp dosyasını açabilirsiniz. linux eclipse ile hazırlandı. c eklentisini kurduktan sonra workspace ine atın)