Если вы просто хотите увеличить квады, вам нужно изменить код положения вершины.В уроке NeHe, который вы опубликовали, измените эту часть:
// Loop Through The X Plane
for(int x=0; x<45; x++)
{
// Loop Through The Y Plane
for(int y=0; y<45; y++)
{
// Apply The Wave To Our Mesh
points[x][y][0]=float((x/5.0f)-4.5f);
points[x][y][1]=float((y/5.0f)-4.5f);
points[x][y][2]=float(sin((((x/5.0f)*40.0f)/360.0f)*3.141592654*2.0f));
}
}
На это:
// Loop Through The X Plane
float spacing = 0.5f;
float spacingInv = 1.0f/spacing;
float offset = (45 / spacingInv) / 2.0f; // The 45 comes from the number of points (if you change this, change the for loop and the variable creation)
for(int x=0; x<45; x++)
{
// Loop Through The Y Plane
for(int y=0; y<45; y++)
{
// Apply The Wave To Our Mesh
// We change the x/5.0f-4.5f to change the size of the quads
// See text after for more details
points[x][y][0]=float((x/spacingInv)-offset);
points[x][y][1]=float((y/spacingInv)-offset);
points[x][y][2]=float(sin((((x/spacingInv)*40.0f)/360.0f)*3.141592654*2.0f));
}
}
Объяснение: x / 5.0f дает значения 0, 0.2, 0.4, 0.6, 0.8,1.0, ......, 9.0.
Если бы вы взяли только эти значения, у вас теперь была бы смещенная от центра сетка четырехугольников.Теперь, взяв x / 5.0f - 4.5f, вы получите значения -4.5 -4.3, -4.1, ...... 4.1, 4.3, 4.5
Если вы хотите увеличить квады, вам нужно увеличитьрасстояние между точками (то есть измените x / 5.0f на что-то вроде x / 2.0f (что и происходит в приведенном мной примере)).А затем вы хотите перецентрировать (т.е. изменить -4,5f).