您好,我对OpenGL还不太熟悉。
我的任务是在MAC OS X上实现OpenGL中的GDI画笔。因此,我首先使用OpenGL中的纹理来绘制图案,然后需要将其映射到绘图基元(例如多边形(矩形))。我正在创建一个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 x 0.3,整个窗口为500 x 500,则以像素为单位的多边形为150 x 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);
我有一个问题,我创建的垂直点阵(一个texel透明,另一个着色)纹理在映射时没有被适当地映射,某些垂直线比其他线条更宽(一种抗锯齿问题)。这是不是因为我在映射时需要设置纹理坐标?
谢谢回复!
al