アットウィキロゴ
メモ帳ブログ @ wiki
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

メモ帳ブログ @ wiki

テクスチャ

最終更新:

nina_a

- view
管理者のみ編集可

テクスチャ


テクスチャに名前をつける

 OpenGLではテクスチャに対し、正の整数の名前をつける。名前は勝手につけても良い(?)が重複があるとまずいので、普通、glGenTextures()関数を使う。また、テクスチャ名が使用中かどうかはglIsTexture(GLuint textureName);を使う。
void glGenTextures(GLsizei n, GLuint *textureNames);
n個のテクスチャオブジェクト用の名前をtextureNames配列にセットする。
GLboolean glIsTexture(GLuint textureName);
テクスチャが使用されているかどうか調べる。glGenTextures関数によって予約された名前でも、実際にバインドされていない場合にはGL_FALSEが返される。|

テクスチャを作成(バインド)する

 テクスチャを作成するにはglBindTexture関数を用いる。また、すでに用意されたテクスチャを有効にするにもこの関数を用いる。
void glBindTexture(GLenum target, GLuint textureName);
textureNameを有効にする。
引数targetは、使用するテクスチャの種類により、以下の定数のいずれかを取る。
GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBEMAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBEMAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBEMAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP

テクスチャを指定する

void glTexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* texels);
テクスチャに用いる画像が格納されているアドレスを指定する。各引数の説明については以下の通り。
引数 意味
GLenum target glBindTexturesのtargetと同じ。
GLint level OpenGL/ミップマップのレベル。ミップマップを使用しない場合0。
GLint internalFormat 内部で使用するテクスチャのフォーマットを指定する。
厳密にこれに従うわけではないらしい。
GLsizei width テクスチャの幅。
GLsizei height テクスチャの高さ。
GLint border 境界が有り(1)か無し(0)か。
GLenum format texelsのフォーマット
GLenum type texelsで使用している型
const GLvoid* texels テクスチャへのポインタ

テクスチャのパラメータの指定

 テクスチャのパラメータを指定するにはglTexParameter*関数を用いる。パラメータによって渡す引数の型が異なるため、以下の4種類の関数が用意されている。以下の4つの関数をまとめてglTexParaneter*関数と記述する。
void glTexParameteri(GLenum target, GLenum pname, GLint param);
void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
void glTexParameteriv(GLenum target, GLenum pname, GLint* param);
void glTexParameterfv(GLenum target, GLenum pname, GLfloat* param);

パラメータの種類


パラメータ 説明
GL_TEXTURE_WRAP_S テクスチャ座標系における各軸方向の繰り返し方法指定。
GL_TEXTURE_WRAP_T
GL_TEXTURE_WRAP_R
GL_TEXTURE_MAG_FILTER 拡大・縮小方法の指定。
GL_TEXTURE_MIN_FILTER
GL_TEXTURE_BORDER_COLOR ボーダー色の指定。
GL_TEXTURE_PRIORITY
GL_TEXTURE_MIN_LOD ミップマップの縮小・拡大に利用するスケール係数の最小値と最大値を指定する。
GL_TEXTURE_MAX_LOD
GL_TEXTURE_BASE_LEVEL もっとも解像度の高いミップマップのレベル
GL_TEXTURE_MAX_LEVEL もっとも解像度の低いミップマップのレベル
GL_TEXTURE_LOD_BIAS
GL_DEPTH_TEXTURE_MODE
GL_TEXTURE_COMPARE_MODE 比較方法?
GL_TEXTURE_COMPARE_FUNC 比較関数?
GL_GENERATE_BITMAP

折り返し方法の指定

 GL_TEXTURE_WRAP_*はテクスチャ座標系における各軸方向の折り返し方法を指定する。




カテゴリ:OpenGL





記事メニュー
最近更新されたスレッド
ウィキ募集バナー