私は2つの画像を持っています.ここの指示の助けを借りて: http://en.wikibooks.org/wiki/OpenGL_Programming/Intermediate/Textures
それらを 2 つの別々のテクスチャに別々に保存し、ビデオ メモリにアップロードすることができました。
gluBuild2DMipmaps(GL_TEXTURE_2D, 4, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
では、シェーダーを使用してこれらのテクスチャにアクセスし、これら 2 つのテクスチャを乗算するにはどうすればよいでしょうか?
たとえば、シェーダーを使用した乗算に関するこの例を見つけました: http://www.opengl.org/wiki/Texture_Combiners
//Vertex shader
#version 110
attribute vec4 InVertex;
attribute vec2 InTexCoord0;
attribute vec2 InTexCoord1;
uniform mat4 ProjectionModelviewMatrix;
varying vec2 TexCoord0;
varying vec2 TexCoord1; //Or just use TexCoord0
//------------------------
void main()
{
gl_Position = ProjectionModelviewMatrix * InVertex;
TexCoord0 = InTexCoord0;
TexCoord1 = InTexCoord1;
}
//------------------------
//Fragment shader
#version 110
uniform sampler2D Texture0;
uniform sampler2D Texture1;
//------------------------
varying vec2 TexCoord0;
varying vec2 TexCoord1; //Or just use TexCoord0
//------------------------
void main()
{
vec4 texel = texture2D(Texture0, TexCoord0);
texel *= texture2D(Texture1, TexCoord1);
gl_FragColor = texel;
}
しかし、このフラグメント シェーダーを使用してこの乗算を実行できるように、アップロードしたテクスチャを Vertex の形式で作成するにはどうすればよいでしょうか。
gluBuild2DMipmap を生成しただけですが、Vertex/Fragment シェーダーをテクスチャに適用する方法がわかりません。