opengl 将漫反射颜色定义为数组

9jyewag0  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(105)

# version 450

# extension GL_ARB_separate_shader_objects : enable

layout(location = 0) in vec3 vertNormal;
layout(location = 1) in vec3 eyeDir;
layout(location = 2) in vec3 lightDir[2];

layout(location = 0) out vec4 fragColor;

void main() {
    vec4 ks = vec4(0.3 , 0.3 , 0.3 , 0.0);
    vec4 kd = vec4(0.4 , 0.0 , 0.0 , 0.0);
    vec4 kd2 = vec4(0.0 , 0.0 , 0.4 , 0.0);
    vec4 ka= 0.1 * kd;
    float diff = max(dot(lightDir[0] , vertNormal) , 0.0);
    float diff2 = max(dot(lightDir[1] , vertNormal) , 0.0);
    vec3 reflection = reflect(-lightDir[0] , vertNormal);
    vec3 reflection2 = reflect(-lightDir[1] , vertNormal);
    float spec = max(dot(eyeDir , reflection), 0.0);
    float spec2 = max(dot(eyeDir , reflection2), 0.0);
    spec = pow(spec , 14.0);
    spec2 = pow(spec , 14.0);
    fragColor = ka + (kd * diff) + (kd2 * diff2) + (ks * spec) + (ks * spec2);
}

大家好,我想知道,我怎样才能把一个漫反射颜色(浮点diff,diff2)做成一个数组,这样我以后就可以循环使用它了。我是一个初学者,所以我认为答案很简单,我会很感激任何帮助。非常感谢。

nwlqm0z1

nwlqm0z11#

您可以建立如下的数组。
浮点数a[2] =浮点数[2](差异,差异2);

相关问题