[Open GL] Impact de balle sur un mur...

Impact de balle sur un mur... [Open GL] - Programmation

Marsh Posté le 22-04-2002 à 14:43:48    

Bonjour,
 
Je souhaiterais savoir comment mettre en place sur un objet 3D en OpenGL des interactions avec un objet. Exemple comment mettre en place des impacts de balles sur un mur, trainée de pneus sur une route...
Aussi comment détecter la collision entre 2 objets exemple une épée sur un mur, laissant au passage une marque sur le mur...
Savoir s'il faut attaquer la texture ou les faces derrière.


---------------
...m'enfin !!!
Reply

Marsh Posté le 22-04-2002 à 14:43:48   

Reply

Marsh Posté le 22-04-2002 à 15:40:35    

ça s'appelle des decals http://www.google.com/search?q=opengl+decal
 
il y a du code d'exemple dans (entres autres) http://www.amazon.com/exec/obidos/ASIN/1584500549
 
la détection de collision, c'est à la fois très simple et très compliqué. je n'ai jamais vu un jeu qui collisionne correctement une épée que tenait un gars avec le mur avoisinant. le perso peut être englobé dans un cylindre, puis la collision faite avec le bsp du monde.  
 
si tu veux calculer la collision entre tes deux objets, ton mur est un plan, ton épée peut être contenue dans une boîte englobante (la bounding box), ça te fait un calcul d'intersection plan / bbox.

Reply

Marsh Posté le 22-04-2002 à 17:30:42    

mikegyver a écrit a écrit :

Bonjour,
Savoir s'il faut attaquer la texture ou les faces derrière.  




 
ca depend, certaines personnes preconisent de modifier la texture pour y plaquer les impacts mais ca impose d'avoir une copie modifiee de la texture en memoire(et attention a ne pas la modifier trop souvent par frame..). tu dois regler les problemes d'aspects de la texture à l'ecran (ou ton decal semblera deformé).
 
D'autres preconisent d'avoir des polygones supplementaires que tu vas plaquer sur ta geometrie existante attention si tu fais des traitements sur ta geometrie (modification de la geometrie par vertex shader) ou si tu as des modeles d'eclairages qui risquent d'etre fichus en l'air par un objet non eclaire correctement. (d'ou l'interet d'avoir tout dans une seule texture). De meme attention au z-fighting si tu traces un polygone quelconque collé a un autre parfois tu as des problemes de precision du z-buffer qui fait que ton polygone destiné au dessus se retrouve dessous de maniere intermittente.
 
Le pb des decals n'est pas super simple
notamment avec tous les nouveautes apportés par les nouveaux
hardwares (tesselation sur la carte, vertex shaders, eclairages par pixel, bientot displacement mapping ou encore z-correct bump-mapping). La texture carree affichable sur une surface plane commence a devenir l'exception en matiere de moteurs 3D..
 
A+
LEGREG

Reply

Sujets relatifs:

Leave a Replay

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