阅读背景:

NeHe-OpenGL-Qt5-Lesson11-注释与学习-WavingTextureMap_islinyoubiao的专栏

来源:互联网 

通过更改顶点坐标和纹理坐标来形成随风飘扬的效果。

主要代码:

for(int x = 0; x < 44; x++ )
    {
        for(int y = 0; y < 44; y++ )
        {
            float_x = float(x)/44.0f;
            float_y = float(y)/44.0f;
            float_xb = float(x+1)/44.0f;
            float_yb = float(y+1)/44.0f;
            GLfloat vertexs[] =
            {
                m_points[x][y][0], m_points[x][y][1], m_points[x][y][2],
                m_points[x+1][y][0], m_points[x+1][y][1], m_points[x+1][y][2],
                m_points[x][y+1][0], m_points[x][y+1][1], m_points[x][y+1][2],
                m_points[x+1][y+1][0], m_points[x+1][y+1][1], m_points[x+1][y+1][2]
            };
            GLfloat texCoords[] =
            {
                float_x, float_y,
                float_xb, float_y,
                float_x, float_yb,
                float_xb, float_yb
            };

            m_program->enableAttributeArray(m_posAttr);
            m_program->setAttributeArray(m_posAttr, GL_FLOAT, vertexs, 3);
            m_program->enableAttributeArray(m_texCoordAttr);
            m_program->setAttributeArray(m_texCoordAttr, GL_FLOAT, texCoords, 2);
            glCullFace(GL_BACK);
            glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
            glCullFace(GL_FRONT);
            glDrawArrays(GL_LINE_LOOP, 0, 4);
        }
    }for(int x



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: