* d3dx ... non, tu peux gérer la matrice de proj toi-même, il suffit de multiplier les coeffs de la ligne x ou y par ce que tu veux.
* processvertices est à ne jamais utiliser (sauf si tu sais ce que tu fais ), car la transformation est faite en soft.
* les vertex buffers sont toujours plus rapides qu'un DrawPrimitiveUP() : avec un drawprimitive(), les appels sont batchés, donc la fonction copie ta zone mémoire pour ensuite la balancer à la carte. avec un vb, c'est dx (hard ou soft) qui possède la mémoire, jamais de recopie. si tu as une carte t&l, les vbs sont stockés sur la carte vidéo (dans la limite de la mémoire). un DrawPrimitiveVB() ne fait que dire à la carte "render tel vb", plutôt que de copier les données.
* optimiser tes VBS ? si ce sont des objets statiques, tu les initiliases une bonne fois pour toutes et tu n'y touches plus. s'ils sont dynamiques, tu les créés avec les bons flags (_writeonly & co), tu les lockes, tu écris tes nouvelles données, tu unlockes.
* buffers d'index = même topo que drawprimitive up / vb. pas beaucoup de cartes le gèrent en hard, mais ça évite la recopie quoiqu'il arrive.
* progressive mesh = ça dépend. lis un peu la littérature sur le sujet, comme les slides du mec qui a fait planetside (je sais plus où c'est), ça te renseignera bien. dans certains cas il est préférable d'avoir 2-3 modèles à des niveaux de détail fixes car les cartes modernes bourrent bourrent bourrent. le progressive mesh est toujours fait en soft. tu ne peux voire le bon équilibre qu'en testant.