Je me demandais quelle est la meilleure façon de comparer un pixel que est actuellement rendu (et accessible en utilisant un fragment shader) à un pixel avec le même emplacement dans une texture non liée précédemment stockée (les deux textures ont la même taille)?OpenGL - Comment comparer les valeurs de pixels de textures séparées avec le même emplacement
Répondre
Maintenant que la question est plus claire, il est possible de donner une réponse.
Le problème principal est que le contenu du framebuffer et les paramètres du fragment (position) ne sont pas disponibles dans le fragment shader. En effet, vous ne pouvez pas exécuter l'opération "compare" pendant le rendu.
Vous devez rendre le modèle dans une texture (recherche de rendu à texture, en utilisant des objets frame buffer), puis exécuter un fragment shader (peut-être en utilisant GL_texture_rectangle) dans une autre vue avec une fenêtre de même taille texture.
Le fragment shader doit avoir deux textures en entrée: la première texture (contenant les arêtes détectées) et le modèle filaire texture-rendu. Ensuite, il est facile d'effectuer un calcul complexe dans le fragment shader une fois que vous pouvez accéder à chaque textel des deux textures.
J'espère que cela peut vous aider.
Est-il possible de faire cela en projetant la texture sur le modèle en utilisant la cartographie de texture projective? – Brett
Je ne peux rien dire: tout dépend des paramètres de texturation spécifiques (valeurs, coords ...). Je suggérerais pour votre tâche (en comparant les pixels) la http://en.wikipedia.org/wiki/Cross-correlation: j'ai utilisé pour rechercher des volumes dans des images 3D. Le principal avantage est qu'il recherche des variations de pixels, au lieu de valeurs de pixels (en effet, l'intésité des pixels est indépendante). – Luca
- 1. Comment désactiver l'effet de flou sur les textures avec OpenGL?
- 2. Répétition de textures dans OpenGL
- 3. OpenGL ES iPhone Textures
- 4. textures et tableaux de vertex avec OpenGL?
- 5. Conseil sur le chargeur d'images OpenGL multiplateforme pour les textures
- 6. Les textures OpenGL échouent sur Motorola Milestone
- 7. iPhone OpenGL: textures de carrelage
- 8. OpenGL - Textures chargement incorrectement
- 9. Comment les valeurs de profondeur sont-elles résolues dans les textures OpenGL lors du multi-échantillonnage?
- 10. Comment XOR les valeurs de pixels de deux bitmaps ensemble?
- 11. Configurer les textures OpenGL ES 2.0
- 12. Comment comparer élégamment les valeurs d'une même table dans TSQL
- 13. opengl inverser framebuffer pixels
- 14. Comment comparer les valeurs de deux contrôles avec un déclencheur?
- 15. OpenGL ES: nombre de sommets pour les textures
- 16. Doublage de pixels OpenGL sur un NSOpenGLView
- 17. Comment lire les valeurs de pixels dans Silverlight Image control?
- 18. légers changements de lat long pour les varations de point avec le même emplacement
- 19. Comment déplacer les pixels?
- 20. Comparer les valeurs de deux nombres génériques
- 21. Le moyen le plus rapide d'utiliser les textures PNG en OpenGL
- 22. VBScript comment diviser une séparés ET séparées séparées valeurs espacées?
- 23. Comment convertir les octets de bitmap en emplacement x, y de pixels?
- 24. Comparer les valeurs de chaîne dans VB.NET
- 25. Comment papervision3d transforme les textures?
- 26. OpenGL nommé textures ne fonctionne pas
- 27. Textures de virgules flottantes dans OpenGL ES 2.0
- 28. Comment comparer les valeurs dans un tableau
- 29. Comment comparer les valeurs compressées en Perl?
- 30. Images de caméra iPhone comme textures OpenGL ES
Donc vous dites que vous avez capturé le framebuffer dans un cadre précédent, et que vous voulez comparer deux pixels aux mêmes endroits sur le framebuffer capturé, et le framebuffer en cours? –
il n'y a pas de "même endroit" pour un texel dans une texture générique (pour le starter, ils peuvent avoir des tailles différentes, avoir un format différent ...) et les fragmen. Que diriez-vous d'expliquer ce que vous essayez d'accomplir? – Bahbar
Ok. J'ai donc une texture RGBA 640x480 stockée après avoir effectué un shader de détection de contour sur une image vidéo. J'ai également un modèle filaire d'un objet avec des lignes cachées enlevées que j'essaye de détecter dans la trame vidéo. J'essaie de comparer les pixels du modèle filaire pour connaître le nombre de pixels correspondant aux bords de la trame vidéo en utilisant un autre pixel shader. Ce nombre de pixels me donnera alors une probabilité de la façon dont les modèles posent des ajustements dans la trame vidéo actuelle. Merci ... – Brett