PDA

Tam Sürümünü Görmek İçin : opengl-Obje Okuyup Hareket Ettirme


elix
28/01/2007, 03:08
Aklım biraz karışık, yazacaklarım düzensiz olursa kusura bakmayın.

computer graphics dersi alıyoruz. Dersin çoğunda matematik gördük ve bir anda opengl'in ortasından girdik işe. Son proje olarak bir insan modelini harici bir obje dosyasından okuyup ekrana iki insan çizdirmemiz ve mouse ile seçilen insanın bacaklarını hareket ettirmemiz istendi. Yalnız, derste sadece modelview matrisin hesaplanması ile ilgili matematiksel şeyler gördük. Obje dosyası nasıl okunur, mouse ile obje seçme nasıl olacak vs, kısacası opengl ile ilgili pek bişey gösterilmedi derste. Zaten hoca da pek bilmiyor, obje dosyasının formatını sorduk bilmiyorum bakın bişeyler dedi, o kadar yani... neyse maksadım hocayı kötülemek değil, olaya yabancı olduğumu belirtmek.

Şimdi;

1- Dosya okumayı nasıl yapabilirim, ve sizce uygun dosya formatı nedir?

2- Bildiğiniz hazır insan modeli bulabileceğim site var mı?

3- Mouse ile seçme olayı ile ilgili örnek veya anlatım var mı(ingilizce sorun değil)?

4- Bacakları hareket ettirme, sorunun bu kısım biraz ayrıntılı:

Hoca, modelde belin altında kalan kısmı sağ ve sol diye ikiye ayırıp her bir kısmı ayrı modelview matris ile çarpmaktan bahsetti. Böyle mi yapılır bu iş? objenin poligonlarının kodda nasıl elde edildiğini bilmediğimden aklımda pek şekillendiremiyorum.


Sormak istediğim ayrı bir konu daha var, onda da iskelet hareketi var, bu konuyla ilgisi olabilir belki. Buraya yazıyorum o sorumu da:

soft body(skin) movement nedir? Openglde son yaptığımız ödeve öyle diyor hoca. Bir silindiri eklem noktasından eğdik, kol hareketi yaptırdık yani. Eklemde yumuşak bir geçiş yaptık, silindir ortadan ikiye iki ayrı kütük olarak bölünmüyor.

Her bir kemik için ayrı bir matris var. Eklem bölgesinde bu iki matris interpole edilip yeni bir matris elde ediliyor ve silindirin bu bölgedeki halkaları çizilirken bu interpole edilmiş matrisle çarpılıyor. Çok mu teknik oldu :) .

Ufak bir sorun var burada, ben onu öğrenmek istiyorum aslında; silindirin halkaları eklem noktasında ayrı ayrı duruyor, şu adrese resmini koydum:
[img=http://img241.imageshack.us/img241/7026/resim2no9.jpg] (http://img241.imageshack.us/img241/7026/resim2no9.jpg)

Her bir halkayı çizdirirken farklı bir modelview matris kullandığımdan kaynaklanıyor, bir önceki mesajımda glBegin ile glEnd arasında modelview matrisi değiştirmeyle ilgili sorum bunun içindi. Halkaların ayrı durmaması için gerekiyordu, ama opengl desteklemiyormuş.

polygonların vertexlerini kendim tek tek gerekli matrisle çarpıp yapabilirim ama o zaman yavaş oluyormuş. loadmatrix komutunda çarpım işlemini grafik işlemcisi yaptığından hızlı oluyor demişlerdi yanlış hatırlamıyorsam.

Böyle bir iş(soft skin movement ya da her ne diye anılıyorsa) raconuna göre nasıl yapılır onu merak ediyorum.


gurelcenk
28/01/2007, 10:32
opengl konusunda bilgili değilim ama meraklıyım
yakın zamanda şu linkleri buldum
belki sorularınıza yanıt bulursunuz
kolay gelsin
http://fly.cc.fer.hr/~unreal/theredbook/
http://www.opengl.org/resources/code/samples/redbook/

http://nehe.gamedev.net/lesson.asp?index=01

smish
28/01/2007, 13:24
Geçen sene böyle değildi bu hoca,
beklentileri herzaman artıyor herhalde...

Sen yine de kitaplardan bi karıştır. En güzel yer, www.opengl.org altında GLUT utility sayfası.

melix.

elix
28/01/2007, 13:35
hocanın söylediği bir sözü aktarıyorum: "Bir şeyi öğrenmenin en iyi yolu, o konunun dersini vermektir." :) yorumu size bırakıyorum.

her sene edindiği tecrübeleri bir sonraki seneye aktarıyor, gereksiz şeyleri farkedip eliyor.

opengli javada yazıyorum, glut pek işime yaramayacak sanırım.

mr1yh1
28/01/2007, 14:05
jogl içerisinden glut fonksiyonlarına ulaşabilirsin.
GLUT glut = new GLUT();

redbook içersinde "Selection and Feedback" kısmında mouse ile seçme konusu var.

http://fivedots.coe.psu.ac.th/~ad/jg/jogl3/jogl3.pdf
bu dökümanda obj Loader tanımlanmış.
bazı hazır Loader sınıfları için linkler verilmiş.

resimdeki silindire benzemiyor,bir çemberler yığınına benziyor
eğer haklı isem, yüzey tanımlaman lazım.

bluekid
29/01/2007, 09:24
senin tabirinle obje dosyası tanımına uyan oyunlar için hazırlanmış dosya yapıları var
açıklamalar ve hazır kodlar var bir inceleyi ver

http://derindelimavi.blogspot.com/2006/06/opengl-rnek-programlar.html
http://tfc.duke.free.fr/old/models/md2.htm

kolay gelsin