1
我有一個3x9重複節的紋理。我不想存儲紋理所具有的tesselated 1920x1080圖像,我更願意在代碼中生成它,以便在其他分辨率下正確應用它。關於如何做到這一點的任何想法?原有的質感是在這裏:http://img684.imageshack.us/img684/6282/matte1.png如何在OpenGL的GLSL中重複3x9紋理?
我知道,質地是一個非冪的2,所以我要做的着色器內的重複,這是我做的:
uniform sampler2D tex;
varying vec2 texCoord;
void main() {
gl_FragColor = texture2D(tex, mod(texCoord, vec2(3.0, 9.0)) * vec2(0.75, 0.5625));
}
這是我如何畫四:
glBegin(GL_QUADS)
glColor4f(1.0, 1.0, 1.0, 1.0)
glMultiTexCoord2f(GL_TEXTURE1, self.widgetPhysicalRect.topLeft().x(), self.widgetPhysicalRect.topLeft().y())
glVertex2f(-1.0, 1.0)
glMultiTexCoord2f(GL_TEXTURE1, self.widgetPhysicalRect.topRight().x(), self.widgetPhysicalRect.topRight().y())
glVertex2f(1.0, 1.0)
glMultiTexCoord2f(GL_TEXTURE1, self.widgetPhysicalRect.bottomRight().x(), self.widgetPhysicalRect.bottomRight().y())
glVertex2f(1.0, -1.0)
glMultiTexCoord2f(GL_TEXTURE1, self.widgetPhysicalRect.bottomLeft().x(), self.widgetPhysicalRect.bottomLeft().y())
glVertex2f(-1.0, -1.0)
glEnd()
任何想法將不勝感激。
謝謝!