Bonjour tout le monde.
Je dois ajouter une question à celle-ci, mais elle ne rentrait pas dans le titre.
Est-il possible d'appeler "glMultiDrawArrays" avec des intervalles se chevauchant ?
Ou pour être plus explicite : si j'ai, dans mon buffer, une maison, un vélo et un banc, puis-je dessiner 5 maison, trois vélos et deux bancs avec un seul appel à glMultiDrawArrays ?
Pour que cela soit possible il faut que:
1/ glMultiDrawArrays accepte que je lui donne cinq fois l'intervalle contenant la maison, trois fois celui du vélo etc.
2/ il faut que, côté vertex shader, je puisse distinguer les cinq instances des maisons etc.
Idéalement, il y aurait, côté vertex shader, une variable magique comme gl_InstanceID qui contiendrait un truc allant de 0 à 9 (5 maisons + 3 vélos + 2 bancs = 10 objets).
Je pourrais de là utiliser un tableau (en fait une texture à une dimension) contenant les transformations pour les dix objets.
Côté vertex shader, je pourrais récupérer la matrice à utiliser grâce à la variable magique précédemment nommée.
Pour le 1/, j'entends bien qu'on pourrait me répondre "ben essaie et tu verras bien". Heu, oui, mais avant de me lancer dans un truc qui de toute façon peut échouer de mille façons, autant demander si quelqu'un a déjà essayé ou sait si ça ne marchera pas. Mon niveau en opengl n'est pas très bon (mais c'est pas faute d'essayer).
Pour le 2/ il semblerait que gl_instanceid soit réservée au cas où ... il y a de l'instanciation, ce qui n'est pas mon cas.
Il y a ce lien (en anglais) https://www.gamedev.net/forums/topic...-in-opengl-3x/ qui semble parler de quelque chose de rapprochant de mon problème. Je n'ai pas spécialement le temps de le voir ce soir, hélas.
Je ne demande pas de code, bien entendu. Je cherche plutôt à savoir si:
1/ il existe un gros "STOP" au fait d'utiliser le même intervalle plusieurs fois dans un glMultiDrawArrays
2/ si un tel STOP n'existe pas, comment produire deux résultats différents à partir du même intervalle.
Des pistes, des noms de fonctions. Un début de quelque chose.
(je ne peux pas répondre en journée, ni même lire les réponses. Je n'ai accès à internet que le soir (vers 1h30 du mat) et pas pendant très longtemps. Cependant, je dispose d'une clef usb pour télécharger des trucs à voir pendant la journée. Donc des pages web, des pdf, des vidéos ...)
J'ai également cherché un topic contenant les règles pour poster ici, mais sans succès. Je ne sais pas, par exemple, si j'ai le droit de mettre le lien en anglais que j'ai mit. Si ce n'est pas le cas, je plaide pour ma défense que ce n'est pas par flemme de chercher que je n'ai pas respecté les règles, ni par volonté de les enfreindre.
Je vous remercie par avance et vous souhaite une agréable journée.
Partager