Извините за плохой титул, но я ничего не мог придумать.GLSL нет цвета при использовании двух входных переменных, умноженных
У меня есть следующий фрагмент кода шейдера:
#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);
}
Однако, я не могу за жизнь мне удается совмещать переменное время и любой элемент координат. Он просто становится черным. То есть time * coords [1] никогда не производит никакого цвета, хотя координаты [1] всегда равны 1.0f, и время быстро становится большим.
Редактировать: При загрузке шейдера ошибок не возникает.
Помните, что время, скорее всего, будет больше, чем 1.0f! Но я сомневаюсь, что это не проблема. Вы только спрашиваете о «мерах времени» [1] «здесь, правильно? – fordcars
Что подозрительно, так это то, что неработающий корпус является единственным, в котором действуют обе формы. Лучше дважды проверьте свой единый код настройки. – derhass