graphisme par ordinateur sif-1032. contenu du cours 12 détection des collisions –sphère/plan...

25
GRAPHISME PAR ORDINATEUR SIF-1032

Upload: hugon-bauer

Post on 04-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

GRAPHISME PAR ORDINATEUR

SIF-1032

Page 2: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Contenu du cours 12

• Détection des collisions– Sphère/Plan– Sphère/Cylindre– Sphère/Sphère

• Modélisation physique de la réponse à une collision– Rebondissement des sphères

• Effets spéciaux– Explosion (son et image)

• Site NeHe: Leçon 30

Page 3: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Lesson 30)• Algorithme

Page 4: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Plan)• Recherche du point de collision

P: le point d’intersection (hit point)

A: le centre de la sphère

c: la direction du rayon

B: un point quelconque sur le plan

n: normale au plan

.

Page 5: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Plan)• Recherche du point de collision

– L’intersection P est déduite à l’aide des relations suivantes

( ) 0

( )

( ( ) ) 0

( )

( )

( )( )

( )

n P B

P A E A t

n A E A t B

n B Atn E A

n B AP A E A

n E A

Dans le plan

Sur la droite

E: point quelconque sur le rayon

Page 6: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Plan)• Recherche du point de collision

– Cas particulier (rayon parallèle au plan)

• Dans le projet Collision Detection (leçon 30) la fonction TestIntersionPlane() permet de trouver le point d’intersection d’un rayon avec un plan

0n c

Page 7: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Cylindre)• Recherche du point de collision

– Plus complexe que le cas Sphère/Plan

• Dans le projet Collision Detection (leçon 30) la fonction TestIntersionCylinder() permet de trouver le point d’intersection d’un rayon avec un cylindre

Page 8: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Sphère)• Recherche du point de collision

– Pour déterminer si deux sphères se touchent, nous pouvons calculer la distance entre les centres des deux sphères et déterminer si cette distance est plus petite ou égale à la somme des rayons des sphères

• Lorsque les sphères sont mobiles, il faut trouver un autre moyen pour déterminer si une collision peut survenir

Page 9: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Sphère)• Recherche du point de collision

• Si deux sphères se déplacent d’un point à un autre durant un intervalle de temps, leur trajectoire se croise mais une collision ne surviendra pas nécessairement

Page 10: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Sphère)• Lorsque les formes des objets d’une scène sont complexes

ou que les équations de détection de collisions ne sont pas disponibles ou quelles ne peuvent être résolues, une autre méthode de détection de collisions doit être utilisée

• Une nouvelle approche basée sur les points de départ et de fin des objets (ex: sphère) découlant de la direction de leur déplacement, de leur vitesse et d’un intervalle de temps, est implémentée

• Dans le projet Collision Detection (leçon 30) la fonction FindBallColl() permet de trouver les paires de sphères qui se touchent dans un intervalle de temps donné, leur point d’intersection et le temps de la collision

Page 11: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Sphère)• Détection de collisions dans un contexte d’objets mobiles

• Après avoir déterminé la position d’une collision potentielle il faut alors déterminer si l’intersection des trajectoires signifie que les objets entreront en collision

Page 12: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Détection des collisions (Sphère/Sphère)• Détection de collisions dans un contexte d’objets mobiles

– Pour déterminer si une collision surviendra il faut:• Calculer pour un intervalle de temps donnée la distance (Dst) entre le point

de départ et le point de fin de la trajectoire de l’objet en fonction de sa vitesse et de sa direction

• Calculer la distance (Dsc) entre le point de départ et le point de collision potentielle

• SI Dsc < Dst ALORS une collision est imminente

• Pour calculer la position exacte de cette collision, nous pouvons calculer en

premier lieu le temps Tc de l’impact par: Tc = Dsc * T/Dst où T est l’intervalle de temps considéré

• Le point d’impact est alors donné par: Pc = S + V*Tc où S est le point de départ de l’objet mobile Pc le point d’impact et V la vitesse de déplacement

Page 13: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Modélisation physique de la réponse à une collision

• Quand un objet entre en collision avec une surface d’un objet statique, il rebondit et change par le fait même de direction

• L’angle de la nouvelle direction est donnée par:

2 ( )R I N N I • I et N sont des vecteurs unitaires• Le vecteur vitesse normalisé peut être substitué à I

Page 14: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Modélisation physique de la réponse à une collision

• Quand deux sphères mobiles entrent en collision, il faut alors déterminer la direction et la vitesse de déplacement de chacune des sphères

• U1 et U2 sont les vecteurs vitesse au moment de l’impact• X_Axis est le vecteur entre les centres des sphères• U1x et U2x sont les projections des vecteurs vitesse U1 et U2 sur X_Axis• U1y et U2y sont les projections des vecteurs vitesse U1 et U2 sur l’axeperpendiculaire à l’axe X_Axis

Page 15: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Modélisation physique de la réponse à une collision

• Pour trouver ces vecteurs, nous devons aussi considérer la masse de chaque sphère (M1, M2)

• Nous trouvons alors V1 et V2 les vecteurs vitesse découlant de l’impact des deux sphères– Détermination de l’axe X_Axis

_ ( 2 1)

__ '

| _ |

X Axis c c

X AxisX Axis

X Axis

Page 16: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Modélisation physique de la réponse à une collision

• Nous trouvons alors V1 et V2 les vecteurs vitesse découlant de l’impact des deux sphères– Détermination des projections

1 _ ' ( _ ' 1)

1 1 1

2 _ ' ( _ ' 2)

2 2 2

U x X Axis X Axis U

U y U U x

U x X Axis X Axis U

U y U U x

Page 17: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Modélisation physique de la réponse à une collision

• Nous trouvons alors V1 et V2 les vecteurs vitesse découlant de l’impact des deux sphères– Détermination des nouvelles vitesses

( 1 * 1) ( 2 * 2) ( 1 2 )* 21

( 1 2)

( 1 * 1) ( 2 * 2) ( 2 1 )* 12

( 1 2)

U x M U x M U x U x MV x

M M

U x M U x M U x U x MV x

M M

Page 18: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Modélisation physique de la réponse à une collision

• Nous trouvons alors V1 et V2 les vecteurs vitesse découlant de l’impact des deux sphères– Détermination des vitesses finales

1 1

2 2

1 1 1

2 2 2

V y U y

V y U y

V V x V y

V V x V y

Page 19: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Modélisation physique de la réponse à une collision

• Nous trouvons alors V1 et V2 les vecteurs vitesse découlant de l’impact des deux sphères

Page 20: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Effets spéciaux

• A chaque fois qu’une collision survient (Projet Collision Detection), deux textures centrées au point d’impact sont affichées avec un coefficient d’opacité qui diminue dans le temps tandis que sa dimension augmente

• A chaque fois qu’une collision survient entre deux sphères le fichier explode.wav est joué

Page 21: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Effets spéciaux (effets visuels:DrawGLScene())

Page 22: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Effets spéciaux (effets visuels: initGL())

Page 23: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Projet Collision Detection

Page 24: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Projet Collision Detection

Page 25: GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 12 Détection des collisions –Sphère/Plan –Sphère/Cylindre –Sphère/Sphère Modélisation physique de

Projet Collision Detection