gpt4 book ai didi

iphone - glGetUniformLocation 返回 -1 OpenGL ES (iPhone)

转载 作者:可可西里 更新时间:2023-11-01 04:22:57 30 4
gpt4 key购买 nike

我有一个具有以下属性的片段着色器:

varying highp vec2 coordinate;
precision mediump float;

uniform sampler2D videoframe;
uniform sampler2D videosprite;
uniform vec4 mask;
uniform float threshold;

我正在获取他们的位置并稍后设置它们:

_frame = glGetUniformLocation(_program, "videoframe");
_sprite = glGetUniformLocation(_program, "videosprite");
_mask = glGetUniformLocation(_program, "mask");
_threshold = glGetUniformLocation(_program, "threshold");

NSLog(@"%i %i %i %i", _frame, _sprite, _mask, _threshold);

但是,日志显示:0 2 1 -1

从文档中,我看到 -1(统一阈值)表示它失败了。为什么会失败?谢谢

最佳答案

GLSL 编译器可以(并且通常会)优化掉着色器中未使用的任何制服和属性。您只能查询事件制服的位置,即至少在着色器的一个分支中使用的制服。

所以我猜 threshold 变量没有在您的着色器代码中的任何地方使用。但在这种情况下,无论如何您都不需要它的值,并且为位置 -1 设置统一值将什么都不做。所以您实际上不必担心这一点。

关于iphone - glGetUniformLocation 返回 -1 OpenGL ES (iPhone),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9828118/

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