Précédent   Forum des professionnels en informatique > Applications > Développement 2D, 3D et Jeux
Développement 2D, 3D et Jeux Forum développement 2D, 3D et Jeux. Avant de poster : Les FAQs Programmation 2D, 3D et Jeux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/12/2011, 12h07   #1
Invité régulier
 
Inscription : juin 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 28
Points : 7
Points : 7
Envoyer un message via MSN à yamyoung
Par défaut transformation du repère 2D vers 3D?

bonjour
bon je travaille dans un petit projet et je suis bloké depuis 4 jour

alors le problème!! je cherche comment transformer les coordonnées (a,b) d'un Pt de l'image 2D vers un repère de la scène 3D (X,Y,Z)!!!!
j'ai fixer un pt de référence de coordonnées(a=1275, b=837) en pixel dans le repère 2D de l’image et (x=1,35 ,y=0,5 ,z=0) en mètre de le Plan 3D de la scène. et je cherche comment déterminer la relation entre ces 2 repères pour que je puisse déterminer après les coordonnées de n'importe quelle pt de l'image en coordonnées (X,Y,Z) de la scène!!!
et merciii d'avance
yamyoung est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2011, 16h10   #2
Membre régulier
 
Inscription : mai 2009
Messages : 247
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 247
Points : 96
Points : 96
projection orthogonale ou perspective ?

Pour la transformation 2D->3D ça se fait généralement depuis l'écran vers la scène, il faut faire le chemin inverse de la projection habituelle, donc multiplier par l'inverse de (matrice de projection * matrice caméra)

on appelle ça le raycasting

pour les détails, google est ton pote;

par exemple avec opengl : http://webglfactory.blogspot.com/201...to-screen.html

Code :
1
2
3
4
5
6
7
8
9
10
11
 
function Point3D get3dPoint(Point2D point2D, int width,
        int height, Matrix viewMatrix, Matrix projectionMatrix) {
       double x = 2.0 * winX / clientWidth - 1;
      double y = - 2.0 * winY / clientHeight + 1;
        Matrix4 viewProjectionInverse = inverse(projectionMatrix *
             viewMatrix);
 
       Point3D point3D = new Point3D(x, y, 0);
        return viewProjectionInverse.multiply(point3D);
}
coda_blank est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h27.


 
 
 
 
Partenaires

Hébergement Web