我在OpenGL平台上绘制了一个参数曲面,现在要在它上面贴上纹理,纹理的来源是一个bmp图。1024*1024的。
我想问的是:对于这张bmp图片上一个文理坐标为(s,t)的点,它在图片上的颜色信息用程序语言是怎样得到的?
我对位图概念很不清楚,它的信息应该是放在一个数组里的吧,那么就是说只有整格点的(s,t)才有确定的颜色?文理坐标(s,t)不是整格点的怎么办?
下面是我已经读取位图的代码。
void renderview(void)//读取背景纹理
{
int i,j;
FILE *fp;
unsigned char *image;
int rc;
fp=fopen("5.bmp","rb");
if(!fp)std::cout<<"Cannot read background!"<<endl;
fseek(fp,54,SEEK_SET);
image=(unsigned char*)malloc(LENGTH*WIDTH*3);
rc=fread(image,sizeof(unsigned char),LENGTH*WIDTH*3,fp);
fclose(fp);
for(i=0;i<LENGTH;i++)
{
for(j=0;j<WIDTH;j++)
{
texImg[i][j][2]=(GLubyte)*(image+i*WIDTH*3+j*3);
texImg[i][j][1]=(GLubyte)*(image+i*WIDTH*3+j*3+1);
texImg[i][j][0]=(GLubyte)*(image+i*WIDTH*3+j*3+2);
}
}
}