Désolé pour le mauvais titre, mais je ne pouvais pas trouver mieux.GLSL pas de couleur lors de l'utilisation de deux variables d'entrée multipliées
J'ai le fragment de code shader suivant:
#version 430 core
out vec4 color;
uniform vec4 coords; //set to {1.f,1.f,1.f,1.f}
uniform vec3 values; //{time, a, b}
void main() {
float time = values[0];
float c;
c = coords[1]; //green
c = coords[1]*0.5f; //dark green
c = sin(time); //works like it should. moves between black and green.
c = time*1.0f; //quickly becomes green
c = 1.0f*coords[1]; //green
c = time*coords[1]; //black.
color = vec4(0,c,0,1);
}
Cependant, je ne peux pas pour la vie de me parviennent à combiner le temps variable et tout élément coords. Il devient juste noir. C'est à dire. time * coords [1] ne produit jamais de couleur, même si coords [1] est toujours 1.0f et le temps devient rapidement grand.
Éditer: Il n'y a aucune erreur lors du chargement du matériau.
Gardez à l'esprit le temps sera très probablement plus de 1,0f! Mais je doute que ce soit un problème. Vous ne demandez que les coordonnées de 'time * [1]' ici, n'est-ce pas? – fordcars
Ce qui est suspect, c'est que le cas qui ne fonctionne pas est le seul où les deux uniformes sont actifs. Mieux vérifier votre code de réglage uniforme. – derhass