2010-02-16 10 views
8

Cuando desarrollamos páginas web, podemos determinar ampliamente qué navegadores admitir según marketshare.¿Qué versión de OpenGL/Direct3D debo apuntar para una compatibilidad óptima?

Cuando desarrollamos en .NET, podemos determinar ampliamente para qué versión de .NET se debe desarrollar basado en which Windows versionshave it installed.

Pero al desarrollar aplicaciones OpenGL o Direct3D, ¿cómo sabemos qué tarjetas de video están usando (me refiero a "personas" en oposición a "jugadores de núcleo duro" o "empresas que usan CAD": P)? ¿Hay estadísticas sobre tales cosas? ¿Existe alguna lógica común que las personas usen para determinar qué versión respaldar? Así como la mayoría de las compañías han apoyado (quizás until just recently) un mínimo de IE6 en páginas web, ¿existe un consenso general para admitir un mínimo de, digamos, OpenGL 1.5 o DirectX 8 o algo así?

Observo que podemos encontrar which specific video cards support which versions de estas API, pero ¿cómo sabemos qué tarjetas de video usan realmente las personas? ¿Hay algún tipo de investigación al respecto?

N.B. Estoy más interesado en OpenGL porque eso es lo que estoy usando, pero menciono Direct3D porque supongo que se aplica el mismo problema.

Respuesta

6

OpenGL 2.1 es una buena apuesta. El nuevo OpenGL 3 no ofrece mucha más funcionalidad. Debe verificar la disponibilidad de todas las extensiones de OpenGL de todos modos, para que no pierda mucho al seguir con 2.1.

Para DirectX: Use DirectX 9c. Esa es la última versión que todavía se ejecuta en Windows XP. Los conductores son estables y muy maduros. DirectX 10 ofrece más funcionalidad, pero bloqueará la base de usuarios que aún ejecuta Windows XP.

Acerca de la compatibilidad para quienes no juegan: Las tarjetas gráficas que no admiten estas API (al menos en un grado útil) han desaparecido hace más de cinco años. Dado el típico ciclo de vida de una PC, puede estar casi seguro de que nadie tendrá problemas.

Si cualquier usuario se queja de que el software no se ejecuta en su tarjeta matrox-parhelia de 10 años, debería comprar la tarjeta gráfica más barata que pueda obtener. Funcionará mucho más rápido y costará una fracción del software.

+0

DirectX 7 tarjetas de nivel todavía se ejecutará en DX9. Simplemente no puede usar funciones como sombreadores. Este no es el caso con DX10, si una tarjeta no es compatible con el conjunto de características DX10 no puede usar DX10. – Goz

+0

Tenga en cuenta que elegir la versión de API que utilizar no lo acerca más a la determinación de su conjunto de características permitidas. Una de las principales trampas del desarrollo en 3D es que muchas funciones requeridas por el estándar que afirman soportar "funcionarán" pero no a un nivel de calidad y rendimiento que pueda usar. Diferentes hardware preferirán un subconjunto diferente de características estándar. – Alan

0

Depende del calendario del proyecto en el lado de DirectX.

Si el proyecto va a estar listo en meses, siga los consejos de Nils. SI el tiempo es más de un año, reconsideraría limitarme a DirectX9 ya que las máquinas XP son cada vez menores con el tiempo. DirectX11 sería una buena idea, especialmente con retrocompatibilidad hasta el nivel de función 9.0.

7

La fragmentación del mercado para hardware en 3D siempre ha sido un gran problema. No hay una respuesta simple.

Debe definir quiénes son sus usos. ¿Es este un juego orientado a lo casual que pretendes vender a personas que no han actualizado su computadora en años? ¿Es esta una aplicación comercial que apunta al hardware de grado de estación de trabajo? ¿Estás buscando un comprador de juegos medio en el camino? ¿Es esto algo más simple que un juego como un salvapantallas que planeas vender a personas que no compran juegos en absoluto? ¿Necesitas apoyar computadoras portátiles? Netbooks?

La fragmentación del mercado es considerablemente peor con OpenGL que con DirectX. Los requisitos estándar oficiales del Grupo Khronos están muy bien.Pero los proveedores de hardware tienden a ser muy lentos para actualizar sus controladores para que coincidan con el estándar. La especificación GL requiere muchas características, pero solo se implementan en una ruta de software de reserva que no se puede usar en el software comercial. La nueva especificación de OpenGL 3.1 intenta mejorar esta situación eliminando el soporte para la mayoría de las características más antiguas y mal compatibles. Pero si necesita soportar hardware de hace más de un par de años (o las GPU más modernas integradas de Intel), entonces GL 3.1 estaría apuntando demasiado alto.

Un buen lugar para comenzar a usar hardware general entre los compradores de juegos es la Encuesta de Steam Hardware (http://store.steampowered.com/hwsurvey). Steam es el servicio de distribución de juegos digitales más popular que cubre una variedad de juegos, desde casual hasta core. Restablecen los números periódicamente para mantenerlo actualizado. El año pasado informaron que tenían 25 millones de usuarios activos, por lo que la población de muestra es bastante buena.

Por lo que probablemente necesite reducir su grupo de clientes objetivo más. Recomendaría seleccionar algunas aplicaciones competidoras recientes que considere que tienen una base de clientes similar a la suya y basar su hardware objetivo en lo que requieren.

+1

+1 para el enlace de la encuesta de hardware Steam. Bien hecho. –

Cuestiones relacionadas