|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Telecamera videogame direct3d
Sto implementando un motore grafico al fine di poter sviluppare un video game, tool utilizzato vc6 directx8.1 e directd3d......
Praticamente ho messo, per adesso due oggetti: 1. un cubo 2. il terreno domanda: a. è giusto come sto facendo.............. ovvero adoperare le due telecamere , una del cubo e una del terreno........ questa è del cubo: D3DXMatrixLookAtLH(&view_matrix,&D3DXVECTOR3(CuboVista1, CuboVista2, CuboVista3), &D3DXVECTOR3(CuboVista4, CuboVista5, CuboVista6),&D3DXVECTOR3(CuboVista7, CuboVista8, CuboVista9)); g_pDevice->SetTransform(D3DTS_VIEW,&view_matrix); D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI/4, 1.33f,//g_D3DSettings.m_fScreenAspect 1.0f, 2000.0f ); g_pDevice->SetTransform( D3DTS_PROJECTION, &matProj); e questa è del terreno: D3DXMatrixLookAtLH(&view_matrix2,&D3DXVECTOR3(TerrenoVista_11, TerrenoVista_22,TerrenoVista_33),&D3DXVECTOR3(TerrenoVista_44, TerrenoVista_55, TerrenoVista_66), &D3DXVECTOR3(TerrenoVista_77, TerrenoVista_88, TerrenoVista_99)); g_pDevice->SetTransform(D3DTS_VIEW,&view_matrix2); D3DXMatrixPerspectiveFovLH(&matProj2, D3DX_PI/4, 1.33f, 1.0f, 2000.0f); g_pDevice->SetTransform(D3DTS_PROJECTION, &matProj2); .........oppure si deve adoperare una sola telecamera??? comunque devo dire che, due telecamere (una per il cubo e una per il terreno), come ho fatto io, per adesso vanno bene....... ................................ b. Vorrei sapere come gestire le collisioni (se non erro.....) ovvero il mio terreno ha delle montagne, spostandomi col tasto freccia UP, vado incontro alle montagne, ecco vorrei sapere, come fare per controllare di non entrare nei poligoni della montagna ma vorrei sapere cosa prendere in considerazione per far in modo di rimanere con la vista sempre al di fuori dei poligoni, in pratica scalare il terreno, camminarci sopra e non entrare in esso......................... come variabili ho queste per un vostro un riferimento: for(i = 0; i < m_dwNumOfVertices; i++) { vNormal.x = pSumVertexNormal[i].x / pNumOfSharedPolygons[i]; vNormal.y = pSumVertexNormal[i].y / pNumOfSharedPolygons[i]; vNormal.z = pSumVertexNormal[i].z / pNumOfSharedPolygons[i]; D3DXVec3Normalize(&vNormal, &vNormal); pcvVertices[i].nx = vNormal.x; pcvVertices[i].ny = vNormal.y; pcvVertices[i].nz = vNormal.z; grazie e spero di essere stato un pò chiaro ........... lo sò devo studiare un pò di geometria, infattoi i tutorial parlano di normale ecc,ecc, ma non riesco a fare l'algoritmo proprio perchè sono a corto di esperienza!!!!!!!!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2001
Città: Lissone (Brianza rulez!)
Messaggi: 2229
|
Uhm... se sei alle prime armi studiati assolutamente i tutorial
Altrimenti non vai da nessuna parte... lo so per esperienza perchè sto lavorando a un motore 3d come tesi, in OpenGL però... ma i concetti sono gli stessi... Comincia a capire la telecamera... poi gestisci bene i movimenti... poi fai qualcosa con gli oggetti... quando ha un mondo navigabile abbastanza solido puoi buttarci dentro texture, collision detection e chi più ne ha più ne metta Un consiglio... gestisci tutto tramite classi... altrimenti quello che ti ritrovi difficilmente riuscirai a gestirlo una volta che diventerà GROSSO... e ti assicuro che diventa GROSSO un motore 3d Ciau!
__________________
New MacBook Air 13" 4GB // Intel Core 2 Q9300 - ASUS P5Q-EM - 4096MB DDR2 by Corsair - nVidia 9800GT-g - HD 250GB Seagate - HD 500GB WD - HD 320GB WD - SSD Intel X25-M 80GB ...all inside "LC10-E Black" by SilverStone! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:08.



















