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 a> et lisant Introduction à la programmation 3D avec DirectX 11 A >, J'ai échoué à comprendre p>
Mon objectif ultime est de passer plus de paramètres plus tard sur lesquels sera utilisé par un effet de shader. P>
3 Réponses :
Une option serait d'utiliser la tessellation. P>
Êtes-vous sûr qu'il n'y a rien de tel que de passer un sommet et de dessiner une sphère de cela? Comme une énorme particule.
Vous devrez mettre en place Shader géométrique a>. Ce shader devrait prendre SPHERE CENTER et RADIUS en tant qu'entrée et émettre un banc de sommets pour la rastérisation. En général, cela s'appelle des sprites points. P>
Peut-être pas pour Vertex Shader, car il est avant la géométrie Shader dans le pipeline de rendu?
pendant que vous peut em> 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. P>
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. P>
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.