Java GLSL一致性行为

Java GLSL一致性行为,java,opengl,glsl,lwjgl,Java,Opengl,Glsl,Lwjgl,因此,为了开始我对着色器的初始化,我决定创建一个简单的 程序,其中渲染纹理(加载了平滑纹理)随着按键逐渐变暗。一切都按预期进行,但我似乎无法正确理解制服以及它们如何与着色器交互 这是我的简单顶点着色器: varying vec2 vTexCoord; void main() { vTexCoord = gl_MultiTexCoord0.xy; gl_Position = ftransform(); } uniform sampler2D myTexture; uniform


因此,为了开始我对着色器的初始化,我决定创建一个简单的 程序,其中渲染纹理(加载了平滑纹理)随着按键逐渐变暗。一切都按预期进行,但我似乎无法正确理解制服以及它们如何与着色器交互
这是我的简单顶点着色器:

varying vec2 vTexCoord;

void main()
{
    vTexCoord = gl_MultiTexCoord0.xy;
    gl_Position = ftransform();
}
uniform sampler2D myTexture;
uniform vec3 darknessParam;
varying vec2 vTexCoord;

void main()
{
    gl_FragColor = texture2D(myTexture, vTexCoord).rgba *  vec4(darknessParam, 1);
}
片段着色器:

varying vec2 vTexCoord;

void main()
{
    vTexCoord = gl_MultiTexCoord0.xy;
    gl_Position = ftransform();
}
uniform sampler2D myTexture;
uniform vec3 darknessParam;
varying vec2 vTexCoord;

void main()
{
    gl_FragColor = texture2D(myTexture, vTexCoord).rgba *  vec4(darknessParam, 1);
}
因此程序按预期执行,但尽管我通常设置了uniform
darknessParam
,但我没有设置uniform
sampler2D
,也没有在主java lwjgl程序中引用它。那么,片段着色器如何使用统一的
sampler2D
,而无需我将其设置在任何位置
提前谢谢,我为这篇冗长的帖子道歉。

祝你今天愉快

首先
sampler2D
是一种不统一的类型,因此我对问题a的解释如下:

我没有将
myTexture
设置为任何值,为什么它仍然有效

要访问具有采样器对象的着色器中的纹理,必须将纹理单元的编号传递给均匀对象。请参见此处的示例:

假设现在使用的是纹理单元0,则不需要设置制服,因为所有制服都已初始化为0

链接操作成功后,所有活动的用户定义 属于程序的统一变量将初始化为0


首先
sampler2D
是一种不统一的类型,因此我对问题a的解释如下:

我没有将
myTexture
设置为任何值,为什么它仍然有效

要访问具有采样器对象的着色器中的纹理,必须将纹理单元的编号传递给均匀对象。请参见此处的示例:

假设现在使用的是纹理单元0,则不需要设置制服,因为所有制服都已初始化为0

链接操作成功后,所有活动的用户定义 属于程序的统一变量将初始化为0


首先
sampler2D
是一种不统一的类型,因此我对问题a的解释如下:

我没有将
myTexture
设置为任何值,为什么它仍然有效

要访问具有采样器对象的着色器中的纹理,必须将纹理单元的编号传递给均匀对象。请参见此处的示例:

假设现在使用的是纹理单元0,则不需要设置制服,因为所有制服都已初始化为0

链接操作成功后,所有活动的用户定义 属于程序的统一变量将初始化为0


首先
sampler2D
是一种不统一的类型,因此我对问题a的解释如下:

我没有将
myTexture
设置为任何值,为什么它仍然有效

要访问具有采样器对象的着色器中的纹理,必须将纹理单元的编号传递给均匀对象。请参见此处的示例:

假设现在使用的是纹理单元0,则不需要设置制服,因为所有制服都已初始化为0

链接操作成功后,所有活动的用户定义 属于程序的统一变量将初始化为0


可能的重复,可能的重复你是对的。我投票决定了它的关闭,也可能是它的复制品,可能是复制品,你是对的。我投票决定了它的关闭,也可能是它的复制品,可能是复制品,你是对的。我投票决定了它的关闭,也可能是它的复制品,可能是复制品,你是对的。我也投票决定结束