我很困惑,在GLSL和glTexImage2D()在OpenGL相关的Texture2D()的内部格式,当我使用(注意third
和eighth
参数):
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA16F_ARB, WINDOW_SIZE, WINDOW_SIZE, 0, GL_RGBA,
GL_FLOAT, floatDataPtr);
我得到了nonclampedvalue
sampler2D在GLSL而不钳位到[0,1]:
vec4 nonclampedvalue = texture2D(my16floattex2d, texcoord1);
当我使用:
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA8, WINDOW_SIZE, WINDOW_SIZE, 0, GL_RGBA,
GL_UNSIGNED_BYTE, byteDataPtr);
我得到了clampedvalue
sampler2D在GLSL钳位至[0,1]:
vec4 clampedvalue = texuture2D(myunsignedbytetex2d, texcoord2);
所以我的问题是这样的:
我会得到什么样的价值在GLSL时调用glTexImage2D这样的(夹紧或不夹紧):
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA8, WINDOW_SIZE, WINDOW_SIZE, 0, GL_RGBA, GL_FLOAT, floatDataPtr);
我会得到什么样的价值在GLSL时调用glTexImage2D这样的(夹紧或不夹紧):
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA16F_ARB, WINDOW_SIZE, WINDOW_SIZE, 0, GL_RGBA, GL_UNSIGNED_BYTE, byteDataPtr);
正如我无法找到在OpenGL官方网站的详细信息,什么样的价值将在sampler2D质地不同的内部格式传递给纹理时调用数据的回归,以及(上面提到的如GL_FLOAT或GL_UNSIGNED_BYTE)不同类型的在glTexImage2D()? 什么是所有的规则?
有谁可以帮忙吗?