okay
15-12-2003, 20:57
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!!!!!!!!!
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!!!!!!!!!