您好,我對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