Hemos estado considerando la compra de un monitor LCD listo para 3D, junto con una máquina con una visión tarjeta 3D estereoscópica capaz de gráficos (ATI Radeon 5870 o mejor). Esto es para mostrar algunos datos científicos que estamos renderizando en 3D usando OpenGL. Ahora podemos esperar que la GPU, el Monitor y los obturadores se encarguen de la pantalla estereoscópica o necesitamos modificar el programa de renderizado? Si hay técnicas específicas para la programación de gráficos para pantallas estereoscópicas 3D, algunos enlaces de tutoriales serán muy apreciados.¿Se puede usar el renderizado OpenGL para monitores 3D?
Respuesta
disposiciones Techically OpenGL para la visualización estereoscópica. La palabra clave es "Quad Buffered Stereo". Puede cambiar la representación del ojo izquierdo-derecho con glDrawBuffer(GL_BACK_LEFT); /* render left eye view */; glDrawBuffer(GL_BACK_RIGHT); /* render right eye view */;
.
Desafortunadamente estéreo Quadbuffer se considera una característica profesional por los vendedores de la GPU. Por lo tanto, necesita una NVidia Quadro o una tarjeta gráfica AMD/ATI FireGL para obtener soporte.
representación estereoscópica no se realiza por la inclinación de los ojos, pero mediante la aplicación de un "desplazamiento de la lente" en la matriz de proyección. Los detalles son un poco complicados, sin embargo. Hice una charla el año pasado al respecto, pero aparentemente el vínculo con mis diapositivas de presentación se redujo.
El diagrama clave es este (que es de mis notas de mi parche a Blender para apoyar directamente la representación estereoscópica)
- 1. Aplicación 3D de varios monitores
- 2. ¿Se puede usar OpenGL en Kernel?
- 3. Android OpenGL selección 3D
- 4. motor de renderizado 3D de código abierto para Java
- 5. ¿Se puede usar canvas.getContext ('3d')? Si es así, ¿cómo?
- 6. Python GUI con renderizado/dibujo personalizado
- 7. renderizado OpenGL versus implementación de iluminación propia de Phong
- 8. OpenGL: Problema con bandas triangulares para malla 3d y normales
- 9. Cargando modelo 3D en la escena OpenGL
- 10. SDL vs GLUT en opengl Programación 3D
- 11. Desarrollo para monitores múltiples
- 12. ¿Cómo hacer el renderizado de texto en vivo de OpenGL para una GUI?
- 13. ¿Puede el juego 3D OpenGL escrito en Python verse bien y ejecutar rápido?
- 14. QT OpenGL QGLWidget no se puede encontrar
- 15. ¿Qué API usar para dibujar objetos 3D en C#?
- 16. Herramienta para medir el tiempo de renderizado
- 17. ¿Cómo usar el sharegroup de OpenGL ES para compartir un búfer de renderizado para el reflejo de pantalla en el iPad?
- 18. Directorio de monitores para cambios
- 19. OpenGL: ¿Cómo diseñar un sistema de renderizado eficiente usando matrices de vértices con clasificación de profundidad?
- 20. No se puede usar EMDK para .NET
- 21. ¿Se puede usar R para GIS?
- 22. ¿Se puede usar XmlAttributes para selectivamente XmlIgnore?
- 23. Matriz de proyección Fisheye en Xna/OpenGL - 3D
- 24. ¿Se puede usar libgdx para 2 juegos?
- 25. ¿Qué álgebra lineal usar para OpenGL en Haskell?
- 26. Tarjeta de video buena (¿barata?) Para usar esos monitores adicionales en la oficina
- 27. No se puede probar la funcionalidad de renderizado para los métodos de ayuda en Rspec
- 28. Algoritmos para laberintos 3D
- 29. ¿Se puede usar Lua para el desarrollo de aplicaciones?
- 30. no se puede usar .bind() para vincular el vuelo estacionario
Esa era una información muy útil. La especificación de Radeon HD5870: "pantalla estereoscópica 3D/soporte de gafas" me confundió. Después de buscar en Google OpenGL Quad Buffer en Linux, sospecho que esto ni siquiera es posible en Linux. Por otro lado [este] (http://www.gali-3d.com/archive/articles/StereoOpenGL/StereoscopicOpenGLTutorial.php) habla sobre alguna forma de mostrar estéreo sin cuádruple búfer. ¿Alguna idea de si esto es posible en las GPU de grado de consumo? – subhacom
¿Qué hay de los búfers de render? ¿Cómo intercambiarlos en sincronización con el monitor? La única solución para este caso es el uso de 2 proyectores? – Luca
@Luca Piccioni: el estéreo Quadbuffer delega el trabajo de intercambio/obturación al controlador; la sincronización con el obturador en el código de uno mismo es posible, pero no confiable. – datenwolf