2011-10-18 1 views
0

私は小さな正方形で塗りつぶされた平面をどのように設定できるかわかりません(より良い照明効果が得られるように)。OpenGLでネストされたループを使用して、小さな正方形のリストを平面に塗りつぶすにはどうすればいいですか?

単一の正方形を描画するための私のコードは次のとおりです。だから今、私は小さな正方形の数で表面を埋めるために、ネストされたループを実行する方法

void drawSquare(float x1, float y1, float x2, float y2) { 
    glBegin(GL_QUADS); 
     glVertex3f(x1, y1, 0.0f); // The bottom left corner 
     glVertex3f(x1, y2, 0.0f); // The top left corner 
     glVertex3f(x2, y2, 0.0f); // The top right corner 
     glVertex3f(x2, y1, 0.0f); // The bottom right corner  
    glEnd(); 
} 

?小さな四角形の座標については少し不明です。

答えて

2

正方形のサイズを計算し、それをより小さな部分に分割します。このようなもの(未テスト):

void drawSquare(float x1, float y1, float x2, float y2, int xtiles, int ytiles) { 
    float tile_width = (x2 - x1)/xtiles; 
    float tile_height = (y2 - y1)/ytiles; 
    int x, y; 
    glBegin(GL_QUADS); 
     for (y = 0; y < ytiles; y++) { 
      for (x = 0; x < xtiles; x++) { 
       glVertex3f(x1 + x * tile_width, y1 + y * tile_height, 0.0f); // The bottom left corner 
       glVertex3f(x1 + x * tile_width, y1 + (y + 1) * tile_height, 0.0f); // The top left corner 
       glVertex3f(x1 + (x + 1) * tile_width, y1 + (y + 1) * tile_height, 0.0f); // The top right corner 
       glVertex3f(x1 + (x + 1) * tile_width, y1 + y * tile_height, 0.0f); // The bottom right corner  
      } 
     } 
    glEnd(); 
} 
+0

xtileとytileとは何ですか? – antiopengl

+0

x軸とy軸に沿った細分化の数。つまり、 'xtiles'を4に、' ytiles'を8に設定すると32個の正方形が得られます。 – user786653

関連する問題