加入旋转
纹理映射与旋转
1. 纹理映射
在 OpenGL 中,可以使用 sampler2D
进行 2D 纹理采样:
1 | uniform sampler2D ourTexture; |
该变量用于在片元着色器中获取 2D 纹理的像素值。
2. 加入纹理过滤与旋转
步骤 1:转换为立方体
- 矩形 -> 立方体:原始矩形的顶点坐标扩展为 24 个顶点,以适应立方体的六个面。
- 每个面使用四个顶点,并绑定对应的纹理坐标。
示例顶点数据(包含位置和纹理坐标):
1 | GLfloat vertices[] = { |
步骤 2:应用纹理过滤
为了提升渲染质量,可以使用 线性过滤:
1 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
这样,在放大或缩小时,纹理会进行平滑过渡,避免像素化。
步骤 3:添加旋转
使用 glm::rotate
在片元着色器中动态旋转:
1 | model = glm::rotate(model, (GLfloat)glfwGetTime() * glm::radians(50.0f), glm::vec3(0.5f, 1.0f, 0.0f)); |
这里
glfwGetTime()
让物体随着时间旋转,旋转轴为(0.5, 1.0, 0.0)
。
这样,我们就成功将纹理映射应用到了立方体,并添加了旋转效果!🚀
评论