一 一个简单例子
首先做一个简单例子;绘制一个简单的二维纹理图,并将该图像映射到一个四边形上;代码;
#include <stdlib.h>
#include <GL/glut.h>
#define imageWidth 64
#define imageHeight 64
GLubyte image[imageWidth][imageHeight][3];
/*绘制一个简单的二维纹理图*/
void makeImage(void)
{
int i,j,r,g,b;
/*根据点的位置设置不同的颜色*/
for(i = 0;i < imageWidth;i++)
{
for(j = 0;j <imageHeight;j++)
{
r = (i*j)%255;
g = (i*i)%255;
b = (j*j)%255;
image[i][j][0] = (GLubyte)b;
image[i][j][1] = (GLubyte)g;
image[i][j][2] = (GLubyte)r;
}
}
}
void myInit(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
makeImage();
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
/*指定二维纹理映射*/
glTexImage2D(GL_TEXTURE_2D,0,3,imageWidth,imageHeight,0,GL_RGB,GL_UNSIGNED_BYTE,&image[0][0][0]);
/*设置纹理参数*/
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL