通过更改顶点坐标和纹理坐标来形成随风飘扬的效果。
主要代码:
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