最終更新: mikk_ni3_92 2008年07月31日(木) 09:48:19履歴
現在地 >> メニュー >> 基本編06 >> 複数の画像を読み込む
「複数の画像」を読み込んで、「テクスチャ」とするには、
-- [ 例 ] --
void LoadAndConvert()
{
int l; //カウンタ用
// 「画像3枚分」の変数
IplImage* img[3];
//画像をロード
img[0]= cvLoadImage( filename1 );
img[1]= cvLoadImage( filename2 );
img[2]= cvLoadImage( filename3 );
...[BGR → RBG への入れ替えなど] ...
//テクスチャにコンバートしていく部分
glGenTextures(3, &texture[0]); //「3枚分」で texture[0] から格納されている。(とOpenGLに伝える)
//for ループで3回繰り返す
for(l =0; l < 3; l++)
{
glBindTexture(GL_TEXTURE_2D, texture[l]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, img[l]->width,img[l]->height,
GL_RGB,GL_UNSIGNED_BYTE, img[l]->imageData);
cvReleaseImage(&img[l]);
}
}
「複数の画像」を読み込んで、「テクスチャ」とするには、
「複数回のロード」と「複数回のコンバート」をすればよい。
-- [ 例 ] --
- 簡略化のため、「OpenCV」を用いて、「3枚の画像」を読み込んでいる。
void LoadAndConvert()
{
int l; //カウンタ用
// 「画像3枚分」の変数
IplImage* img[3];
//画像をロード
img[0]= cvLoadImage( filename1 );
img[1]= cvLoadImage( filename2 );
img[2]= cvLoadImage( filename3 );
...[BGR → RBG への入れ替えなど] ...
//テクスチャにコンバートしていく部分
glGenTextures(3, &texture[0]); //「3枚分」で texture[0] から格納されている。(とOpenGLに伝える)
//for ループで3回繰り返す
for(l =0; l < 3; l++)
{
glBindTexture(GL_TEXTURE_2D, texture[l]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, img[l]->width,img[l]->height,
GL_RGB,GL_UNSIGNED_BYTE, img[l]->imageData);
cvReleaseImage(&img[l]);
}
}