新手请教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 在此谢过了。。。
...全文
313 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
norrrrmad 2010-03-14
  • 打赏
  • 举报
回复
我也碰到相同的问题,请问楼主搞清楚没,可否交流一下啊
liuchacha 2008-11-19
  • 打赏
  • 举报
回复
同意楼上
Cyrosly 2008-11-05
  • 打赏
  • 举报
回复
反对,glGenTextures并不是必须的,只要glBindTexture绑定的第2个参数是未使用的有效uint类型,就可以.glGenTextures只是为避免误用一个正在使用的id而推荐的.
而且这只是一段代码,说不定LZ在前面构造纹理时使用了呢.这不是什么问题.
你这个用顶点数组更容易,但这个数据量恐怕不会有性能优势.
检查一下你的绘制代码的数据引用.也不一定是这里的错误
zxr2003520 2008-10-17
  • 打赏
  • 举报
回复
你好,你的问题解决的怎样啊?我也有很多关于纹理映射的问题?
wu_chen 2008-06-17
  • 打赏
  • 举报
回复
同意1楼的2.程序中缺少了glGenTexture()这个函数。
还有可能 过滤属性没设置;
另外
纹理坐标最好影射到(0,1);
wujinjie746 2008-06-15
  • 打赏
  • 举报
回复
看了你的代码,结合我的经验说几点
1.程序中不是对每个顶点和三角形进行纹理映射。
2.程序中缺少了glGenTexture()这个函数。
3.程序中没有把图像读进来。
具体如何操作我记不清了。但是网上这方面的代码很多,你自己上网搜索。

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧