GLSL の texture2D() と OpenGL の glTexImage2D() に関連する内部形式と混同しています (third
とeighth
パラメータに注意してください):
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA16F_ARB, WINDOW_SIZE, WINDOW_SIZE, 0, GL_RGBA,
GL_FLOAT, floatDataPtr);
nonclampedvalue
[0、1]にクランプせずにglslでsampler2Dを取得しました:
vec4 nonclampedvalue = texture2D(my16floattex2d, texcoord1);
私が使用する場合:
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA8, WINDOW_SIZE, WINDOW_SIZE, 0, GL_RGBA,
GL_UNSIGNED_BYTE, byteDataPtr);
clampedvalue
[0, 1] にクランプされた glsl の sampler2Dを取得しました。
vec4 clampedvalue = texuture2D(myunsignedbytetex2d, texcoord2);
だから私の質問はこれです:
このようにglTexImage2Dを呼び出すと、glslでどのような値が得られますか(クランプされているか、クランプされていないか):
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA8, WINDOW_SIZE, WINDOW_SIZE, 0, GL_RGBA, GL_FLOAT, floatDataPtr);
このようにglTexImage2Dを呼び出すと、glslでどのような値が得られますか(クランプされているか、クランプされていないか):
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA16F_ARB, WINDOW_SIZE, WINDOW_SIZE, 0, GL_RGBA, GL_UNSIGNED_BYTE, byteDataPtr);
OpenGLの公式サイトに詳しい情報が載っていないので、呼び出し時にテクスチャに渡されるデータの内部フォーマットや型(上記のGL_FLOATやGL_UNSIGNED_BYTEなど)が異なる場合、sampler2Dテクスチャでどのような値が返されるのかglTexImage2D()? すべてのルールは何ですか?
誰でも助けることができますか?