ventajas modo mejor graficos google entre earth diferencia desventajas cual opengl 3d hardware directx

modo - opengl vs directx 2017



Sistema de visualización de múltiples cabezas (5)

¿Qué herramientas, APIs, bibliotecas hay por ahí que pueda usar para crear un sistema capaz de renderizar escenas 3D de alta resolución en tiempo real en una pantalla compuesta por pantallas, proyectores 4, 8, 9, 16, etc.? Para una configuración con 8 proyectores, debería buscar soluciones agrupadas o ¿debería quedarme con un solo nodo con 4 tarjetas de video de doble cabezal? ¿Alguien tiene alguna experiencia con eso?


Debería echar un vistazo a la tarjeta gráfica " AMD Radeon HD 5870 Eyefinity 6-edition ". Esto admite la salida a seis pantallas simultáneamente y permite la configuración de varias opciones en el controlador con respecto a la disposición de las salidas (3 en una fila, 2x3 horizontal / vertical), etc.).

En cuanto a API: con una tarjeta como esta (pero también con TripleHead2Go) obtienes un lienzo virtual único, que admite aceleraciones 3D completas sin pérdida de rendimiento (mucho mejor que con un escritorio extendido). En AMD lo llaman una superficie grande única (probablemente equivalente a lo que NVidia llama un tramo horizontal / vertical). La advertencia aquí es que todas las salidas deben tener la misma resolución, velocidad de cuadro y profundidad de color. Dicha superficie podría tener una resolución de 5760 x 3240 o superior, dependiendo de la configuración, por lo que es bueno que el 5870 sea tan rápido.

Luego, en su aplicación, renderiza en este gran lienzo virtual (usando OpenGL, Direct3D o de alguna otra manera) y listo ... Excepto que no dijo si iba a tener las pantallas en un ángulo para cada uno otra o en una configuración plana. En este último caso, puede usar una sola cámara de perspectiva y renderizar a todo el backbuffer. Pero si tiene más de una configuración ''surround'', entonces necesita tener varias cámaras en su escena, todas mirando desde el mismo punto.

El bucle más rápido para hacer esta representación es probablemente:

for all all objects set textures and shader and renderstate for all viewports render object to viewport

y no

for all viewports for all objects set textures and shader and renderstate render object to viewport

debido a que el cambio de objetos hace que la GPU pierda mucha más información útil de su estado y cachés que al cambiar las ventanas gráficas.

Puede ponerse en contacto con AMD para verificar si es posible agregar dos de estas tarjetas (el suministro de energía lo permite) a un solo sistema para controlar hasta 12 pantallas.

Tenga en cuenta que no todas las configuraciones son compatibles (por ejemplo, 5x1 no lo es, como leo de las preguntas frecuentes).

Mucha de mi experiencia al respecto se recopiló durante la creación del proyecto Future Flight Experience , que utiliza tres beamers (cada uno con su propia cámara en la escena 3D), una doble Nvidia GTX 280 en SLI y una Matrox TripleHead2Go en Windows XP .


Puede usar Xinerama o XRandR cuando trabaje con X11 / Xorg. Pero para citar Wikipedia en Xinerama :

En la mayoría de las implementaciones, la representación directa de OpenGL (3D) solo funciona en una de las pantallas. Las ventanas que deberían mostrar gráficos 3D en otras pantallas tienden a aparecer negras. Esto se ve más comúnmente con los protectores de pantalla 3D, que se muestran en una de las pantallas y en negro en los demás. (La implementación Solaris SPARC OpenGL permite la representación directa en todas las pantallas en modo Xinerama, al igual que el controlador nvidia cuando ambos monitores están en la misma tarjeta de video).

Le sugiero que lea primero el artículo de Wikipedia.


Sé que la envoltura de OpenGL pyglet ( http://www.pyglet.org ) para python tiene soporte multiplataforma multipónomo; Es posible que desee ver su código fuente y descubrir cómo se implementa.


Utilizo uno de estos ingeniosos TripleHead2Go en casa en mi plataforma de juego para manejar 3 pantallas desde una tarjeta de video (incluso en Vista). Dos pantallas con un bisel en el medio es un poco fastidioso para los juegos. TripleHead2Go http://www.maximumpc.com/files/u21826/header-3htgo.png

Me enteré de ellos porque estábamos buscando utilizar varios de ellos en el trabajo para manejar un sistema nuestro que tiene alrededor de 9 pantallas. Creo que por eso terminamos yendo con un sistema con 5 ranuras PCI-X y una tarjeta de doble cabeza en cada una. Si tiene problemas para obtener tantas ranuras PCI en una placa base, existen sistemas de expansión de bus PCI-X disponibles.


Equalizer es probablemente una de las mejores soluciones que encontrarás.

Está específicamente diseñado para dividir renders y distribuirlos a través de la pantalla.

Descripción:

El ecualizador permite al usuario escalar el rendimiento de representación, la calidad visual y el tamaño de visualización. Una aplicación basada en ecualizador se ejecuta sin modificaciones en cualquier sistema de visualización, desde una simple estación de trabajo hasta clústeres de gráficos a gran escala, estaciones de trabajo de múltiples GPU e instalaciones de realidad virtual.

Ejemplo de uso del ecualizador:

Render Wall http://www.equalizergraphics.com/screenshots/wall2-small.jpg

He trabajado en proyectos que intentan hacer cosas similares sin Equalizer, y honestamente puedo decir que fue bastante malo. Lo conseguimos apenas trabajando. Después de encontrar el ecualizador más tarde, no puedo imaginar cuánto más fácil hubiera sido con una herramienta de este tipo.