Question

Je recherche un aperçu de XNA sur Xbox 360, principalement s'il est possible d'exécuter des mathématiques à base flottante vectorielles sur son GPU?

S'il y a un moyen, pouvez-vous me diriger dans la bonne direction?

Était-ce utile?

La solution

Je ne prétends pas être un expert en la matière, mais j'espère que cela vous orientera dans une direction utile.

Est-ce possible? Oui. Vous savez probablement déjà que le GPU est bon pour de tels calculs (d'où la question) et vous pouvez en effet contrôler le GPU à l'aide de XNA. Que cela convienne ou non à vos besoins est une autre affaire.

Pour utiliser le GPU, vous voudrez probablement écrire des shaders en utilisant HLSL. Il existe une introduction décente à HLSL dans le contexte de XNA à l'adresse Reimers que vous pourriez vouloir parcourir. Notamment, ce tutoriel a pour objectif principal de faire en sorte que le GPU effectue le traitement graphique, mais ce que vous écrivez dans les shaders dépend de vous. Si vos calculs float à base de vecteurs ont pour objectif le rendu (et peuvent donc rester dans le domaine GPU), vous avez de la chance et pouvez vous arrêter ici.

Le rendu à l'écran n'est probablement pas ce que vous recherchez. Maintenant, vous avez beaucoup de flexibilité dans HLSL en ce qui concerne vos calculs. Obtenir les résultats sur le processeur, cependant, n'est pas la façon dont le système a été conçu. Cela devient flou pour moi, mais Shawn Hargreaves (un développeur de XNA) déclare ce qui suit sur plus plus que une fois , la sortie du GPU (autre que celle affichée à l'écran) est non trivial et a des conséquences sur les performances. La récupération des données implique un appel à GetData qui provoque une arrêt du pipeline .

Donc, cela peut être fait. Le framework XNA vous permettra d’écrire des shaders pour la 360 (qui prend en charge Shader Model 3.0 plus quelques extensions) et il est possible d’obtenir ces résultats, bien que cela puisse ne pas être assez efficace pour vos besoins.

Autres conseils

Comme indiqué ci-dessus, la XBox360 est totalement compatible avec tous les calculs HLSL et en particulier, elle peut gérer les instructions Vertex et Pixel Shader Model 3 et dispose d'un jeu d'instructions amélioré spécifique à la plate-forme.

Etant donné que HLSL est basé sur des vecteurs, vous disposez de tous les outils nécessaires - opérations sur points, croix, vecteurs et calculs matriciels. Si vous souhaitez envoyer des calculs au GPU et modifier / utiliser les résultats sur le CPU, vous pouvez écrire dans Texture, puis les extraire du côté de la CPU et les décoder - en les utilisant pour des particules ou des interactions physiques (telles que l'eau). les occasions où vous voudrez peut-être le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top