PDA

Tam Sürümünü Görmek İçin : opengl için java mı c++ mı?


elix
22/12/2006, 18:12
opengl ile uğraşmaya başladım.

Javaya alışık olduğum için onun opengl kütüphanelerini denedim. Jogl'i daha önceden denemiştim, çalıştıramadım. Şimdi lwjgl'i kurdum, çalıştırdım ama dökümantasyonlarının çok yetersiz olduğunu gördüm. tutoriallerin çoğu da malum c++ ile yazılmış.

ayrıca opengl ile yazılmış bazı kütüphaneleri kullanmak istersek bunların çoğu da c++ içindir muhtemelen, değil mi?

görünüşe göre c++ ile çalışmak en mantıklısı ama üniversitede data structures dersindeki ödevler bıktırmıştı beni, pointerlar ile uğraşmak istemiyorum gene. bazı yerlerde de java ile oyun programlayı savunanlara rastlıyorum. ondan dolayı biraz kararsızlığa düştüm.

bu bıkkınlık dili yetersiz bilmekten mi kaynaklanıyordur, c ile biraz uğraşınca alışırmıyım sizce.

ufak bir soru daha; ide olarak ne tavsiye edersiniz. opengl ile ilgili basit bir ödev için visual studio 6 ve c++ ile kullanmıştım, daha iyi bir düzenek kurmak gerek. visual studio 2005 veya eclipse var benim aklımda.


quasimodo
23/12/2006, 15:21
Bende C++ ta openGL i kullanarak üç boyutlu bir imge çizip onu hareket ettirecem sen bununla ilgili birşeyler biliyormusun? Kaynak döküman falan?

mr1yh1
23/12/2006, 16:25
opengl öğrenmek için iyi C bilmeye gerek yok.
bence http://fly.cc.fer.hr/~unreal/theredbook/ (red book) yeterli bir kaynak,
oradaki kodları kopyalıp, yapıştırıp, düzenleyerek
opengl öğrenilebilir.
bu amaç için hızlı açılıp kapanan basit bir IDE yeterli bence.

sadece projeye başlarken opengl'i ve glut ı projeye dahil etmekte zorlanabilirsin.
Yardımcı olurum.
devC++ , code::blocks hazır proje şablonları içeriyor.
code::blocks için şu şablonlar varmış:
http://www.codeblocks.org/whatsnew.shtml
Irrlicht 3D Graphics Engine
Ogre 3D Graphics Engine
GLFW ( glut yerine kullanılabilen popüler bir kütüphane )

fakat neden opengl öğrenmek istiyorsunuz ?
amaç oyun tarzı birşey ise
bence bir oyun motoru seçilmeli, grafik motoru değil.
(yukarıdaki ; Irrlicht 3D, Ogre 3D oyun motorları.. )

bluekid
23/12/2006, 16:46
CodeBlocks'u tavsiye edeceğim // Windows Linux MacOs gepsinde kullanabiliyorsunuz
öncelikle programı indirmek için buradan (http://derindelimavi.blogspot.com/2006/10/code-blocksa-giri.html) başlayın
örnekler için
Glut (http://derindelimavi.blogspot.com/2006/03/code-blocks-ile-glut.html)
OpenGL (http://derindelimavi.blogspot.com/2006/03/codeblocks-iin-opengl-dersleri.html)
OpenGL 2 (http://derindelimavi.blogspot.com/2006/06/opengl-rnek-programlar.html)

elix
23/12/2006, 17:41
bu amaç için hızlı açılıp kapanan basit bir IDE yeterli bence.


fakat neden opengl öğrenmek istiyorsunuz ?
amaç oyun tarzı birşey ise
bence bir oyun motoru seçilmeli, grafik motoru değil.
(yukarıdaki ; Irrlicht 3D, Ogre 3D oyun motorları.. )

universitede bitirme projesini computer graphics den aldım ve şu anda computer graphics dersi alıyoruz. opengl ile ilgili ödevler başladı.

ondan dolayı gelişmiş bir ide sordum.

bu akşam inşaallah verdiklerinizi inceleyim, ilgili sorularla geri dönerim.

teşekkürler.

mr1yh1
23/12/2006, 21:12
yukarıda redbook için verdiğim linkdeki döküman problemli.
kitabın eski bir sürümü, kesinlikle uzak durmak lazım :)

bu geçerli olanı:
http://www.gamedev.net/download/redbook.pdf

elix
24/12/2006, 11:32
Bende C++ ta openGL i kullanarak üç boyutlu bir imge çizip onu hareket ettirecem sen bununla ilgili birşeyler biliyormusun? Kaynak döküman falan?

şurada ayarlar anlatılıyor,
http://www.itcomen.com/PermaLink,guid,6aa4c2f7-51ef-4969-9957-a0041b6dedf5.aspx

burada da var bişeyler.
http://www.csharpnedir.com/makalegoster.asp?MId=528

elix
24/12/2006, 11:41
codeblocks'da sorun çıktı.

dün bir proje oluşturdum. hiçbirşey compile etmedim. bilgisayarı kapatırken windows programı sonlandıramıyor diye hata verdi. hala çalışıyormuş program. en sonunda bazı hata mesajlarının ardından bilgisayar kapandı, artık ne olduysa anlamadım.

şimdi codeblocks'u baştan açtığımda dün yaptığım ayarların kaydedilmediğini gördüm. dünkü projeyi açtım, compile etmeye çalıştım şu hatayı verdi:
Compiling: main.cpp
Execution of 'mingw32-g++.exe -Wall -g -c main.cpp -o obj\Debug\main.o' in 'C:\Documents and Settings\Administrator\Belgelerim\cg projects\f2' failed.
Nothing to be done.

yeni proje felan açtım olmadı.

ayrıca programı kapattığımda kapanmıyor, yani kapanmış gibi görünüyor ama arkada hala açık. codeblocksu tekrar açmaya çalıştığımda another instance of this program is still running gibi birşeyler yazıyordu.

kim bilir ne oldu.

elix
24/12/2006, 11:59
tamam sorunlar halloldu.
program kapanırken değişiklikleri kaydedeyimmi sorusuna "don't annoy me again" kutusunu işaretlediğimde program gerçekten kapandı.

compile sorunu ise MinGW'nin path'i ile ilgiliymiş. Compiler settings'de mingw'nin pathi default olarak c:\MinGW görünüyormuş, onu değiştirip c:\program files\mingw yaptığımda düzeldi.

bluekid
24/12/2006, 15:25
Tebrikler artık windowsta yada Linuxda aynı IDE'yi kullanarak program yazabileceksiniz

mr1yh1
24/12/2006, 16:34
her IDE kendine özgü birşeyler içeriyor.
bluekid, code::blocks da deneyimli görünüyor burada sorun kalmadı.:)

herhangi bir glut/opengl programı çalışmış ise,
proje şablonu ve kütüphaneler ile ilgili bir sorun da yok.

@quasimodo nun sorusu ile ilgili, aslında genel olarak:
değişik kaynaklar aramak yerine,
redbook a bağlı kalarak, adım adım gitmek faydalı olur gibi geliyor.

buradan sonrası, hazır programların modifikasyonu ...
bence değiştirdiğiniz örnek programları kaybetmeyin.
daha sonra geriye dönüp,
merak ettiğiniz şeyleri test etmeniz kolay olur.
yani bol bol proje açmaca.

elix
24/12/2006, 17:43
tamam güzel sistem çalışıyor şu an, yalnız internetten bulunan örnekler üzerinde çalışırken sorun olmaz mı?

nehe'deki derslerin farklı diller ve farklı ideler için hazırlanmış versiyonları var. farklı diller için farklı kodlar olması makul ama aynı dilde yazılan bir örneğin oluşturulduğu ideden farklı bir idede çalışmaması pek hoşuma gitmedi.

rasgele bir tanesini çalıştırmayı deneyim dedim, 34. dersin visual c++ versiyonunu indirdim, arazi yüzeyiydi. codeblocks da "ms visual c++ 6 project files" olarak indirdiğim proje dosyasını açtım. ufak compile sorunlarını hallettik, program açıldı, full screendemi çalışsın diye sordu sonra pencere açıldı ve can't find the heigth map diye hata verdi. kendim glut projesi oluşturdum ve mainin içine kodları yapıştırdım gene aynı hata. indirdiğim dosyadaki exe dosyasını çalıştırdım çalıştı, visual studiodan da denedim onda da sorun yok.

bluekid nehedeki ilk 10 dersi çevirmiş ama biraz daha büyük bakmak lazım olaya, napacaz, sorun olur mu bu mesele?

mr1yh1
24/12/2006, 19:29
IDE den IDE ye proje dosyası denen şey değişir,
temel işlemler menulerde nerede, nasıl yapılıyor filan değişir...
C/C++ deki makefile yeterli aslında, ama proje dosyaları kullanıyorlar.

derleyiciden derleyiciye değişiklik diyorsan, maalesef evet.
bu tarz detayları ben de bilmiyorum, bilen adamlara guru(->:kuul: ) diyorlar.
fakat opengl ve glut ile ilgili problem yaşayacağını sanmıyorum.

benim birkaç örnekte gördüğüm fark ,
pragma direktifi ile kütüphane bağlama olayı var(galiba VisualC++'de ).
( javadaki import gibi, kod içinden yapıyorlar. )
gcc/mingw ile sadece makefile içerisinden yapılabiliyor bu.

elix
25/12/2006, 15:06
C/C++ deki makefile yeterli aslında, ama proje dosyaları kullanıyorlar.
...
benim birkaç örnekte gördüğüm fark ,
pragma direktifi ile kütüphane bağlama olayı var(galiba VisualC++'de ).
( javadaki import gibi, kod içinden yapıyorlar. )
gcc/mingw ile sadece makefile içerisinden yapılabiliyor bu.

evet, derlendiğinde ignoring #pragma comment yazıyordu.
pragmaların comentlerine baktım; // Link OpenGL32.lib ve // Link Glu32.lib yazıyordu. ben de compiler ayarlarında linker'a ekledim bunları(visual studio'daki dosyaları gösterdim :) mingw de .lib dosyaları yoktu. sanırım onun yerine libopengl32.a ve libglu32.a dosyaları var. ). pragmadaki kütüphane bağlama olayları codeblocks'da bu şekilde yapılır sanırım.

nehenin 34. dersi için bahsettiğim hata("can't find height map") düzelmedi tabi. koda baktım, data klasörünün altında terrain.raw diye arazi yüzey bilgilerinin olduğu bir dosyayı bulamayınca verdiği hataymış bu. bu dosyayı ide üzerinden (menülerden project-> add files bölümünden) projeye eklemiştim dün ama çalışmamıştı. Bugün baktım tekrar , dizini düzgün görmediğinden açamıyordur dedim. proje klasörünü açtım baktım, fiziksel olarak dosyayı oraya eklememiş. ben de data klasörünü sırasıyla proje klasörünün heryerine ekleyerek denedim ama hiçbir yerden çalışmadı. oluşturulan exe dosyasının yanına koyup exe'yi çalıştırdığımda çalıştı, ama dediğim gibi ide üzerinden projeyi çalıştırdığımda çalışmadı.

soru şu: projenin kök dizini neresi (var mı) ?

artık konu başlığından uzaklaştı mesele ama konunun devamı olduğu için buraya soruyorum.

mr1yh1
27/12/2006, 13:14
eclipse'de projenin kök dizini projenin adını taşıyan klasör.

bir de :
bu dizine bağlı dosya yollarını verirken, mutlak olarak vermemen lazım.
yani proje adı test,
myresources klasörü altında a.png dosyası var.
( test/myresources/a.png şeklinde )

bu dosyaya ait yolu "myresources/a.png" olarak vermen lazım.
"/myresources/a.png" işe yaramaz.

elix
27/12/2006, 13:55
ben de ilk başta eclipse'deki bildiklerime göre yapmıştım, codeblocks o şekilde çalışmıyor gibi görünüyor.

senin mesajdaki mutlak yazısını görünce ampül yandı. kodda absolute path(mutlak dizin) vermeyi denemek aklıma gelmemişti, senin mesajı görünce jeton düştü. "C:/Documents and Settings/Administrator/..vs../Terrain.raw" şeklinde yaptım oldu. :) sağol.

bluekid
27/12/2006, 17:51
@elix
dersi için bahsettiğim hata("can't find height map") düzelmedi tabi. koda baktım, data klasörünün altında terrain.raw diye arazi yüzey bilgilerinin olduğu bir dosyayı bulamayınca verdiği hataymış bu. bu dosyayı ide üzerinden (menülerden project-> add files bölümünden) projeye eklemiştim dün ama çalışmamıştı. Bugün baktım tekrar , dizini düzgün görmediğinden açamıyordur dedim. proje klasörünü açtım baktım, fiziksel olarak dosyayı oraya eklememiş. ben de data klasörünü sırasıyla proje klasörünün heryerine ekleyerek denedim ama hiçbir yerden çalışmadı. oluşturulan exe dosyasının yanına koyup exe'yi çalıştırdığımda çalıştı, ama dediğim gibi ide üzerinden projeyi çalıştırdığımda çalışmadı.

soru şu: projenin kök dizini neresi (var mı) ?

Biraz geç kaldım ama
Project->Properties den Targets tabında execution working dir kısmından ayarlana bilir

project-> add files bölümünden ekleyerek fiziksel olarak dosyayı proje dizinine eklenmez
sizde öğrenmiş oldunuz. :)

bir de yeni konu olarak sorarsan daha sonra ulaşılması kolay olur
kolay gelsin