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.
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.