Ruffi
16/10/2005, 01h12
Hi guys !
Je suis en train de travailler sur les skinned mesh, en utilisant le tutorial de Luna ( http://www.moon-labs.com/resources/d3dx_skinnedmesh.pdf ) et le livre "The Cg tutorial".
Je suis plus particulierement en pleine reflection sur comment je vais gerrer tout ça, specialement pour les collisions. :00000002:
Jusqu'a present, je faisait que des collisions a base d'AABB non optimisé avec des meshs statics, ce qui etait simple à implementer, mais loin d'etre satisfaisant.
Dans l'ideal, j'aimerai utiliser des OBB pour chaque bones de mon mesh, afin de le faire bouger les boites en meme temps que le skelette. Par contre, j'ai rien trouvé dans la doc des mesh au format .x qui permet de recuperer ces infos.
Du coup, j'ai eu l'idée de passer par une autre methode. Je fait un premier test avec la bounding sphere ou la bounding box du mesh, puis j'utilise une version du mesh en low-poly pour tester la collision grace a un algo de collision par facette (en suposant que j'arrive a faire un algo assez rapide, ou en utilisant une lib specialisé comme ColDet).
Le probleme : c'est que pour cela je doit manipuler le vertex buffer, ne serait-ce que pour calculer la nouvelle BoundingBox ( D3DXComputeBoundingBox() ). Pour les perfs, c'est pas le mieux. :(
Et meme si je le fait, ça ne me donera pas la version skinned, vu que tout est calculé dans le vertex shader. Ca serai domage de devoir calculer le skinned mesh via le CPU rien que pour pouvoir recuperer une version du VB skinned. Et ça m'etonerai que les lib de collisions tiennent comptent des modifications des vertices par un shader.
Eclairez moi, je m'arrache les cheveux rien qu'en reflechissant à comment je vais gerrer ça. :00000032:
Je suis en train de travailler sur les skinned mesh, en utilisant le tutorial de Luna ( http://www.moon-labs.com/resources/d3dx_skinnedmesh.pdf ) et le livre "The Cg tutorial".
Je suis plus particulierement en pleine reflection sur comment je vais gerrer tout ça, specialement pour les collisions. :00000002:
Jusqu'a present, je faisait que des collisions a base d'AABB non optimisé avec des meshs statics, ce qui etait simple à implementer, mais loin d'etre satisfaisant.
Dans l'ideal, j'aimerai utiliser des OBB pour chaque bones de mon mesh, afin de le faire bouger les boites en meme temps que le skelette. Par contre, j'ai rien trouvé dans la doc des mesh au format .x qui permet de recuperer ces infos.
Du coup, j'ai eu l'idée de passer par une autre methode. Je fait un premier test avec la bounding sphere ou la bounding box du mesh, puis j'utilise une version du mesh en low-poly pour tester la collision grace a un algo de collision par facette (en suposant que j'arrive a faire un algo assez rapide, ou en utilisant une lib specialisé comme ColDet).
Le probleme : c'est que pour cela je doit manipuler le vertex buffer, ne serait-ce que pour calculer la nouvelle BoundingBox ( D3DXComputeBoundingBox() ). Pour les perfs, c'est pas le mieux. :(
Et meme si je le fait, ça ne me donera pas la version skinned, vu que tout est calculé dans le vertex shader. Ca serai domage de devoir calculer le skinned mesh via le CPU rien que pour pouvoir recuperer une version du VB skinned. Et ça m'etonerai que les lib de collisions tiennent comptent des modifications des vertices par un shader.
Eclairez moi, je m'arrache les cheveux rien qu'en reflechissant à comment je vais gerrer ça. :00000032: