0
votes

Comment dessiner une sphère dans le D3D11, la position donnée et le rayon?

Pour dessiner une sphère, on n'a pas besoin de savoir autre chose, mais c'est la position et le rayon. Ainsi, rendant une sphère en passant un triangle en forme de triangle très inefficace, à moins que vous n'ayez besoin de couleurs par sommet ou d'autres caractéristiques de ce type. Malgré Googling, recherchez Documentation D3D11 et lisant Introduction à la programmation 3D avec DirectX 11 , J'ai échoué à comprendre

  1. est-il possible de dessiner une sphère en passant uniquement la position et le rayon de celui-ci au GPU?
  2. Sinon, quel est le principe principal que j'ai mal compris?
  3. Si oui, comment le faire?

    Mon objectif ultime est de passer plus de paramètres plus tard sur lesquels sera utilisé par un effet de shader.


2 commentaires

Dans les années 1980, lors de l'écriture de jeux dans le code de la machine Z80, vous pouvez dessiner des cercles sans prendre la racine carrée ou utiliser des fonctions trigonométriques. Ces derniers sont toujours chers sur des ordinateurs modernes. Je me demande si les optimisations de plus de 40 ans persistent?


Je pense que vous sous-estimez à quel point GPU est rapide lors du dessin des triangles. Ils ne gaspillent pas de matériel pour pouvoir dessiner des formes primitives comme des sphères car il n'y a pas besoin.


3 Réponses :




0
votes

pendant que vous peut créer une sphère d'un point et d'un sommet sur le GPU, il n'est généralement pas très efficace. Avec des GPU plus hauts, vous pouvez utiliser une tessellation matérielle, mais même cela serait mieux fait de manière différente.

La meilleure solution consiste à utiliser l'instanciation et le rendu des terrains de la même géométrie VB / IB de la même géométrie SPHERE à différentes positions et tailles.


0 commentaires