Pages: 1
- Accueil forums
- » Aide Irrlicht.NET et .NET CP
- » Irrlicht .NET CP (C#) et Trimesh ODE
06-11-2006 01:36:47
- Zac
- Membres
- Date d'inscription:
- Messages: 5
- IP: 24.202.8.221
- Courriel
Quelqu'un peu me donner du code pour convertir les mesh Irrlicht en Trimesh ODE ?
Ca fait 10 heures que j'essaye, avec ce tutorial (C++): http://thomas.webtracker.ch/jahia/Jahia/pid/481
(voir section Converting Irrlicht Meshes to ODE TriMesh)
Merci infiniment
Hors ligne
06-11-2006 07:10:00
- kedu
- Modérateurs

- Date d'inscription:
- Messages: 155
- IP: 212.194.234.246
- Courriel
Hehe je sais que Copland va bientôt s'attaquer à cette partie et j'imagine qu'il partagera le code...
Cela dit, si tu trouves avant lui et que personne n'a répondu à ce problème entre temps, n'hésite pas à revenir ici hein ![]()
Hors ligne
06-11-2006 10:52:32
- Copland
- Modérateurs
- Date d'inscription:
- Messages: 657
- IP: 90.5.162.149
- Courriel Site web
Hello,
Hehe je suis dessus hein no problem j'ai quasi fini, pour l'instant ça bouge pas j'essai de comprendre pourquoi j'ai dû oublier une toute petite connerie
.
@+
Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.
Hors ligne
06-11-2006 14:14:08
- Copland
- Modérateurs
- Date d'inscription:
- Messages: 657
- IP: 90.5.162.149
- Courriel Site web
Bon finalement ça bouge bien pour les autres objets :s.
J'ai bien une collision correcte avec mon trimesh mais uniquement si se dernier est statique...Je cherche comment faire pour que ça collisionne avec les objets qui bougent maintenant
.
EDIT:C'est bon j'ai trouvé, ça marche tout simplement pas avec les Plane de ODE que j'utilisais avec mon sol
.
Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.
Hors ligne
06-11-2006 18:32:09
- kedu
- Modérateurs

- Date d'inscription:
- Messages: 155
- IP: 86.64.79.165
- Courriel
Ouaa c'est bon ça
Vivement qu'on l'intègre !
Hors ligne
06-11-2006 20:03:33
- Zac
- Membres
- Date d'inscription:
- Messages: 5
- IP: 132.203.130.90
- Courriel
J'ai trouvé la réponse et ça fonctionne, je vous poste le code aussitot que j'arrive à la maison :]
Merci quand meme
Hors ligne
06-11-2006 20:10:57
- kedu
- Modérateurs

- Date d'inscription:
- Messages: 155
- IP: 86.64.79.165
- Courriel
Volontier, on pourra comparer comme ça ![]()
Hors ligne
06-11-2006 21:53:39
- Zac
- Membres
- Date d'inscription:
- Messages: 5
- IP: 24.202.8.221
- Courriel
Alors je vous donne la solution, j'ai faite ca un peu "jobbeur" mais bon, ca fonctionne ( dans mon projet
)
public TriMesh CreateTrimesh(AnimatedMesh mesh,Vector3D MeshPosition)
{
int i, j, ci, cif, cv;
int indexcount = 0;
int vertexcount = 0;
Mesh omesh = mesh.GetMesh(0);
for (i = 0; i < omesh.MeshBufferCount; i++)
{
MeshBuffer mb = omesh.GetMeshBuffer(i);
indexcount += mb.IndexCount;
vertexcount += mb.VertexCount;
}
ODE.NoMDX.Vector3[] vertices = new ODE.NoMDX.Vector3[vertexcount];
int[] indices = new int[indexcount];
ci = 0;
cif = 0;
cv = 0;
for (i = 0; i < omesh.MeshBufferCount; i++)
{
MeshBuffer mb = omesh.GetMeshBuffer(i);
for (j = 0; j < mb.IndexCount; j++)
{
indices[ci] = cif + mb.GetIndex(j);
ci++;
}
cif = cif + mb.VertexCount;
if (mb.VertexType == VertexType.Standard)
{
for (j = 0; j < mb.VertexCount; j++)
{
vertices[cv].X = mb.GetVertex(j).Position.X;
vertices[cv].Y = mb.GetVertex(j).Position.Y;
vertices[cv].Z = mb.GetVertex(j).Position.Z;
cv++;
}
}
else if (mb.VertexType == VertexType.T2Coords)
{
for (j = 0; j < mb.VertexCount; j++)
{
vertices[cv].X = mb.GetVertexT2(j).Position.X;
vertices[cv].Y = mb.GetVertexT2(j).Position.Y;
vertices[cv].Z = mb.GetVertexT2(j).Position.Z;
cv++;
}
}
}
TriMesh temptrimesh;
temptrimesh = new TriMesh(vertices,indices);
return temptrimesh
}[ edit d'izguit : merci d'utiliser les balises "code"
Hors ligne



