Direct3D 8, je cherche un tueur en programmation ;-) !!

Direct3D 8, je cherche un tueur en programmation ;-) !! - Programmation

Marsh Posté le 01-03-2001 à 21:07:48    

je cherche un moyen en Direct3D 8 de faire des objets 3D (comme des cubes) dont les triangles peuvent être défini à partir d'une suite de vertices (sommets), je sais crée des objets à partir de vertices mêmes (je donne la suite des vertices et ensuite les vertices sont directement interprétés d'une certaine manière selon les flags que l'on passe en param. pour construire les triangles) ou à partir de mesh contenu dans des fichiers ".x", mais je sais pas définir les triangles à partir de certains vertices, du coup je sais pas faire un cube(à moins d'avoir des triangles qui se chevauchent).  Attention rien à voir avec les params (des flags) D3DPT_TRIANGLELIST ou ce genre de genre, ça n'a rien à voir avec cette fonction qui génère directement un objet 3D avec la liste définie de vertices. Je veux pouvoir énumérer certains vertices pour définir mes triangles (par exemple la liste 1, 5, 7  pour dire que mon triangle sera formé des sommets d'indices 1, 5 et 7 , les sommets eux sont définis avant bien sûr).
 
encore 2 petites questions:  
-comment définir plusieurs objets 3D sous Direct8 (je veux faire un cube et un sphère par exemple, indépendant l'un de l'autre)?  
-et enfin peut-on crée un fichier ".x" directement avec une application de rendu 3D (j'ai essayé avec 3DSMAX mais apparement on ne peut pas le faire de base, faut-il un plugin ?) ?  
 
voilà, merci à vous !


---------------
ronfl ...
Reply

Marsh Posté le 01-03-2001 à 21:07:48   

Reply

Marsh Posté le 01-03-2001 à 22:26:58    

Ca doit surement exister sous D3D.
En openGL on utilise un vertex array et glDrawElements pour tracer un triangle (par exemple) à partir de 3 indices référençant les vertexs dans le tableau.

Reply

Marsh Posté le 01-03-2001 à 22:48:09    

je ne comprends toujours pas ce que tu veux faire.
 
>Je veux pouvoir énumérer certains vertices pour définir mes triangles
 
Et c'est exactement ce que permet D3DPT_TRIANGLELIST.
 
Alors où est l'astuce :??:  :??:  :??:

Reply

Marsh Posté le 02-03-2001 à 14:30:03    

mais non z51 ou alors tu n'utilise pas le param pour la même fonction que moi ! c dommage je n'ai pas mes sources sur moi, et je ne me souviens plus de la fonction que j'appelais avec ce param (je crois pas que ce soit SetRender() ) mais tout ce que ça faisait c que mes vertices étaient tous pris dans l'ordre de leur définition et les triangles étaient formées ainsi ! comme le dit Verdoux ça existe en opengl et même avec DirectX7, mais avec la nouvelle façon de programmer avec DirectX 8 je n'ai aps encore vu comment on pouvais faire ce que je veux. Avec quelle fonction utilises-tu ce flag z51 ? de toute façon dès dimache soir je pourrai regarder mes sources et te dire ce que je fais exactement et ce que je veux faire .


---------------
ronfl ...
Reply

Marsh Posté le 02-03-2001 à 22:52:38    

Euh ... oui, je veux bien que tu me montres ton exemple...

Reply

Marsh Posté le 02-03-2001 à 23:35:12    

ok, je te montrerai ça demain soir (finalement je vais peut-être rentrez chez moi demain soir...)


---------------
ronfl ...
Reply

Marsh Posté le 04-03-2001 à 01:05:25    

voilà, dans mon code j'ai ça (c du Direct3D8):
 
"g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, (50-1)*2 );" et j'ai défini 50 vertices, donc ça va me lier tous les vertices pour me faire mes triangles...
 
moi ce que je veux c ça:
 
"
// Add a single face with all normals pointing in the same direction.
    D3DVECTOR avVertices[4] = { 0.0f, 0.0f, 0.0f,   0.0f, 0.0f, 1.0f,
                          1.0f, 0.0f, 1.0f,   1.0f, 0.0f, 0.0f };
    D3DVECTOR avNormals[4] =  { 0.0f, 1.0f, 0.0f,   0.0f, 1.0f, 0.0f,
                          0.0f, 1.0f, 0.0f,   0.0f, 1.0f, 0.0f };
    DWORD adwFaceData[] = { 4, 0, 0, 1, 1, 2, 2, 3, 3, 0 };
 
    if( FAILED( pMeshBuilder->AddFaces( 4, avVertices, 4, avNormals, adwFaceData, NULL ) ) )
  return FALSE;
    return TRUE;
"
 
merde c un peu le bordel cette indentation... bon ça c du directX 7, et tu vois la foncitone AddFace permet de définir une face avec une liste de vertices passé en param (adwFaceData)...
 
je voudrai pouvoir faire la même chose avec Direct3D 8, car avec Direct3D7, c le gros bordel pour faire ne serait-ce qu'un cube !
(mais pour l'instant je n'y arrive même pas avec Direct3D8 ;) ...)

Reply

Marsh Posté le 04-03-2001 à 01:31:44    

Je connais rien à DX8 mais ce lien peut t'intéresser:
http://www.wazooenterprises.com/tu [...] 1-D3D8.asp
Au début, c'est l'initialisation, la création d'un vertex buffer, d'un index buffer et enfin l'utilisation des vertex avec  
_pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,
        0,
        8,
        0,
        12);

Reply

Marsh Posté le 04-03-2001 à 15:07:13    

MERCI Verdoux !!!!! tu es mon sauveur, c exactement ce que je voulais !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed