Bonjour,

J'ai commencé l'apprentissage de directx il y a quelques semaines, et j'en suis venu au point où j'aimerais faire un frustum culling.
Je pense avoir compris le principe et ai trouvé des tutos sur le net qui devraient me suffire (ce n'est pas compliqué après tout, juste quelques formules de maths ).

Seulement, il y a un problème sur lequel je bute :

Le but du frustum culling est d'envoyer au GPU uniquement les vertices susceptibles d'être affichés à l'écran (appartenant donc au frustum).
Mais à partir de quel moment un buffer se trouve sur le GPU et à quel moment se trouve-t-il dans la RAM ?

Voici les 2 fonctions qui me semblent coupables :

ID3D10Device::CreateBuffer(...);
The creation and initialization of the vertex buffer is done at once so that we don't need to initialize the buffer later.

ID3D10Device::IASetVertexBuffer(...);
This function binds the vertex buffer to the device.

Mais les explications du SDK me laissent un peu ...
Sur quelles fonctions dois-je intervenir pour empêcher de copier des données dans la mémoire du GPU (et ainsi évitées d'être tranformées, éclairées, ..., etc) ?

Ou alors il suffit tout simplement de ne pas appeler ID3D10Device:raw(...) ?
Mais dans ce cas, on stocke tous les vertices de la scène dans la mémoire du GPU, en en utilisant qu'une partie. Est-ce envisageable pour une scène extrêmement lourde ? N'est-ce pas du gaspillage ?