gpt4 book ai didi

glsl pyOpenGL数组传递

转载 作者:行者123 更新时间:2023-12-04 02:20:50 27 4
gpt4 key购买 nike

我目前正在使用 glsl。为此,我需要将一个数组从 opengl 代码传递给 gsls,然后 gsls 从数组中计算出一种新颜色。但不知何故,这对我不起作用。而不是获得整个数组,我总是只停留在第一个条目上。你能帮我说说我做错了什么吗?

import numpy as np
\\...
array = np.array([1.2,2.5,3.8,4.3,5.6, #....])
location = glGetUniformLocation(program,"arrayInShader")
glUniform1fv(location,1,array)

在着色器中:

uniform float arrayInShader[5];
varying vec3 color;
void main()
{
color.r=arrayInShader[0]+arrayInShader[1];
color.g=arrayInShader[2];
color.b=arrayInShader[3]+arrayInShader[4];
}

非常感谢你们!

最佳答案

glUniform*v 的第二个参数是计数。要上传的元素数。你说你只将 1 个 float 加载到数组中,所以 OpenGL 只将一个 float 加载到数组中。

关于glsl pyOpenGL数组传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7075490/

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