|
|
这是HDR图,我的书房,实际的情况应该 上下翻转一下
在程序里是这样的
glBindTexture(GL_TEXTURE_RECTANGLE_NV,hdrID);
glBegin(GL_QUADS);
glTexCoord2f(0,0);glVertex2f(0,0);
glTexCoord2f(imageWidth,0);glVertex2f(2,0);
glTexCoord2f(imageWidth,imageHeight);glVertex2f(2,1.504);
glTexCoord2f(0,imageHeight);glVertex2f(0,1.504);
glEnd();
glPopMatrix();
没有问题,严格按照RECTANGLE_NV规定的坐标与照片坐标对齐的方式绘制
在Shader里是这样的
V shader里产生纹理坐标
varying vec2 texCoords
texCoords = gl_MultiTexCoord0.xy;
size是矩形的长宽,我随意的输入了一个,假设是200 133,这样比同照片的长宽比相同
F shader里采样
vec4 color = f4texRECT(fullTexture, texCoords);
vec2 newTexCoords = texCoords / size;
newTexCoords -= 0.5;
color = color * exposure;
gl_FragColor = pow(color, gamma);
我觉得问题可能出在newTexCoords上,因为RECTANGLE是图象象素的个数,需要转换到[0,1]区间里,实在不知道怎么样才能正确的转换 [em17]
谢谢! [em22] [em22] [em22] |
|