2017-04-24 12 views
0

J'écris mon premier programme 3D sous OpenGL 3.3 et je trouve des problèmes pour régler différents matériaux pour différents objets. J'ai réussi à dessiner 3 sphères (les sommets sont stockés dans un VAO puis traduits et dessinés) et en utilisant des uniformes j'ai changé leur apparence du vertex shader. Maintenant le problème est que les sphères devraient avoir des matériaux différents mais je ne peux pas comprendre comment mettre différents uniformes pour chaque sphère. Quelle est la meilleure façon de le faire?OpenGL par matériaux d'objet

+0

un matériau est à peu près équivalent à un programme de shader. Vous pouvez lier différentes textures et uniformes et simplement GlUseProgram() lors du rendu de votre objet. Donc avant de rendre chaque sphère lier le programme et uniformiser vos propriétés matérielles (I.e textures etc) – mutex36

Répondre

0

gl_VertexID peut être utilisé. Mais le meilleur dans ce cas est standandalone vbo je pense.

https://rocketgit.com/user/bowler17/gl/source/tree/branch/wrench/blob/t.c

+0

Que voulez-vous dire par vbo autonome? Suggérez-vous que je devrais utiliser un vbo pour chaque sphère? Et puis je devrais stocker le matériel dans le vbo? – RobiNoob

+0

non Un tapis pour un sommet –

+0

smth comme vec4 avec des coefficients de mat. Comme vbo avec les normales –