最終更新: mikk_ni3_92 2008年12月14日(日) 16:00:09履歴
現在地: メニュー >> 発展編01 >> 発展編01::テクスチャ座標の生成 >> 発展編01::ObjectLinearMapping
テクスチャ座標の自動生成を「GL_OBJECT_LINEAR」と指定した場合、
以下の式でS,T,R,Qの各テクスチャ座標を計算する。
[例]
▲この場合、
つまり、
サンプルコード >> 発展編01::まとめコード4_1
テクスチャ座標の自動生成を「GL_OBJECT_LINEAR」と指定した場合、
以下の式でS,T,R,Qの各テクスチャ座標を計算する。
テクスチャ座標 = a*X + b*Y + c*Z + d*Wここで、
- X,Y,Z,W → オブジェクト座標系
- a,b,c,d → 平面の方程式 ax + by + cz + d = 0 の各係数
[例]
GLfloat xPlane[] = { 1.0f, 0.0f, 0.0f, 0.0f }; //x = 0 GLfloat yPlane[] = { 0.0f, 1.0f, 0.0f, 0.0f }; //y = 0 glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); glTexGenfv(GL_S, GL_OBJECT_PLANE, xPlane); glTexGenfv(GL_T, GL_OBJECT_PLANE, yPlane);
▲この場合、
- S = X;
- T = Y;
つまり、
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); ... ... glRectf(0,0,1,1); ... ... glDisable(GL_TEXTURE_GEN_T); glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_2D);とした場合、四角いポリゴンに2次元画像がぴったりはまる事になる。
サンプルコード >> 発展編01::まとめコード4_1