Question

Je barboter dans DX11, et je remarque qu'il n'y a pas ID3DX11Mesh comme il y avait un ID3DX10Mesh en DX10. J'imagine que cela pourrait être dû à l'une des deux choses, soit ID3DX10Mesh ne remplaçant NEET, puisque DX11 étend la plupart du temps juste DX10, ou il a été remplacé par quelque chose dans le cadre de XNA?

Pas exactement un problème, le DX10 semble encore travailler avec DX11, mais je pensais que je pourrais aussi bien mettre en œuvre ma propre classe de maillage.

Maintenant, la question est, comment fonctionne exactement le travail ID3DX10Mesh :: DrawSubSet? Être en mesure de tirer des sous-ensembles d'un maillage avec différents matériaux / propriétés est quelque chose que je pense que je vais avoir besoin.

Je sais qu'il utilise une sorte de table d'attributs -. Je ne suis pas clair si la façon dont cela est stocké et utilisé

Une solution simple je peux penser serait simplement pour stocker plusieurs tampons d'index dans un maillage, une pour chaque sous-ensemble. Avec de nombreuses propriétés que cela pourrait devenir un grand nombre de tampons d'index.

En variante, en stockant les faces du maillage (référence sommets par index) et en attribuant des propriétés à eux, je pourrait tirer un sous-ensemble de faces avec une certaine propriété par la construction d'une mémoire tampon d'index de toutes les faces de cette propriété.

Sur ces deux, le stockage des visages semble plus propre, mais je pense que je dois stocker les tampons d'index de toute façon. (Sacrifier du temps pour reconstruire ces tampons toutes les images ne semble pas nécessaire)

Je suppose que beaucoup de sous-ensembles doivent être évités de toute façon de maintenir le nombre d'appels tirage bas, et dans ce cas, les tampons supplémentaires ne devrait pas prendre trop de mémoire supplémentaire.

Aucune idée semble optimale, alors je serais heureux d'autres idées ou des indices sur la mise en œuvre réelle de DrawSubSet:)

Était-ce utile?

La solution

En bref - oublier ID3DX__Mesh et mettre en œuvre votre propre classe qui a la fonctionnalité dont vous avez besoin. Ils ont enlevé pour la même raison, ils ont supprimé les fichiers * .x le soutien de DX10 - parce que, malgré le fait que MS avait écrit dans tous les coins du DX SDK fichier * .x est juste un dev / format d'essai et ce n'est pas adapté à une utilisation de production, beaucoup de développeurs (apparemment lazyor simplement ignorants) utilisaient, et les plaintes à MS envoyer à ce sujet de la lenteur / manque de certaines fonctionnalités. Donc, MS a appris la leçon.

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