Sunday, February 26, 2012

OpenGL'de Doğruları Kullanarak Ekrana Harf Yazdırmak

Herkese merhaba, bugünkü yazımda Java üzerinde OpenGL programlamaya giriş yapmayı planlıyorum. Basit bir program yazıp, bu programı çok fazla detaya girmeden açıklayacağım. Programımız OpenGL içinde hazır bulunan "glVertex2f" fonksiyonunu kullanarak ismimizin baş harfini ekrana yazdıracak. Bu programın amacı, hem OpenGL'deki koordinat sistemini kavramak hem de "glVertex2f" fonksiyonunun kullanımını görmek ve anlamak. Yazıyı daha fazla uzatmadan kodumuzu veriyorum.

Saturday, February 25, 2012

Eclipse İçine OpenGL Kurulumu

Herkese merhaba, geçmiş yazılarımdan birinde Visual Studio 2010 içine OpenGL kurulumunu anlatmıştım. Bu yazımda ise Eclipse içine OpenGL kurulumundan bahsedeceğim. Öncelikle sistemimize uygun ve ihtiyacımız olan JOGL kütüphanesini buradan indiriyoruz. Şuan üzerinde çalıştığım sistem 32-bit Windows XP olduğu için ben "jogamp-windows-i586.7z" kütüphanesini indirdim. İndirdiğimiz dosyayı WinRAR programı ile açabilirsiniz. Arşivi açtıktan sonra, "jogamp-windows-i586 > jar" klasörü içindeki "gluegen-rt.jar" ve "jogl.all.jar" dosyalarını Eclipse içindeki projemize ekleyeceğiz. İlk olarak Eclipse'i açıp, menuden "File > New > Java Project" seçeneğini seçip, açılan pencereden projemize isim koyup "Finish" butonuna basacağız.

Tuesday, February 21, 2012

Haftanın Tavsiyeleri - 6

Haftanın Filmi - Malcolm XSpike Lee


Brothers and sisters, I am here to tell you that I charge the white man. I charge the white man with being the greatest murderer on earth. I charge the white man with being the greatest kidnapper on earth. There is no place in this world that this man can go and say he created peace and harmony. Everywhere he's gone he's created havoc. Everywhere he's gone he's created destruction. So I charge him. I charge him with being the greates kidnapper on this earth! I charge him with being the greatest murderer on this earth! I charge him with being the greatest robber and enslaver on this earth! I charge the white man with being the greatest swine-eater on this earth. The greatest drunkard on this earth! He can't deny the charges! You can't deny the charges! We're the living proof *of* those charges! You and I are the proof. You're not an American, you are the victim of America. You didn't have a choice coming over here. He didn't say, "Black man, black woman, come on over and help me build America". He said, "Nigger, get down in the bottom of that boat and I'm taking you over there to help me build America". Being born here does not make you an American. I am not an American, you are not an American. You are one of the 22 million black people who are the *victims* of America. You and I, we've never see nany democracy. We didn't see any... democracy on the-the cotton fields of Georgia, wasn't no democracy down there. We didn't see any democracy. We didn't see any democracy on the streets of Harlem or on the streets of Brooklyn or on the streets of Detroit or Chicago. Ain't no democracy down there. No, we've never seem democracy! All we've seen is hypocrisy! We don't see any American Dream. We've experienced only the American Nightmare!
Haftanın Kitabı - The Grapes of Wrath / John Steinbeck

Haftanın Müziği - Feeling Good / Nina Simone

Sunday, February 19, 2012

Unity'de Oyun Programlama - [Ders - 1]

Herkese merhaba, yaklaşık bir ay önce Unity ile ilgilenmeye başladım. Bilmeyenler için Unity hakkında ufak bir açıklama yapayım. Unity, 3D oyun motorudur. Daha detaylı bilgi için resmi sayfasına bakabilirsiniz. Bu yıl üniversitede bu oyun motorunu öğrenip, kullanacağımız bir ders açıldı. "SE 350" kodlu bu dersin adı "Oyun Programlama". Derse çok yoğun ilgi oldu. Yaptığım gözlemlere göre, teoriden ziyade, uygulama yapılabilecek dersler öğrenciler tarafında daha fazla ilgi topluyor, diyebilirim. Daha fazla uzatmadan, asıl konuya değinmek istiyorum. Dersten sonra hepimize ufak bir proje verildi. Proje kısaca şöyleydi; Unity'de kontrol edebileceğimiz bir karakter oluşturup, bu karakter ile etrafımızda var olan bir takım objeleri toplamak. Unity hakkında hiçbir fikri olmayanlar için zor bir proje olarak gözükebilir. Fakat tek satır kod dahi yazmadan, istediklerimizi kolayca yapabiliriz. Şimdi hep birlikte bu projeyi yapmaya başlayalım. Öncelikle Unity'i açıp, menüden File > New Project seçeneğini seçip, yeni bir proje oluşturuyoruz.

Thursday, February 16, 2012

Visual Studio 2010 İçine OpenGL Kurulumu

Herkese merhaba, bugün sizlere, bu dönem ilk dersine girdiğim "SE 313" kodlu, "Bilgisayar Grafiği ve Görsel Programlama" adlı ders için gerekli olan OpenGL kurulumunun Visual Studio 2010 içine nasıl yapılacağını anlatacağım. Öncelikle ihtiyacımız olan glut-3.7.6-bin dosyasını buradan indiriyoruz. Daha sonra Visual Studio 2010’nun kurulu olduğu dizine gidiyoruz. VC klasörü içinde ki,  include klasörü içine GL diye klasör oluşturuyoruz. İndirdiğimiz dosya içinde ki glut.h dosyasını GL içine  atıyoruz. Daha sonra ise yine VC içinde ki lib klasörüne glut32.lib dosyasını atıyoruz.  Sıra geldi .dll dosyasına. glut32.dll dosyasını ise Windows/system32 klasörü içerisine atıyoruz. Şimdi sıra geldi test projesi oluşturmaya. Visual Studio 2010'u açtıktan sonra ilk önce, menülerden File > New > Project'i seçerek, proje penceresini açıyoruz, ardından bu pencereden Empty Project seçeneğini seçip projemize bir isim veriyoruz.

Sunday, February 12, 2012

Haftanın Tavsiyeleri - 5

Haftanın Filmi - War Horse / Steven Spielberg


Haftanın Kitabı - The Hunchback of Notre-Dame / Victor Hugo


Haftanın Müziği - All Of This Could Have Been Yours / Shooter Jennings & Hierophant

Saturday, February 11, 2012

GGJ - İzmir 2012

Herkese merhaba, bu yazımda, bu yıl ilk defa katıldığım GGJ'den bahsetmek istiyorum. Öncelikle GGJ nedir, bilmeyen arkadaşlarımız için ufak bir bilgilendirme yapayım. GGJ(Global Game Jam) türünün tek örneği ve tüm dünyada aynı 48 saat içinde gerçekleştirilen bir oyun geliştirme etkinliğidir. Türkiye'de her yıl Ankara ODTÜ'de yapılmaktayken, bu yıl İstanbul, Ankara, İzmir ve Elazığ olmak üzere 4 ilde birden gerçekleştirildi. Bunun biraz öncesine gidersek, bu dönem başında arkadaşlarla GGJ Ankara'ya katılma gibi bir planımız vardı. Fakat GGJ'nin bu yıl İzmir'de de düzenlenmesi, işleri biraz değiştirdi. İlk başta İzmir'deki GGJ'nin ilk defa yapılacağını göz önüne alarak Ankara'da olandan daha iyi bir şey çıkmayacağını düşünüyordum ve Ankara'ya gitmekte diretiyordum. Ancak gerek diğer arkadaşların tutumu gerek GGJ İzmir ekibinin hevesli ve özverili çalışması düşüncemin değişmesinde önemli rol oynadı. Netice olarak GGJ İzmir'e katılma kararı aldım ve başvurumu yaptım. Açıkcası bu benim ilk GGJ serüvenim olmasına rağmen başvurumun reddedileceğini hiç düşünmedim. Başvurum onaylandıktan sonra GGJ gününü beklemeye başladım. Yazımın devamını GGJ izlenimleriyle devam ettirmek istiyorum. GGJ İzmir'de birçok tanıdık yüzün yanı sıra yeni insanlarla tanıştım.

Saturday, February 4, 2012

Izmir Mass Transit Guide - [Proje]

Herkese merhaba! Bugün Android işletim sistemi üzerinde çalışan cep telefonları için, üniversite 3. sınıfta "SE 310" kodlu, "İleri C++: Şablonlar ve Soysal Programlama" dersinde Javascript, XHTML, Google Map API(V3) ve Qt kütüphanesini kullanarak yazdığım daha çok tasarım odaklı olan "Izmir Mass Transit Guide" projesini anlatacağım. Proje kısaca İzmir belediye sınırları içerisinde seçilen iki nokta arasında, başlangıç noktasından varış noktasına en hızlı ulaşımı sağlayacak şekilde belediye otobüslerini kullanarak aktarmaları da göz önünde bulundurup seyahat planı oluşturup, oluşturulan planı Google Map üzerinde gösteriyor. Projeyi açıklamaya başlamadan önce ufak bir kaç noktaya değinmek istiyorum. Bu proje client(müşteri) ve server(sunucu) olmak üzere iki kısma ayrılıyor. Projenin client yani istek talep eden kısmını ben yazdım. Ancak projenin server kısmı, dersi aldığımız öğretim görevlisi tarafından verildi. Bu yüzden projenin sadece client kısmına ait kaynak kodunu paylaşacağım. Projeyi tekrar kısaca anlatacak olursam, kullanıcı programı açtığı zaman karşısına aşağıdaki gibi bir ekran gelmektedir. Programın çalışma prensibi oldukça basit. Bulunduğumuz ve varmak istediğimiz noktanın bilgilerini sunucu tarafında çalışan koda yolluyoruz, sunucu almış olduğu bu verilere göre başlangıç noktasından varış noktasına en hızlı ulaşımı sağlayacak şekilde, aktarmaları da göz önünde bulunduracak şekilde bir seyahat planı oluşturuyor. Son olarak bu plan client tarafına iletiliyor. Ve bu veriyi javascript aracılığı ile işleyip, ekrana bastırıyorum.