gpt4 book ai didi

opengl - LibGdx Shader ("no uniform with name ' u_texture' in shader")

转载 作者:行者123 更新时间:2023-12-02 06:33:03 24 4
gpt4 key购买 nike

着色器编译成功,但程序在渲染开始后立即崩溃...这是我得到的错误:“着色器中没有名称为‘u_texture’的制服”。这是我的着色器的样子:

#ifdef GL_ES
precision mediump float;
#endif

uniform float time;
uniform vec2 mouse;
uniform vec2 resolution;
varying vec2 surfacePosition;


#define MAX_ITER 10
void main( void ) {

vec2 p = surfacePosition*4.0;
vec2 i = p;
float c = 0.0;
float inten = 1.0;

for (int n = 0; n < MAX_ITER; n++) {
float t = time * (1.0 - (1.0 / float(n+1)));
i = p + vec2(
cos(t - i.x) + sin(t + i.y),
sin(t - i.y) + cos(t + i.x)
);
c += 1.0/length(vec2(
p.x / (sin(i.x+t)/inten),
p.y / (cos(i.y+t)/inten)
)
);
}
c /= float(MAX_ITER);

gl_FragColor = vec4(vec3(pow(c,1.5))*vec3(0.99, 0.97, 1.8), 1.0);
}

谁能帮帮我。我不知道我做错了什么。顺便说一句,这是我在互联网上找到的着色器,所以我知道它可以工作,唯一的问题是让它与 libgdx 一起工作。

最佳答案

libGDX 的 SpriteBatch 假定您的着色器将具有 u_texture 统一。要克服只需添加ShaderProgram.pedantic = false; (Javadoc)在将着色器程序放入 SpriteBatch 之前。

更新:关于着色器编译器消失未使用的制服和属性,raveesh 是正确的,但 libGDX 将 OpenGL 着色器包装在自定义 ShaderProgram 中。

关于opengl - LibGdx Shader ("no uniform with name ' u_texture' in shader"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27967788/

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