您好,我对OpenGL相当陌生。在OpenGL中重复纹理
我的任务是在OpenGL中实现GDI画笔以在MAC OS X上绘图。因此,我转向OpenGL中的纹理以首先绘制图案,然后将其映射到绘制基元,如多边形(矩形a例如)。我创建了一个8x8纹理贴图,然后在500x500像素窗口中将它映射到一个多边形上,坐标如下所示。
glVertex3f(0.35,0.35,0.0);
glVertex3f(0.35,0.65,0.0);
glVertex3f(0.65,0.65,0.0);
glVertex3f(0.65,0.35,0.0);
因为我需要画笔效果,所以图案必须沿矩形重复。矩形/正方形是0.3×0.3和整个窗口为500×500,然后在像素方面所述多边形是150×150。
因此需要重复是150/8
我因此设置了纹理坐标作为如下:
glTexCoord2f(0.0, 0.0); glVertex3f(0.35, 0.35, 0.0);
glTexCoord2f(0.0, 150/8); glVertex3f(0.35, 0.65, 0.0);
glTexCoord2f(150/8, 150/8); glVertex3f(0.65, 0.65, 0.0);
glTexCoord2f(150/8, 0.0); glVertex3f(0.65, 0.35, 0.0);
我具有垂直阴影线(一个纹理像素透明的其它有色)我已经作为纹理创建图案未被适当地映射在这个意义上,一些垂直线变得比其他宽的问题(一种别名问题)。这是否像这样,我必须在映射时设置纹理坐标?
感谢您的任何答复
人
他如何正确对待texcoords?他完全按照你的建议? TexCoord呼叫来自Vertex呼叫。 – Bahbar 2010-10-06 10:02:24
他正在使用150/8而不是8点。虽然关于通话顺序的好点 - 我多年以来都没有使用过即时模式! – Pike65 2010-10-06 10:57:00
感谢Bahbar我刚刚意识到问题所在,并准备发布解决方案。是的,这是问题!不管怎么说,多谢拉 – user461426 2010-10-07 13:15:53