3

ある種の照明を実装したいです。そして、頂点シェーダーにライトソースプロパティを含む構造体を作成しています。

struct Light
{
    vec4 color;
    vec4 pos;
    ...
};

私のアプリでは、いくつかの光源が必要です。だから私は置きます:

uniform Light[10];

これらのユニフォームをアプリからロードするにはどうすればよいですか?次のような方法が適切ですか、それとも優れていますか。

uniform vec4 LightColor[10];
uniform vec4 LightPos[10];
...
4

1 に答える 1

3

OpenGLESシェーダーに構造体を渡すことはできないと思います。それを確認しているように見えるこのSOディスカッションを確認してください:

独自の構造体をopengles2.0シェーダーに渡す

vec4ユニフォームの配列に基づいた2番目の提案を使用する方が安全だと思います。

于 2011-10-07T08:26:43.360 に答える