Question

Y at-il algorithme pour projeter des images sur une surface (déformé) non plane?

Il ne se déforme pas trop. Il est une surface vraiment vitreux recouverte de haute qualité, papier calque durable. J'ai un modèle en 3 dimensions de celui-ci. Comment puis-je texturer avec un projecteur? projection

Je veux écrire un programme en C \ C ++ \ C # pour Windows, qui serait capable de texturer une surface donnée par un modèle en 3 dimensions à l'aide d'un projecteur.

J'ai besoin d'un algorithme ou les bibliothèques open source contenant des algorithmes.

Était-ce utile?

La solution

Il est pas clair quel algorithme une bibliothèque standard de texturation utiliserait, et il est probablement pas une vraie projection, donc si la précision est importante, vous beaucoup besoin de le faire vous-même (ou faire des recherches sur ce que les algorithmes spécifiques sont utilisés pour une bibliothèque donnée).

L'algorithme de base est simple. Fondamentalement, vous avez juste besoin de trouver où la ligne émanant de votre point de projection intersecte votre surface. De façon plus détaillée:

  1. Décidez de votre point de projection
  2. Décider sur un tas de lignes émanant de votre point de projection qui vous donnera la résolution dont vous avez besoin sur votre surface gauche
  3. Déterminez où ces lignes se croisent votre surface (la méthode exacte dépendra de votre représentation de surface)
  4. Supposons que votre image plane est placé quelque part entre votre point de projection et la surface gondolé et trouver l'intersection de la ligne avec la surface plane et affecter cette valeur à l'emplacement sur la surface gauche.

Par contre, si votre surface est décrite mathématiquement, il peut y avoir une équation simple pour cela, comme ce serait le cas, par exemple, si vous mappez un avion à une sphère.

Autres conseils

Oui, il y a un algorithme. À moins que vous vraiment veulent la mettre en œuvre sur votre propre, il est probablement plus facile de laisser une implémentation existante graphique 3D faire le travail pour vous - à la fois OpenGL et DirectX vous permettent d'appliquer une texture à la surface d'un modèle 3D. Les tutoriels NeHe incluent de l'idée de base en utilisant OpenGL .

Il appelle la correction de distorsion de l'image.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top