SORU
10 Mart 2009, Salı


Glloadıdentitiy ne yapar() OpenGL?

OpenGL yeniyim ve benim kod benim rasgele tüm fonksiyonları ile biraz bunaldım. Onlar çalışmak ve bunları kullanmak için zaman biliyorum, ama benim onlara ihtiyacım var neden ya da onlar tam olarak ne olduğunu bilmiyorum.

glLoadIdentity() kimlik matrisi ile geçerli matrisi yerini biliyorum, ama tam olarak ne yapar? Eğer her program gerektiriyorsa, neden aksi belirtilmediği sürece, varsayılan olarak kimlik matrix değil mi? Ne yaptıklarını bilmeden Şifremi fonksiyonları için sevmiyorum. Sadece OpenGL 2D zengin müşteriler için kullanıyorum unutmayın eğer öyleyse bu bir şey 3D için çok bariz ise cahilliğimi mazur görün ben.

Ayrıca glMatrixMode(GL_PROJECTION) VS glMatrixMode(GL_MODELVIEW) hakkında kafam biraz karışık.

CEVAP
10 Mart 2009, Salı


Matrisini, projeksiyon ve modelview matris açısından, aslında matrix'e varsayılan durumuna sıfırlanır.

Umarım, glTranslate glRotate her zaman matrisi mevcut durumuna göredir. Eğer glTranslate, ararsanız örneğin, the matrix"', kökeni değil. pozisyon mevcut dönüştürülmesi yani Ama isterseniz baştan başlamak uzaklığa, o zaman sana haber glLoadIdentity() glTranslate matris hangisi şimdi yer kökeni veya glRotate matrix hangisi şimdi odaklı varsayılan yön.

Tam olarak doğru değil 1, benzer bir durum olduğunu Boon cevabı bence. Matrix aslında bu gibi görünüyor:

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

Kimlik numarasıdır. Nimet doğru, matematiksel olarak, herhangi bir matris çarpımı ile matrix (matris veya bir şeye benzeyen; çapraz olanlar, her şeyin 0s) sonuç olarak orijinal matris, ama inanmıyorum diye açıkladı bu yüzden önemli.

Neden bu önemli, çünkü OpenGL çarpar tüm pozisyonları ve rotasyonlar ile her matris; ne zaman mesela çizdiğiniz bir çokgen (glBegin(GL_FACE) bazı noktaları glEnd()), çevirir "dünya uzay" tarafından çarpılmak ile MODELVİEW ve sonra da çevirir onu 3D için 2D ile çarparak bu PROJE matris ve veren 2D noktaları ekran ile birlikte derinlik (ekran 'kamera'), kullandığı çizmek için piksel. Ama ne zaman bu matris kimliğini matrix, nokta çarpımı ile kimlik matrisi ve bu nedenle değil değişti, bu yüzden matrix etkisi yoktur; yok tercüme noktaları, değil Döndür onları, bırakır onları.

Bu biraz daha açıklar umarım!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • joshsnice

    joshsnice

    28 Kasım 2006
  • PlayStation

    PlayStation

    16 Aralık 2005
  • bored before i even began

    bored before

    30 Mart 2009