2014-01-20 3 views
0

Вообще в OPENGL шейдераGLSL (OpenGL Shader) различная пользовательская интерполяция?

varying vColor 
void main() { 
    gl_FragColor = vColor; 
} 

Тогда результат является

Но что я хочу, чтобы это

Вопрос заключается в том, могу ли я использовать мои пользовательские интерполяции, чтобы получить это?

ответ

3

Несомненно, вы можете. Передача атрибута float, указывающего позицию в вашей собственной интерполяции, или использование переменной переменной float для нее.

varying float t; 
void main() { 
    t = clamp(t * 4.0, 0.0, 1.0); 
    gl_FragColor = mix(vec4(1.0, 0.0, 0.0, 1.0), vec4(0.0, 0.0, 1.0, 1.0), t); 
} 
Смежные вопросы