Pregunta

Estoy buscando información sobre XNA en Xbox 360, principalmente si es posible ejecutar matemáticas flotantes basadas en vectores en su GPU.

Si hay una manera, ¿puede indicarme la dirección correcta?

¿Fue útil?

Solución

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

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

Para utilizar la GPU, probablemente querrás escribir sombreadores usando HLSL.Hay una introducción decente a HLSL en el contexto de XNA en Reimers que tal vez quieras repasar.En particular, ese tutorial se centra en hacer que la GPU realice procesamientos relacionados con los gráficos, pero lo que escribas en los sombreadores depende de ti.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), está de suerte y puede detenerse aquí.

Probablemente renderizar en pantalla no es lo que buscas.Ahora, tiene bastante flexibilidad en HLSL en lo que respecta a hacer sus cálculos.Sin embargo, enviar los resultados a 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 más que una ocasión que obtener resultados de la GPU (que no sean renderizados en pantalla) no es trivial y tiene implicaciones de rendimiento.La recuperación de datos implica una llamada a GetData que causar una parada en la tubería.

Entonces se puede hacer.El marco XNA le permitirá escribir sombreadores para 360 (que admite Shader Model 3.0 más algunas extensiones) y es Es posible obtener esos resultados, aunque puede que no sea lo suficientemente eficiente para sus necesidades.

Otros consejos

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

Dado que HLSL en realidad está basado en vectores, tiene todas las herramientas que necesita: operaciones de puntos, cruces, vectores y cálculos matriciales.Si desea enviar cálculos a la GPU y editar/usar los resultados en la CPU, puede escribir en la textura y luego recuperarla en el lado de la CPU y decodificarla; usarlo para partículas o interacciones físicas (como el agua) son algunas de las ocasiones en las que podrías querer hacerlo.

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