Accueil > Forum > > > > Collision pixel perfect
Collision pixel perfect
lundi 20 novembre 2006 à 20:48:27 |
Collision pixel perfect

UltimAKnighT
|
Bonjour,
Savez-vous où je pourrais trouver de la documentation là-dessus(en
français de préférence) car j'ai eu beau chercher, les tutos sur
lesquels je suis tombés n'expliquaient pas clairement le principe et
surtout le mécanisme de ce type de collision.
Ou alors, est ce que quelqu'un d'entre vous pourrait me l'expliquez, si bien sûr ça ne le gênes pas.
Merci.
UltimAKnighT.
|
|
lundi 20 novembre 2006 à 21:40:33 |
Re : Collision pixel perfect

Galmiza
|
Ici apparement ;):
http://www.games-creators.org/wiki/D%C3%A9tection_pixel-perfect_des_collisions_2D
Bonne chance
|
|
mercredi 22 novembre 2006 à 18:51:11 |
Re : Collision pixel perfect

UltimAKnighT
|
Merci de votre réponse.
J'ai déjà été voir ce tuto auparavant, mais celui-ci ne m'avait pas satisfait, je n'ai pas réussi à cerner les explications, c'est pourquoi je cherche à obtenir un cours expliqué disons plus simplement, pour que je puisses comprendre le mieux possible.
|
|
mercredi 22 novembre 2006 à 19:48:46 |
Re : Collision pixel perfect

Galmiza
|
Qu'est ce qui te tracasse ? Le principe ? L'algorithme ? Le code en C ?
|
|
mercredi 22 novembre 2006 à 20:39:24 |
Re : Collision pixel perfect

UltimAKnighT
|
Ben je pense avoir cerner un peu le principe ( si j'ai bien compris ça joue sur la transparence d'un pixel ou quelque chose dans le genre).
Mais ce qui me tracasse vraiment c'est l'algorithme.
|
|
jeudi 23 novembre 2006 à 20:51:36 |
Re : Collision pixel perfect
|
jeudi 23 novembre 2006 à 22:01:54 |
Re : Collision pixel perfect

Galmiza
|
Salut,
Les ups ne fonctionnent pas comme sur les forums "ordinaires". Par contre ca envoie un mail à ceux qui ont participé au topic ;).
Tu as deux rectangles qui sont en fait tes deux images. Tu regardes si ces deux grands rectangles sont en contact. si x_max de l'un est plus petit que x_min de l'autre etc...
Si ils sont en contact, tu procedes à l'analyse pixel par pixel. La zone de contact est bien entendu un rectangle.
Tu boucles sur la surface de ce rectangle, pixel par pixel. Pour chaque pixel (x,y), tu détermines les coordonnées des pixels correspondants sur les deux images (x1,y1) et (x2,y2). Si le pixel en (x1,y1) sur l'image 1 est opaque ET le pixel (x2,y2) de l'image 2 est opaque, tu as collision. Après tu peux colorier le pixel en rouge pour faire joli mais c'est accessoire.
A quel niveau est ton problème ?
|
|
vendredi 24 novembre 2006 à 19:16:45 |
Re : Collision pixel perfect

UltimAKnighT
|
Désolé pour le derangement, je ne savais pour le up.
Sinon j'ai quelques questions, comment sait-on si un pixel est opaque? et, une boucle de la surface demande beaucoup de ressources processeur (surtout si il y a plusieurs collisions en meme temps) il n'y aurais pas moyen de faire quelque chose de moins gourmand?
Une derniere question, comment assigner à un pixel sur une image 1, un homologue sur l'image 2, car ce choix doit être fait pour chaque surfaces en contact, n'importe oû sur les deux images (rectangles). (je ne sais pas si j'ai été tres clair, si non fat le moi savoir).
Merci.
|
|
vendredi 24 novembre 2006 à 19:36:47 |
Re : Collision pixel perfect

Galmiza
|
Salut,
Un pixel est opaque si son canal alpha est nul (ou plein je ne sais plus). Mais bon tu peux dire que 2 pixels sont en collision si la somme de leur canal alpha (0-255) est au dessous 128, ou leur produit est au dessous de 97... c'est arbitraire.
Regarde ce schéma: http://galmiza.free.fr/FTP/collision_perfect.PNG
Dans ce cas, le rectangle a pour coordonnées haut gauche: (x2,y2), pour largeur L=(l1-(x2-x1)), pour hauteur H=(h1-(y2-y1)). En faisant plusieurs dessins du même type tu trouveras les différentes configurations possibles. Ensuite tu fais 2 for imbriqués: for (i=0;i<L;i++) for (j=0;j<H;j++) // pixel de l'image 1 correspondant: ((x2-x1)+i, (y2-y1)+j) // pixel de l'image 2 correspondant: (x2+i, y2+j)
Evidemment il faut prendre en compte quelques cas mais ce n'est pas trop compliqué.
C'est très gourmand en ressource effectivement (c'est pour ca que je n'ai jamais envisagé de l'utiliser ;)). Pour aller plus vite (beaucoup plus vite en fait), tu peux assimiler les images sur tes sprites à plusieurs rectanges. Ainsi tu testes les collisions entre les rectangles sur tes images et pas les pixels.
|
|
vendredi 24 novembre 2006 à 20:06:36 |
Re : Collision pixel perfect

UltimAKnighT
|
Hum je pense que je commence à comprendre.
Quand tu dis "assimiler les images sur tes sprites à plusieurs rectanges", c'est à dire en gros que l'on coupe une image en bande c'est ça?
Je définis mon idée général : Mon objectif est de créé un moteur physique, que je pourrais utilisé (ou d'autres personnes) pour faire des applis 2D necessitant une gestion des collisions.
|
|
Cette discussion est classée dans : pixel, collision, perfect
Répondre à ce message
Sujets en rapport avec ce message
Pixel Perfect [ par T_Mehdi ]
salut a tous bon je suis entrain de realiser un moteur de jeu 2D complet et optimizé donc j'avait vollue inclure le teste de collision entre deux scri
Impression d'un pixel avec borland 6 [ par geag17 ]
J'arrive à imprimer un texte en définnissant le canevas de ma feuille mais je voudrait dessiner des éléments de la taille d'un pixel.En clair y a t'il
Detection de collision C++ [ par handmousemaster ]
Bonjour à tous, Dans le cadre d'un projet informatique, j'ai besoin de faire de la detection de collisions en C++. Cependant je veux la faire de mani
Gif 32 bits par pixel [ par Rouliann ]
Salut tout le monde! J'aimerais savoir comment on obtient des fichiers .gif avec 32 bits par pixel... Toutes celles que je fais avec The Gimp ne font
Récupération d'une couleur d'un pixel d'un canevas [ par bretgod ]
Bonjour, Je travaille sous Borland Builder C++, et je cherche à récupérer la valeur du dernier pixel RGB (coin inférieur droit )d'un canvas(ou g insé
collison 3D [ par cppdupdup34 ]
voila j'ai un petit souci dans mes detections de collision.le test de collision entre un point et un pavé orienté n'importe comment dans l'espace s'ef
Difficile de résumer... aidez moi SVP [ par supergrey ]
Bonjour, voila mon probleme, je réalise un jeu avec DX9 et j'ai besoin d'y inclure un systeme pour enregister des videos des phase de jeu.J'ai donc pr
(Problème spécial) Compter le nombre de pixel différent entre deux images [ par chuckboy ]
Bonjour a tous , J'ai un petit probleme. Cette fonction vérifie pixel par pixel deux images et compte le nombre de pixel différent entre les deux , ca
Recuperer la Couleur d'un Pixel dans une fenetre. [ par nomlingote ]
Bonjour à tous, Est il possible de connaitre la couleur d'un pixel dans une fenetre (dont on connait le handle ) ou sur l'ensemble de l'ecran. J'ai es
Bit par pixel [ par vangeurmasker ]
Je cherche une fonction qui permette de me retourner le nombre de bit par pixel actuellement utilisé par windows (nombre de couleurs). Le but est de c
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|