新手请教opengl中二维纹理映射
Yond 2008-05-20 09:42:09 我在做毕业设计,我现在有了一张二维人脸三角形网格图(只是一些点和线连成的网格),我现在要给它贴上纹理,采用的方法是直接载入一张位图,然后通过位图作为纹理对每一个三角形贴上纹理,我想问的是怎么样进行纹理映射,第一次接触opengl不是很懂,请高手帮忙。
void CErweirenlianView::tiewenli()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity(); glTranslatef(0.0f,0.0f,-3.0f);
WenLiInit();
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture[0]);
glBegin(GL_TRIANGLES);
for(int i=0;i<58;i++) //58个三角形
for(int j=0;j<3;j++) //3个顶点
{
glTexCoord2f((p[erwei_list[i][j]-1][0]+1)/2,(p[erwei_list[i][j]-1][1]+1)/2);
glVertex2f(p[erwei_list[i][j]-1][0],p[erwei_list[i][j]-1][1]);
}
glEnd();
}
LoadGLTexture()等省略了,是搬过来的 ,没有错
上面的三角形贴纹理的P数组保存的是(-1,1)的三角形顶点坐标,erwei_list保存的是每个三角形的3个顶点,2个数组都是2维数组,一共有34个顶点,58个面,不知道怎么就是贴不上纹理。。。估计是映射方式错了,希望高手帮我改正下。。。写出代码最好,有的话发邮箱daixiaoli_1986@163.com 在此谢过了。。。