gpt4 book ai didi

opengl - alpha 不使用 glsl 着色器改变对象的透明度

转载 作者:行者123 更新时间:2023-12-04 03:11:11 25 4
gpt4 key购买 nike

当我手动更改数组中的 alpha 值时,如何传递给着色器,结果是相同的 0.0f1.0f ?

我期望根据 alpha 值绘制具有一定透明度的对象。

我没有使用任何纹理。我总是在黑色背景下看到我的红色物体。

访问 glsl来自 java 的变量..

float[] color = {1.0f, 0.0f, 0.0f, 1.0f};

gl2.glGetUniformLocation(shaderProgram, "vColor");
gl2.glUniform4fv(mColorHandle, 1, color, 0);
glsl ,片段着色器..
#version 120

uniform vec4 vColor;

void main() {
gl_FragColor = vColor;
gl_FragColor.a = 0.0; // does not make object transparent
// gl_FragColor.a = 1.0; // does not make object transparent
}

最佳答案

需要启用混合..

gl2.glEnable(GL.GL_BLEND);
gl2.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);

关于opengl - alpha 不使用 glsl 着色器改变对象的透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30157901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com