选择返回vec4的代码行,该vec4的浮点alpha值已应用于vec3颜色*

时间:2018-07-12 10:34:34

标签: glsl

选择代码行,该代码行返回一个vec4值应用于float alpha的{​​{1}}

vec3 color*

1 个答案:

答案 0 :(得分:1)

在glsl中,向量也可以从其他向量构造。参见Data Type (GLSL) - Vector constructors

如果您有vec3 colorfloat alpha,则可以构造具有4个分量的向量:

vec4 color_rgba = vec4(color, alpha)

如果向量乘以浮点值,则向量的每个分量都将乘以浮点值。参见GLSL Programming/Vector and Matrix Operations

color * alpha 

相同
vec3(color.r * alpha, color.g * alpha, color.b * alpha)

这就是问题的答案

  

选择代码行,该代码行返回一个vec4值应用于float alpha的{​​{1}}

是:

vec3 color

相同
vec4(color * alpha, alpha)

vec4(color.r * alpha, color.g * alpha, color.b * alpha, alpha)

表达式

vec4(color.rgb, 1.0) * alpha

由于格式为vec4(color, color + alpha) vec4(color * alpha, color * alpha) ,因此会出现编译时错误。