46
THÉORIE DES COLLISIONS PAF ?! LE MUR

PAF!? le mur

Embed Size (px)

Citation preview

Page 1: PAF!? le mur

THÉORIE DES COLLISIONS

PAF ?! LE MUR

Page 2: PAF!? le mur

•NICOLAS GUIBERT

• FLORIAN POULET

•CAMILLE SIMON

EQUIPE

Page 3: PAF!? le mur

• FORMES SIMPLES

• FORMES COMPLEXES

•COLLISION AU PIXEL PRÈS

• PARTITIONNEMENT

•DÉCOR

•SPRITES ENRICHIS

SOMMAIRE

Page 4: PAF!? le mur

FORMES SIMPLES

Le point

Le rectangle aligné sur les axes

Le cercle

Page 5: PAF!? le mur

UN POINT DANS UNE AABB

UN POINT P1 NE SE TROUVE PAS DANS UNE AABB B1 SI :

• P1 SE SITUE COMPLÈTEMENT À GAUCHE DE B1

• P1 SE SITUE COMPLÈTEMENT À DROITE DE B1

• P1 SE SITUE COMPLÈTEMENT EN HAUT DE B1

• P1 SE SITUE COMPLÈTEMENT EN BAS DE B1

Page 6: PAF!? le mur

UN POINTDANSUNE AABB

Page 7: PAF!? le mur
Page 8: PAF!? le mur

COLLISION ENTRE 2 AABB

UNE AABB B1 ET UNE AABB B2 NE SONT PAS EN COLLISION SI :

• B1 SE SITUE COMPLÈTEMENT À GAUCHE DE B2

• B1 SE SITUE COMPLÈTEMENT À DROITE DE B2

• B1 SE SITUE COMPLÈTEMENT EN HAUT DE B2

• B1 SE SITUE COMPLÈTEMENT EN BAS DE B2

Page 9: PAF!? le mur

COLLISIONENTRE 2AABB

Page 10: PAF!? le mur
Page 11: PAF!? le mur

UN POINT DANS UN CERCLEUN POINT P1 NE SE TROUVE PAS DANS UN CERCLE C1 SI :

• LA DISTANCE ENTRE P1 ET LE CENTRE DE C1 EST SUPÉRIEURE AU RAYON DE C1

Page 12: PAF!? le mur

UN POINTDANSUN CERCLE

Page 13: PAF!? le mur
Page 14: PAF!? le mur

COLLISION ENTRE 2 CERCLESUN CERCLE C1 ET UN CERCLE C2 NE SONT PAS EN COLLISION SI :

• LA DISTANCE ENTRE LES CENTRES DE C1 ET C2 EST SUPÉRIEURE À LA SOMME DES RAYONS DE C1 ET C2

Page 15: PAF!? le mur

COLLISIONENTRE 2CERCLES

Page 16: PAF!? le mur
Page 17: PAF!? le mur

FORMES COMPLEXES

Page 18: PAF!? le mur

COLLISION ENTRE POLYGONE CONVEXE ET POINT

Le vecteur S : Sx = Bx – Ax Sy = By - Ay Le vecteur T : Tx = Px – Ax Ty = Py – Ay

Déterminant D : D = Sx*Ty – Sy*Ty

Si D est supérieur à 0, alors P est à gauche de la droite ABSi D est inférieur à 0, alors P est à droit de droite ABSi D est égal à 0, alors P est sur la droite AB

Page 19: PAF!? le mur

COLLISION ENTRE POLYGONE CONCAVE ET POINTX=A+t∗AB⃗ D⃗ = AB⃗ 

X=I+u∗IP⃗ E⃗ = IP⃗ 

Ax+t∗Dx = Ix+u∗ExAy+t∗Dy = Iy+u∗Ey

t = - Ax∗Ex - Ix∗Ey - Ex∗Ay + Ex∗Iy Dx∗Ey - Dy∗Ex

Page 20: PAF!? le mur

COLLISION ENTRE POLYGONE CONCAVE ET POINTVecteur u ⃗ (AB) Vecteur v ⃗ (AC)

|u.x∗v.y – u.y∗v.x| √ (u.x² + u.y²)

Page 21: PAF!? le mur

COLLISION ENTRE POLYGONE CONCAVE ET POINT

AB⃗. AC⃗

BA⃗. BC⃗

Page 22: PAF!? le mur

AABB ET CERCLE

Page 23: PAF!? le mur

AABB ET CERCLEs1=GJ⃗.GH⃗ s2=HJ⃗.GH⃗

s1∗s2 > 0

Page 24: PAF!? le mur

COLLISION AU PIXEL PRÈS

Page 25: PAF!? le mur

LES MASQUES

Un Masque une image faite de 2 couleurs

Représentation d’un objet de façon monochrome

Page 26: PAF!? le mur

POINT SUR UNE IMAGE

Test de la zone AABB du masque (point dans AABB)

Test de collision au pixel

Page 27: PAF!? le mur

MASQUES MULTICOLORESJeux point & clic ou menu de jeu

Deux imagesUne originalUne avec des masques

Test de la couleur du masque au clic

Page 28: PAF!? le mur

PIXEL PERFECTDetection de collision entre 2 objets au pixel près

Premier test > collision AABB entre les deux masques

Algorithme qui test chaque pixelPrendre l’image la plus petiteTest sur la zone rectangulaire en collision

VERSUS

Page 29: PAF!? le mur

PARTITIONNEMENT

UN NIVEAU PEUT CONTENIR PLUSIEURS CENTAINES/MILLIERS D’OBJETS

• COMMENT FAIRE POUR RÉDUIRE LE NOMBRE DE TEST À EFFECTUER ?

Page 30: PAF!? le mur

LA GRILLE

• DÉCOUPAGE EN BOÎTES IDENTIQUES

• CHAQUE BOÎTE CONTIENT UNE LISTE D’OBJETS

• DÉCOUPAGE EFFECTUÉ AU CHARGEMENT

( OU SAUVEGARDER DANS LE FICHIER DU NIVEAU )

Page 31: PAF!? le mur

LA GRILLE

INCONVÉNIENTS :

• DÉTERMINER LE NOMBRE DE BOÎTES VOULU

• RÉPARTITION HÉTÉROGÈNE

Page 32: PAF!? le mur

LE QUADTREE

• DÉFINIR LE NOMBRE MAX D’OBJETS PAR BOÎTE

• DÉCOUPAGE RÉCURSIF DE CHAQUE BOÎTE EN 4

• TANT QU’IL Y A TROP D’OBJETS DANS UNE LISTE, ON LA DÉCOUPENiveau

1 2 3 4

41

42

43

44

Page 33: PAF!? le mur

LE QUADTREE

INCONVÉNIENT :

• POTENTIEL DÉSÉQUILIBRE

Page 34: PAF!? le mur

LE BSP

• DÉCOUPAGE RÉCURSIF DE CHAQUE BOÎTE EN 2

• DROITE DE DÉCOUPE « ASTUCIEUSE »

Page 35: PAF!? le mur

DÉCOR

Page 36: PAF!? le mur

SOL PLATAltitude A

Bounding box (rectangle englobant, cadre de limite)

Si B BOX > A

Si B BOX < A A

B BOX

Page 37: PAF!? le mur

SOL COURBEFonction cartésienne f(x)= y

Si f(x) > y on est au-dessusSi f(x) < y on est en-dessous

Dérivée f’(x) avec une valeur seuil ‘z’

Si f’(x) > z on ne peut pas franchirSi f’(x) < z on peut franchir

Page 38: PAF!? le mur

TILES DROITS

Tiles

Carreaux répétitifs réguliers

Page 39: PAF!? le mur

TILES DROITS

Page 40: PAF!? le mur

TILES DROITS

Page 41: PAF!? le mur

TILES ISOMÉTRIQUES

Tiles inclinés pour effet 3D

Page 42: PAF!? le mur

SPRITES ENRICHIS

Point Chaud

Point d’action

Sous-AABB

Page 43: PAF!? le mur

POINT CHAUD

Page 44: PAF!? le mur

POINT D’ACTION

Page 45: PAF!? le mur

SOUS-AABB

Page 46: PAF!? le mur

MERCI DE VOTRE ATTENTION