2016-08-25 1 views
0

J'ai une question basique sur directx (im en utilisant d3d9), après avoir regardé quelques tutoriels je veux créer un programme 3d de base et je ne semble pas obtenir 1 chose. Ai-je besoin de copier les sommets/indices chaque fois que je veux dessiner un modèle dans 1 tampon de vertex? Ou puis-je charger plusieurs modèles dans un tampon de vertex/index? Ou ai-je besoin de créer plusieurs buffers de vertex/indices, chacun pour chaque modèle?Passant à directx vertex/indices buffers

Répondre

0

Vous êtes libre de faire ce que vous voulez, si vous regardez IDirect3DDevice9::DrawIndexedPrimitive, vous trouverez BaseVertexIndex et StartIndex, il vous permet de décaler dans le tampon de sommet et l'index, oui, vous pouvez emballer plusieurs géométries dans le même tampon , cela est utile pour réduire le montant de l'appel à SetIndices et SetStreamSource. Si votre foulée de vertex change, vous devez toujours appeler le dernier avec un décalage d'octet et la nouvelle foulée. À moins que vous n'ayez affaire à la géométrie dynamique, vous copiez habituellement les données une seule fois dans vos mémoires tampons et vous les réutilisez à travers la trame.