Bonjour,

Je souhaite modéliser un terrain très grand et l'afficher de façon optimisée. Pour ce faire, j'ai stocké toutes les données dans un fichier en binaire et je ne récupère que les vertex visibles en dynamique (par le frustum culling).

Je souhaite donc charger ces données par un thread (avec sdl), seulement je ne vois pas trop comment m'y prendre car immanquablement, quand openGL va afficher les vertex, il va y avoir conflit quand je v supprimer les anciennes valeurs et mettre les nouvelles (ça m'arrive d'ailleurs).

Autant je vois comment utiliser un mutex mais l'utiliser sur des données à afficher c'est pas vraiment conseillé si j'ai bien compris alors je ne peux pas mettre ma fonction d'affichage en thread ??.

Le progamme fonctionne bien sans thread, hormis des ralentissements (logique, tout de même 2 à 300 groupes de vertex à charger à chaque fois).


- void Map :: prepareDraw() = > teste le nouveau frustrum culling. S'il change alors le thread est lancé (sauf si c'est déjà en cours).

- int Map :: thread() = > charge les nouveaux vertex + index, supprime les anciens. Doit être un thread

- void Map :: draw() = > dessine ces vertex (par glDrawElements()). Fonction normale.


Merci de votre aide.