Mémoires tampons de vertex FVF (Direct3D 9)

La définition du paramètre FVF de la méthode IDirect3DDevice9::CreateVertexBuffer sur une valeur différente de zéro, qui doit être un code FVF valide, indique que le contenu de la mémoire tampon doit être caractérisé par un code FVF. Une mémoire tampon de vertex créée avec un code FVF est appelée mémoire tampon de vertex FVF. Certaines méthodes ou utilisations d’IDirect3DDevice9 nécessitent des mémoires tampons de vertex FVF, tandis que d’autres nécessitent des mémoires tampons de vertex non FVF. Les mémoires tampons de vertex FVF sont requises comme argument de mémoire tampon de vertex de destination pour IDirect3DDevice9::P rocessVertices.

Les mémoires tampons de vertex FVF peuvent être liées à un flux de données source pour n’importe quel numéro de flux.

La présence du composant D3DFVF_XYZRHW sur les tampons de vertex FVF indique que les sommets de cette mémoire tampon ont été traités. Les mémoires tampons de vertex utilisées pour les mémoires tampons de vertex de destination IDirect3DDevice9::P rocessVertices doivent être post-traitées. Les mémoires tampons de vertex utilisées pour les entrées de nuanceur de fonction fixe peuvent être prétraitées ou posttraitées. Si la mémoire tampon de vertex est post-traitée, le nuanceur est effectivement contourné et les données sont transmises directement au module de découpage primitif et de configuration.

Les tampons de vertex FVF peuvent être utilisés avec des nuanceurs de vertex. En outre, les flux de vertex peuvent représenter les mêmes formats de vertex que les mémoires tampons de vertex non FVF peuvent. Ils n’ont pas besoin d’être utilisés pour entrer des données à partir de mémoires tampons de vertex distinctes. La flexibilité supplémentaire des nouveaux flux de vertex permet aux applications qui doivent conserver leurs données distinctes pour mieux fonctionner, mais cela n’est pas nécessaire. Si l’application peut gérer les données entrelacées à l’avance, il s’agit d’une amélioration des performances. Si l’application n’entrelace les données qu’avant chaque appel de rendu, elle doit permettre à l’API ou au matériel de le faire avec plusieurs flux.

Les choses les plus importantes avec les performances de vertex sont d’utiliser un sommet de 32 octets et de maintenir un bon classement du cache.

Mémoires tampons de vertex