gpt4 book ai didi

java - OpenGL ES : updating uniform

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

所以,这是我的顶点和片段着色器:

#version 120

attribute vec4 a_position;
varying vec4 pos;
uniform float time;

void main() {
float t = time;
gl_Position = a_position;
pos = gl_Position;
}

&

#version 120

#ifdef GL_ES
precision mediump float;
#endif
varying vec4 pos;
uniform float time;

void main() {
gl_FragColor = vec4(pos.y / 2.0 + 1, time / 10.0, 1.0, 1.0);
};

如果我尝试在编译后更改统一的“时间”,它会起作用:

shaderDown.setUniformf("time", World.ticks);

但是如果我尝试在“Update()”方法中调用相同的函数,它会给出“java.lang.NullPointerException”

那么我怎样才能每次都改变这个变量呢?

最佳答案

在每次调用 glDrawArrays() 之前,您必须调用 glUniform() 来更新“时间”。如果这导致空指针异常,您可能需要首先调用 glUseProgram()。

如果“时间”由顶点着色器计算,则应将其更改为变量而不是统一值。

关于java - OpenGL ES : updating uniform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221023/

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