Numérisation 3D [Résolu]

Numérisation 3D [Résolu] - Java - Programmation

Marsh Posté le 20-02-2012 à 21:23:43    

Bonjour à tous !
 
Je dirige actuellement un projet java qui a pour but de reproduire un objet existant en un objet 3D exploitable  
par l'ordinateur. La méthode retenue est la suivante : à partir de 3 photos, prise sous 3 plans différents,  
on veut extraire le contour de l'objet, puis faire une projection de ces contours
pour obtenir un objet en 3D.
Mais voilà, l'idée est là, mais nous ne savons par trop comment la réaliser.
Nous avons donc retenu quelques questions, en espèrant que des programmeurs chevronnés comme vous  
pourrons nous aider à sortir de cette mauvaise passe :
-Sous quel format de fichier peut on écrire les contours extraits de façon à avoir accès facilement aux coordonnées de ces contours ?
-Connaissez vous des algorythme d'extraction de contour  ? (nous en avons quelques uns, mais il est toujours intéressant de comparer -rapidité, fidélité)
-Comment peut on réaliser une projection de ces contours pour obtenir l'objet en 3D ?
-Pensez vous qu'il est possible de colorer notre objet de la même façon que l'objet réel ?
-Une fois les points 3D de l'objet connu, dans quel format peut on l'encoder ?  
Existe t il des formats d'objet permettant de créer des objets sous forme de nuage de points ?  
Si non, quel forme doit on donner à notre élement de base (triangle, boule ?)
De façon plus générale : avez vous déjà vu des projets semblables ou des programmes qui s'en approche ?  
Connaissez vous des liens ou des sources succectibles de nous intéresser ?
 
Voilà, mon message est un peu long et surtout très très générale. Néanmoins, on a vraiment besoin d'aide,  
et je suis sure que toutes vos suggestions pourront nous être utiles.
Je vous remercie d'avance,  :)

Message cité 1 fois
Message édité par NotUsedPseudo le 25-02-2012 à 09:15:11
Reply

Marsh Posté le 20-02-2012 à 21:23:43   

Reply

Marsh Posté le 21-02-2012 à 10:19:21    

Pour la 3D, et pour Java, (et pour une application Android), il faut passer par Open GL ES, donc voir http://developer.android.com/guide [...] pengl.html

Reply

Marsh Posté le 21-02-2012 à 12:58:32    

NotUsedPseudo a écrit :

Bonjour à tous !
 
Je dirige actuellement un projet java qui a pour but de reproduire un objet existant en un objet 3D exploitable  
par l'ordinateur. La méthode retenue est la suivante : à partir de 3 photos, prise sous 3 plans différents,  
on veut extraire le contour de l'objet, puis faire une projection de ces contours
pour obtenir un objet en 3D.
Mais voilà, l'idée est là, mais nous ne savons par trop comment la réaliser.
Nous avons donc retenu quelques questions, en espèrant que des programmeurs chevronnés comme vous  
pourrons nous aider à sortir de cette mauvaise passe :
-Sous quel format de fichier peut on écrire les contours extraits de façon à avoir accès facilement aux coordonnées de ces contours ?
-Connaissez vous des algorythme d'extraction de contour  ? (nous en avons quelques uns, mais il est toujours intéressant de comparer -rapidité, fidélité)
-Comment peut on réaliser une projection de ces contours pour obtenir l'objet en 3D ?
-Pensez vous qu'il est possible de colorer notre objet de la même façon que l'objet réel ?
-Une fois les points 3D de l'objet connu, dans quel format peut on l'encoder ?  
Existe t il des formats d'objet permettant de créer des objets sous forme de nuage de points ?  
Si non, quel forme doit on donner à notre élement de base (triangle, boule ?)
De façon plus générale : avez vous déjà vu des projets semblables ou des programmes qui s'en approche ?  
Connaissez vous des liens ou des sources succectibles de nous intéresser ?
 
Voilà, mon message est un peu long et surtout très très générale. Néanmoins, on a vraiment besoin d'aide,  
et je suis sure que toutes vos suggestions pourront nous être utiles.
Je vous remercie d'avance,  :)  
 
 
 
 


Vous avez des connaissances en 3D ? au niveau des projections / la base d'un mesh (tris, poly, normals) et compagnie ?  
Sinon, si vous voulez convertir en un format, le obj est pas trop mal et compatible avec quasi tous les softs 3D.
Mais je pense que ça va pas être une mince affaire, faut que tous vos vertexes soient placés de façon logique, tenter de respecter un minimum les règles d'un modèle 3D (éviter les polys à plus de 4 vertex par exemple), je pense que le plus gros se fait là


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 21-02-2012 à 17:12:45    

Bonjour  :)  
 

Citation :


Pour la 3D, et pour Java, (et pour une application Android), il faut passer par Open GL ES, donc voir http://developer.android.com/guide [...] pengl.html


 
Nous avons choisis java3d plutôt que OpenGl car elle parrait plus facile à utiliser.
Après, je ne connais pas bien la différence entre les deux...
 
Sinon, je viens de me renseigner sur le format .obj qui semble de loin le plus compréhensible (merci pour l'info  :jap: ).
Par contre nous n'avons aucune connaissance 3D. Pour l'instant, on pensait qu'en ayant les points d'intersections,  
on pourrait récupérer les points délimitant le contour extérieur de l'objet,  
les stocker dans un fichier puis créer des faces en reliant ces sommets par groupe de quatre.
Après, je on n'en sait pas plus : Est ce que cette façon de faire est correct ? Comment obtenir les points d'intersection ?
Un membre du projet a envoyer un tuto sur les projections en python (http://www.fevrierdorian.com/blog/ [...] on-de-Maya)
donc je pense qu'il doit exister un moyen de calculer une intersection entre nos trois contours...
Est ce que vous connaissez un moyen ?  :??:  
 
 
 
 
 

Reply

Marsh Posté le 21-02-2012 à 17:14:47    

Lanceur de rayons ?


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 22-02-2012 à 17:58:56    

Pourquoi pas ? Seulement, il faut déterminer l'intersection entre deux rayons et non plus entre un rayon et un objet...
Donc si je creuse :  
Mettons que j'obtienne une liste de coordonnées à partir des trois vues :  
(x1,y1,z1) pour la vue 1
(x2,y2,z2) pour la vue 2
(x3,y3,z3) pour la vue 3.
Alors on peut dire que mon objet à des coordonnées qui varient dans les ensemble de définition suivant :  
(x1 inter x2 inter x3)(y1 inter y2 inter y3)(z1 inter z2 inter z3)
En faisant une boucle avec deux boucle imbriqués, j'obtient ainsi tout les points de coordonnées de mon objets,  
qui sont toutes les combinaisons possibles entre ces 3 ensembles.
 
Ca se voit sur une feuille en traçant les rayons normales à deux vues,
alors je suppose que c'est pareil pour trois vues ?

Reply

Marsh Posté le 22-02-2012 à 18:57:39    

ben le soucis, c'est qu'il faut aussi prendre en compte les reliefs sur ton objet, bref c'est vraiment tordu à faire


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 23-02-2012 à 14:56:08    

Bien vu, dès que j'aurais un creux sur ma face je pourrais pas le faire...
As tu une idée ?

Reply

Marsh Posté le 23-02-2012 à 20:44:43    

Peut être voir du coté de la génération de normal map à partir d'une image, l'algo peut te donner une idée, sinon je sais pas,j'ai jamais fait d'analyse d'image :D


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 25-02-2012 à 09:14:19    

Je viens de me renseigner, et je pense que c'est ce qu'il faut.
 
Je ferrai sans doute un nouveau poste plus tard, si nous rencontrons des problèmes de codages,
mais dans l'immédiat je crois qu'on en a assez pour coder :)
 
Merci beaucoup pour l'aide apporté et les pistes données !  :jap:  
 :hello:

Reply

Sujets relatifs:

Leave a Replay

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