C++ opengl 纹理过滤之GL_REPEAT
生活随笔
收集整理的這篇文章主要介紹了
C++ opengl 纹理过滤之GL_REPEAT
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
源碼還是這個(gè)博文里面的
https://blog.csdn.net/qq78442761/article/details/81228557
程序運(yùn)行截圖如下:
repeat猶如字面意思那樣會(huì)重復(fù),當(dāng)幾何紋理坐標(biāo)大于1.0的時(shí)候,他取的紋理坐標(biāo)的值位于紋理坐標(biāo)減去1.0的位置,如紋理坐標(biāo)是1.1的時(shí)候,他取的顏色的值是0.1。所以1.0和2.0一樣,1.1和0.1一樣,所以就會(huì)重復(fù),就向字面意思那樣。
?
修改的源碼如下:
GLuint CreateTexture2D(unsigned char*pixelData, int width, int height, GLenum type) {GLuint texture;glGenTextures(1, &texture);glBindTexture(GL_TEXTURE_2D, texture);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);glTexImage2D(GL_TEXTURE_2D, 0, type, width, height, 0, type, GL_UNSIGNED_BYTE, pixelData);glBindTexture(GL_TEXTURE_2D, 0);return texture; } void Draw() {glClearColor(0.1f, 0.4f, 0.6f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);glEnable(GL_TEXTURE_2D); //開(kāi)啟2D紋理glBindTexture(GL_TEXTURE_2D, texture);//將當(dāng)前紋理設(shè)置為新創(chuàng)建的紋理對(duì)象glBegin(GL_QUADS);glColor4ub(255, 255, 255, 255);glTexCoord2f(0.0f, 0.0f);glVertex3f(-0.1f, -0.1f, -0.4f);glTexCoord2f(2.0f, 0.0f);glVertex3f(0.1f, -0.1f, -0.4f);glTexCoord2f(2.0f, 2.0f);glVertex3f(0.1f, 0.1f, -0.4f);glTexCoord2f(0.0f, 2.0f);glVertex3f(-0.1f, 0.1f, -0.4f);glEnd(); }?
總結(jié)
以上是生活随笔為你收集整理的C++ opengl 纹理过滤之GL_REPEAT的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Qt工作笔记-ui文件连接信号与槽
- 下一篇: C++工作笔记-编译时类型检查与运行时类