2008-09-24 14 views
7

Estoy buscando información sobre XNA en Xbox 360, sobre todo si es posible ejecutar matemática flotante basada en vectores en su GPU.Programación de GPU en Xbox 360

Si hay alguna manera, ¿me puede indicar la dirección correcta?

Respuesta

6

No pretendo ser un experto en esto, pero espero que esto pueda indicarle una dirección útil.

¿Es posible? Sí. Probablemente ya sepas que la GPU es buena en tales cálculos (de ahí la pregunta) y puedes controlar la GPU usando XNA. Si es o no se adaptará a sus necesidades es un asunto diferente.

Para hacer uso de la GPU, presumiblemente querrá escribir sombreadores usando HLSL. Hay una introducción decente a HLSL en el contexto de XNA en Reimers, que es posible que desee ejecutar. Notablemente, ese tutorial se enfoca en hacer que la GPU haga un crunching relacionado con los gráficos, pero lo que escriba en los sombreadores depende de usted. Si su matemática flotante basada en vectores tiene el propósito de renderizar (y por lo tanto puede permanecer en el dominio de la GPU), tiene suerte y puede detenerse aquí.

Probable representación en pantalla no es lo que buscas. Ahora, tiene una gran cantidad de flexibilidad en HLSL en lo que respecta a hacer sus cálculos. Sin embargo, obtener los resultados en la CPU no es la forma en que se diseñó el sistema. Esto se está volviendo confuso para mí, pero Shawn Hargreaves (un desarrollador de XNA) afirma en more que one occasion que obtener resultados de la GPU (que no sean representados en pantalla) no es trivial y tiene implicaciones de rendimiento. Recuperar datos implica una llamada a GetData que será cause a pipeline stall.

Así que se puede hacer. El framework XNA le permitirá escribir shaders para el 360 (que es compatible con Shader Model 3.0 más algunas extensiones) y es posible para obtener esos resultados, aunque puede no ser lo suficientemente eficiente para sus necesidades.

2

Como se indicó anteriormente, XBox360 es totalmente capaz de cualquier cálculo HLSL y, específicamente, puede manejar las instrucciones Vertex y Pixel shader modelo 3 y tiene un conjunto mejorado de instrucciones que son específicas de la plataforma.

Dado que HLSL se basa realmente en vectores, tiene todas las herramientas que necesita: operaciones de puntos, cruzadas, vectores y cálculos de matrices. Si desea enviar cálculos a la GPU y editar/usar los resultados en la CPU, puede escribir en la textura y luego buscarla en el lado de la CPU y decodificarla, utilizándola para partículas o interacciones físicas (como el agua) son pocas de las ocasiones cuando es posible que desee hacerlo.

Cuestiones relacionadas