« テクスチャマッピング アルゴリズム 毎ライン交差判定 | メイン | 2D テクスチャマッピング アルゴリズムについて »

2008年02月21日

基本テクニック:: テクスチャマッピング アルゴリズム 辺沿いに描画

    

ポリゴンの頂点を右、もしくは左回りに格納して、その格納順から辺の位置を求め描画する方法がある。
以下の図のようなポリゴンがあったとする。

20080221_tex_map_side.png

まず最初に全頂点の中で一番上の頂点を探す ( この図では 0 番 ) 。
次に頂点が右回りに格納されているとしたら、頂点番号を -1 した頂点が左方向になる。
図では、-1 になるが、頂点数は 2 なので、if( vtx < 0 ) vtx = 2; という具合にして、循環するようにする。
そして、この辺で Y 軸値が 1 変化した時、X 座標値や UV 座標値がいくら変化するかを求める。
次に、頂点番号を +1 した頂点が右方向になる。
この辺も同様に Y 軸値の変化量と X 座標値、 UV 座標値 の変化量の関係を求める。

こことまできたら後は、Y 軸値を上から下へ変化させながら、左右の辺の X 座標値と UV 座標値を求めていく。
求まった、X 座標値と UV 座標値を使って、そのスキャンラインを X 座標値が小さい方から描画していく。
この時右か左は既にわかっているので、左右の判定の必要はない。
そして、現在のスキャンラインがどちらかの辺の下端に達したら、辺を変える。
左辺なら -1、右辺なら +1 すればいい。
辺が変わったら、再び Y 軸値の変化量と X 座標値、 UV 座標値 の変化量の関係を求める。
このようにしてスキャンラインが一番下の頂点まで達したらポリゴンが描画できている。

辺が初めから右か左かわかっていること、途中の X 座標値と UV 座標値は加算によって求められていることから、この方法ではかなり高速に処理できる。


関連記事・続きの記事

2D テクスチャマッピング アルゴリズムについて
テクスチャマッピング アルゴリズムについていくつか書いた。 テクスチャマッピング... [続きを読む]


投稿者 Takenori : 2008年02月21日 20:41




comments powered by Disqus
Total : Today : Yesterday : なかのひと