Di Masa Depan Komputer Grafis Paling Unggul

Sabtu, 02 Juli 2011

Perbedaan dalam rotasi matriks antara OpenGL dan Konten directx Rate

Perbedaan OpenGL dan directx
Opengl:


 gluPerspective (45,0, lebar / tinggi, 0.1,100.0)
 glMatrixMode (GL_MODELVIEW)
 glLoadIdentity
 glRotatef (90,0,0,1)
 glTranslatef (0,5, -10)
 glBegin (GL_TRIANGLES)
         glVertex3f (1,0,0)
         glVertex3f (0,1,0)
         glVertex3f (-1, -1,0)
 glEnd



Directx

      D3DXMATRIX matTranslate, matRotate, matView, matProjection, matFinal;

         / / Membuat sebuah matriks rotasi
         / / D3DXMatrixRotationY (& matRotate, Waktu);
                
                 D3DXMatrixRotationZ (& matRotate, D3DXToRadian (90,0));
                 D3DXMatrixTranslation (& matTranslate, 0,10,0);
         / / Membuat matriks tampilan
         D3DXMatrixLookAtLH (& matView,
                            & D3DXVECTOR3 (0.0f, 0.0f,-40.0f), / / ​​posisi kamera
                            & D3DXVECTOR3 (0.0f, 0.0f, 0.0f), / / ​​tampilan-pada posisi
                            & D3DXVECTOR3 (0.0f, 1.0f, 0.0f)); / / arah atas

         / / Membuat sebuah matriks proyeksi
         D3DXMatrixPerspectiveFovLH (& matProjection,
                                (Float) D3DXToRadian (45), / / ​​bidang pandang horizontal
                                (Float) SCREEN_WIDTH / (Float) SCREEN_HEIGHT, / / ​​rasio aspek
                                1.0f, / / ​​dekat tampilan pesawat
                                100.0f); / / jauh pandangan-pesawat
 
Di OpenGL, Kita akan memutar segitiga berlawanan arah jarum jam 90 derajat yang baik dan juga terjadi di directx. Namun, jika kita menerjemahkan pada sumbu Y dengan jumlah di atas, kita naik directx pada sumbu Y-dunia asli begitu diputar segitiga kita adalah di dekat bagian atas layar. Pada OpenGL, jika kita melakukan hal yang sama, ujung segitiga diputar kita masuk ke kiri jumlah tersebut (sehingga di perbatasan kiri jendela).

Ketika kita mulai di OpenGL, kita memvisualisasikan ini di kepala kita sebagai sistem koordinat segitiga berputar 90 derajat berlawanan arah jarum jam dengan demikian, akan naik pada itu sumbu-y pada kenyataannya akan ditinggalkan di sumbu x-dunia yang mengapa dekat kiri layar.

Sekarang di DirectX, kita melihat kita mungkin salah atau mungkin kita harus berpikir berbeda tentang hal ini? Sepertinya di DX, manipulasi matriks hanya mengikuti selalu sumbu dunia.

Tidak ada komentar:

Posting Komentar