2010-08-24 16 views
1

En utilisant la stéréovision, je produis des cartes de profondeur représentant l'environnement 3d vu d'une caméra. Il y a une carte de profondeur par "image clé" associée à une position de caméra. Le but est de traduire ces cartes de profondeur 2d dans l'espace 3d (et plus tard les fusionner pour reconstruire l'environnement entier).Rendu 3D d'une surface à partir d'une carte de profondeur

Quelle serait la meilleure façon (efficace) de traduire ces cartes de profondeur en 3D? Chaque carte de profondeur est grande de 752x480 donc le nombre de triangles peut augmenter assez rapidement. Je voudrais un système automatique pour gérer le niveau de détail des objets.

Mon équipe utilise Ogre3d donc ce serait génial de trouver une solution avec. Ce que je cherche est très similaire à ce que fait Terrain, sauf que je veux être capable de mettre les objets résultants où je veux (translation, rotation) et je pense que Terrain ne peut pas faire ça.

Je suis tout à fait nouveau pour Ogre3D donc s'il vous plaît pardonnez-moi s'il y a une solution simple que je devrais savoir. Si un autre outil que Ogre3d est plus approprié à mon problème, je serais heureux d'apprendre à ce sujet!

Répondre

1

Vous ne savez pas ce que vous voulez faire "fusionner depahtmap avec envirronement"?

De toute façon, dans votre cas, vous semblez être bloqué pour les rendre 3d en utilisant des techniques de heightmap de terrain. Dans votre cas, comme la carte de profondeur est alignée à l'écran, utilisez une technique de diffusion de rayons simple à l'écran. Vous devez donc faire un compositeur dans ogre3D qui prend cette carte de profondeur et la transforme sur le pixel que vous voulez.

translation et rotation à partir d'une carte de profondeur peut être limitée à xy à l'écran, comme comme heightmap de terrain (vous ne pouvez pas avoir des grottes en utilisant heightmaps), vous ne manquez une dimension. Non directement lié mais pourrait aider: dans l'espace d'écran pur, il y a une technique "reconstruction de position" qui aide à obtenir des positions d'espace du monde d'objet, mais seulement si vous avez une charge d'infos sur la caméra utilisée pour générer la carte de profondeur utilisez, par exemple: http://www.gamerendering.com/2009/12/07/position-reconstruction/

+0

Merci beaucoup pour votre réponse. Les liens que vous avez fournis sont très intéressants. Cependant, il y a une chose que je n'ai pas faite: la carte de profondeur est calculée à partir d'une caméra du monde réel, mais l'environnement reconstruit devrait être explorable dans toutes les directions. Le résultat de l'opération devrait être une grille déformée suspendue dans l'espace, qui pourrait être tournée autour par exemple. Je cherche une représentation en 3D, pas seulement le rendu d'écran, donc je ne pense pas que je peux utiliser des shaders pour ça ... – Jim

+1

Ensuite, vous êtes coincé avec la taille comme la reconstruction. (Vous pouvez essayer le nuage de points, mais il est souvent encore plus lent vérifier http://www.visual-experiments.com/) La reconstruction d'objets 3D à l'aide de cartes de profondeur est un sujet d'analyse d'image, alors vous pouvez vouloir regarder là (la bibliothèque opencv utilise comme http://sourceforge.net/projects/reconststereo/) –

+0

Merci! Grâce au site visual-experiments.com, j'ai trouvé http://grail.cs.washington.edu/software/cmvs/ qui gère quelques-uns des problèmes auxquels je suis confronté. J'ai quelques lectures à faire maintenant! – Jim