Comment passer uniforme tableau de struct à shader via le code C++
pour eg.
dans FragmentShader:-
struct LightSource
{
int Type;
vec3 Position;
vec3 Attenuation;
vec3 Direction;
vec3 Color;
};
uniform LightSource Light[4];
main(){
//somecode
}
Maintenant, comment puis-je envoyer des valeurs pour Light[4]
.
Est-ce pour OpenGL et OpenGL ES? Dans GL (3.1+), la meilleure façon de le faire est avec un Uniforme de la mémoire Tampon.
puis-je l'utiliser avec GLES 2.0 ?
Non, et c'est pourquoi je vous demande d'être plus précis avec vos tags. Vous avez ce tag pour ES et GL.
puis-je l'utiliser avec GLES 2.0 ?
Non, et c'est pourquoi je vous demande d'être plus précis avec vos tags. Vous avez ce tag pour ES et GL.
OriginalL'auteur jpm | 2014-05-11
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin pour obtenir l'emplacement de chaque champ de la structure de chaque élément du tableau et envoyer la valeur séparément. Voir l'OpenGL page wiki pour référence: http://www.opengl.org/wiki/Uniform_(GLSL)#Uniform_management.
Par exemple pour définir la valeur de la Lumière[0].Type, on peut effectuer les opérations suivantes:
OriginalL'auteur user3256930