現在地: メニュー >> 発展編01 >> 発展編01::テクスチャcombine

テクスチャcombine


テクスチャCombineの機能を使うと、ポリゴンにテクスチャを張る時、
下地の色を置き換える、などよりも更に細かい色の設定ができる。
(例えば、下地の各対応ピクセル値との和、差をとる事ができる)

使い方

  1. glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,GL_COMBINE)と指定し、
  2. どんな処理にするかを指定する。

処理の指定


処理の指定も「glTexEnvi()関数」を使う。

glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB or GL_COMBINE_ALPHA, 処理方法の指定);

処理の仕方は以下の通り
トークン処理内容
GL_REPLACEArg0の色で置き換え
GL_MODULATEArg0 * Arg1
GL_ADDArg0 + Arg1
GL_ADD_SIGNEDArg0 + Arg1 - 0.5
GL_INTERPOLATE(Arg0*Arg2)+(Arg1 * (1-Arg2) )
GL_SUBTRACTArg0 - Arg1
GL_DOT3_RGB/GL_DOT3_RGBA4*( (Arg0-0.5)・(Arg1-0.5) ) ※「・」は内積。各要素0.5引いたものの内積

※Arg0,Arg1,Arg2について

Arg0,Arg1,Arg2については、どの色がArg0〜Arg1に対応するかを設定する必要がある。
これも同様に、「glTexEnvi()関数」を使う。
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCEx_RGB or GL_SOURCEx_ALPHA , Argxとの関連付けるもの);
※xは「0」、「1」、「2」のどれか

Argxと関連付けるものは以下の通り。
トークン内容
GL_TEXTURE現在アクティブなテクスチャユニット
GL_TEXTURExx番目のテクスチャユニット
GL_CONSTANT「GL_TEXTURE_ENV_COLOR」で設定した値
GL_PRIMARY_COLOR下地(ポリゴン)の色
GL_PREVIOUS前のテクスチャユニットのテクスチャ環境で設定した値

【例】
        //Combine用にArg0,Arg1に対応付け
	glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PRIMARY_COLOR);//ポリゴンの色がArg0
	glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE0);//テクスチャユニット0の色がArg1

	glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);//combine
       glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE);//Arg0(ポリゴンの色)で置き換え


サンプルコード

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます