Nous avons envisagé d'acheter un moniteur LCD 3D compatible avec une machine dotée d'une carte graphique compatible 3D pour la vision stéréoscopique (ATI Radeon 5870 ou supérieure). Ceci est pour afficher des données scientifiques que nous rendons en 3D en utilisant OpenGL. Maintenant, pouvons-nous nous attendre à ce que le GPU, le moniteur et les lunettes à obturateur prennent soin de l'affichage stéréoscopique ou devons-nous modifier le programme de rendu? S'il existe des techniques spécifiques pour la programmation graphique pour les affichages stéréoscopiques 3D, certains liens tutoriels seront très appréciés.Le rendu OpenGL peut-il être utilisé pour les moniteurs 3D?
Répondre
Dispositions Techically OpenGL pour l'affichage stéréoscopique. Le mot clé est "Quad Buffered Stereo". Vous pouvez changer le rendu des yeux gauche-droit avec glDrawBuffer(GL_BACK_LEFT); /* render left eye view */; glDrawBuffer(GL_BACK_RIGHT); /* render right eye view */;
.
Malheureusement, la chaîne stéréo Quadbuffer est considérée comme une fonctionnalité professionnelle par les fournisseurs de GPU. Vous avez donc besoin d'une carte graphique NVidia Quadro ou AMD/ATI FireGL pour en bénéficier.
Le rendu stéréoscopique ne se fait pas en inclinant les yeux, mais en appliquant un "décalage de lentille" dans la matrice de projection. Les détails sont un peu compliqués, cependant. J'ai fait une discussion l'an dernier à ce sujet, mais apparemment, le lien avec mes diapositives de présentation a disparu.
Le diagramme clé est celui-ci (il est de mes notes de mon patch pour Blender pour soutenir directement le rendu stéréoscopique)
- 1. Rendu de texte OpenGL 3D
- 2. OpenGl ES glPushAttrib() Rendu 3D du modèle
- 3. Position du point OpenGL après le rendu (3d -> 2d)
- 4. Adapter le code existant pour le rendu stéréoscopique OpenGL?
- 5. Format ouvert pour les modèles 3D dans une application OpenGL?
- 6. opengl hors écran rendu
- 7. Rotation 3D dans OpenGL
- 8. Problème de rendu OpenGL
- 9. 3D Sphere OpenGL
- 10. OpenGL + Mesa 3D + MinGW
- 11. Application multi-moniteurs en C++ et Opengl
- 12. animation 3D avec OpenGl
- 13. Dessin 3D en OpenGL
- 14. Bibliothèques de rendu 3D
- 15. Rendu d'objets transparents dans OpenGL
- 16. OpenGL Cube 3D Rotation
- 17. OpenGL ou Flash pour la visualisation 3d dans le navigateur
- 18. Rendu multithread sur OpenGL
- 19. Comment écrire un "module matériel" pour le rendu 3D?
- 20. Quel framework OpenGL/3d est utilisé par le développeur du jeu Android?
- 21. Configurer les cibles de rendu multiples OpenGL
- 22. Exercices pour le calcul de logiciel de rendu 3D
- 23. Coordonnées de texture pour le rendu d'une sphère 3D
- 24. Reconnaissance d'image et rendu 3D
- 25. OpenGL rendu sur Android
- 26. "vide" rendu openGL avec
- 27. Comment programmer 3D en OpenGL
- 28. Rendu Qt utilisant OpenGL
- 29. Unité 3D - Sélection du matériau pour le rendu
- 30. Technique de rendu OpenGL
C'était des informations très utiles. La spécification Radeon HD5870: "affichage 3D stéréoscopique/support de lunettes" m'a confondu. Après avoir parcouru le tampon opengl pour Linux, je suppose que cela n'est même pas possible sur linux. D'autre part [ceci] (http://www.gali-3d.com/archive/articles/StereoOpenGL/StereoscopicOpenGLTutorial.php) parle d'un moyen d'afficher la stéréo sans tampon quadruple. Toute idée si cela est possible sur les GPU grand public? – subhacom
Qu'en est-il des tampons de rendu? Comment les échanger en synchronisation avec le moniteur? La seule solution pour ce cas est l'utilisation de 2 projecteurs? – Luca
@Luca Piccioni: La chaîne stéréo Quadbuffer délègue le travail d'échange/d'obturation au conducteur; Synchronisation à l'obturateur dans le code d'un propre est possible, mais pas fiable. – datenwolf