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