/** * 2D画像のピクセル色配列から、 * 格子メッシュ形式のモデルに色を塗ります。 * * ピクセル色配列は頂点色と対応しますが、 * 現状はポリゴンをベタ塗り(フラットシェーディング)するので、 * 画像右端と下端のラインは使用されません。 * * ピクセル色配列は、左上頂点である事を前提としています。 * * @param model 四角形格子メッシュ形式(QUADRANGLE_GRID)のモデル * @param pixel 2D画像のピクセル色配列[ Y ][ X ][ R/G/B/A ] */ void setModelColorFromPixel(int model, int pixel[ ][ ][ ]){ for(int i=0; i < Y_N-1; i++){ for(int j=0; j < X_N-1; j++){ // モデル内のポリゴンのインデックス int index = i*(X_N-1) + j; // 2D画像内の、ポリゴン位置に対応する座標 int x2d = j; int y2d = Y_N-1-i; //2D画像は左上原点なのでYを反転 // ポリゴンに対応する位置にあるピクセルの色を取得 int polygonColor[4]; polygonColor[0] = pixel[ y2d ][ x2d ][0]; //RED polygonColor[1] = pixel[ y2d ][ x2d ][1]; //GREEN polygonColor[2] = pixel[ y2d ][ x2d ][2]; //BLUE polygonColor[3] = pixel[ y2d ][ x2d ][3]; //ALPHA // ポリゴンの色を設定 setModelPolygonColor(model, index, polygonColor); } } }