気まぐれLinux

なんかLinuxとかその他諸々について書くらしい

頂点法線ベクトル

昨日のは白い部分がギザギザになっていてあまり見栄えが良くなかった.光の反射をスムーズに描画するためには頂点法線法線ベクトルを使用するらしい.今回全ての点は4つの四角形に接している(端は無視).だから4つの四角形の法線ベクトルを足しあわせて正規化すればいい.適当だけど.

    glBegin(GL_POLYGON);
    {
      if (!useVertexNormal) {
        auto n = face->normal();
        glNormal3f(n.x(), n.y(), n.z());
      }
      for (int j = 0; j < 4; j++) {
        if (useVertexNormal) {
          auto n = calcVertexNormal(i, j);
          glNormal3f(n.x(), n.y(), n.z());
        }
        glVertex3f(v[j]->x(), v[j]->y(), v[j]->z());
      }
    }
    glEnd();

f:id:yuntan_t:20140922134706p:plain

なめらか