3

すべてのレンダリングを「古い」openglからglslに移植しようとしています。

今は異なるテクスチャのメッシュがあるので、「古い」glではbindTextureを使用してテクスチャを変更しました。私はまだこれを行う必要があると思いますが、私のすべてが最初のテクスチャのみでレンダリングされているように見えるため、何かが欠けています。

uniform sampler2D tex;
void main() {
    gl_FragColor = tex2D(tex, gl_TexCoord[0].st);
}

「tex」は、次のようにglslに付けたテクスチャの名前です。

int loc = glGetUniformLocationARB(id, "tex");
glUniform1iARB(loc, 0);

注:マルチテクスチャについては話していません!:-)

4

2 に答える 2

6

テクスチャユニット0をsampler2Dにバインドしましたが、テクスチャもテクスチャユニットにバインドする必要があります。だから、それは単にglBindTexture電話になるでしょう。

于 2009-11-22T21:56:01.880 に答える
5

どのサンプラーにもどのテクスチャユニットを使用するかをGLSLに指示する方法と混同していました。私は自分の問題を何時間も検索しましたが、このトピックがそこにあるすべての文献であまりよく説明されていないと思うので、それを解決できませんでした。

ここに貴重な説明があります:(「GLSLでのテクスチャの使用」の部分を参照してください) http://nehe.gamedev.net/data/articles/article.asp?article=21

多分これは誰かを助けます!

于 2009-11-24T14:57:10.817 に答える