3

私は現在 glsl で遊んでいます。そのためには、opengl コードから 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];
}

どうもありがとう!

4

1 に答える 1

6

の2番目のパラメータglUniform*vカウントです。アップロードする要素の数。配列にロードするフロートは1つだけなので、OpenGLは配列にフロートを1つだけロードするとします。

于 2011-08-16T08:46:31.313 に答える