Pregunta

Tengo un noobish pregunta para cualquier programador gráfico.

Estoy confundido como algunos juegos (como Crysis) puede soportar DirectX 9 (en XP) y 10 (en Vista)?

Lo que yo entiendo es que si usted escribe un DX10 aplicación, entonces puede solo funciona en Vista.

Tal vez ellos tienen 2 bases de código -- escrito en DX9 y otro en DX10?Pero no es una exageración?

¿Fue útil?

Solución

Tienen dos de representación de tuberías, uno usando DX9 llamadas y uno que usa DX10 llamadas.La Api no son compatibles, aunque la mayoría de cualquier motor de juego puede ser reutilizado para cualquiera.Si quieres un poco de código Abierto ejemplos de cómo diferentes de representación de las tuberías se realiza, mirar algo como Ogre3d, que es compatible con OpenGL, DX9, y (pronto)DX10 de representación.

Otros consejos

La representación de la capa de juegos es generalmente bastante bien aislado/abstracta de parte de toda la aplicación.En cuanto al motor de juego se refiere, cada fotograma que son simplemente la creación de una lista de conceptual de los objetos (árboles, personajes, etc.).Si el motor del juego elige para representar un objeto en particular, entonces es la representación de la capa de cómo traducir la intención en DX sacar llamadas.Un DX10 representación generará un conjunto diferente de dibujar las llamadas a un DX9 capa, pero conceptualmente son aún realizando la misma acción - 'render de este árbol'.

La representación está muy bien resumido porque es raro que desea obtener cualquier información de la representación de la capa, una vez que el 'render de este árbol' acción se lleva a cabo, el motor del juego, acaba de asumir que la representación es correcta.Hay poca necesidad de manejar diferentes posibles resultados de DX9/DX10 llamadas de representación, porque el 99,9% de la información que va desde el motor hasta el sistema de gráficos, y el 0,1% de lo que viene detrás probable que toma la misma forma entre las dos Api.

La instalación de la aplicación es un poco más repulsivo, porque tienes que hacer que el sistema sea o no DX10 es compatible con gracia y caer de nuevo en DX9 de otra manera, pero esta es la tarifa estándar para la instalación de la aplicación (de la misma manera que el juego tiene que elegir una resolución, frecuencia de actualización, dispositivo de entrada, etc.).

Es probable que ellos tienen una capa de abstracción y se desarrollan en contra de eso.En tiempo de ejecución que instanciar el DX9 o DX10 envoltura de hormigón motores.

Me imagino que su abstracción se coloca muy cerca de la DirectX capa y simplemente proporciona DX9 sensato manual de implementaciones de DX10 funciones o mejora DX9 lógica cuando se ejecuta en DX10.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top