OpenGLにおける画像明度の設定

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
bonbo

OpenGLにおける画像明度の設定

#1

投稿記事 by bonbo » 4年前

お世話になっております。
OpenGLについて、下記のようなコードで画像の表示を行おうと思ったとき
頂点色rgbaを0~255間(もしくは0~1.0)で変化させるだけでは画像の明るさを表しきれないので(画像を白っぽくしたい)、ここに明度の設定を追加しようと考えています。
現在、

コード:

    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, nowimage);

    glVertexPointer(2, GL_FLOAT, 0, vertexpoints);// 頂点の位置を設定
    glEnableClientState(GL_VERTEX_ARRAY);
    glTexCoordPointer(2, GL_FLOAT, 0, texcoords);// 画像の使用範囲を設定
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glColorPointer(4, GL_UNSIGNED_BYTE, 0, vertexcolors);// 頂点色を設定
    glEnableClientState(GL_COLOR_ARRAY);

    glDrawArrays( GL_TRIANGLES, 0, 6*g_perticlecount);// 6つの頂点をg_perticlecount分だけ描画
となっているのですがここに以下のコード

コード:

/*ここからは憶測*/
    glColorPointer(4, GL_FLOAT, 0, vertexluminance);// 同じように頂点輝度も設定できる?
    glEnableClientState(GL_LUMINANCE_ALPHA); 
を書き加えて
↓のようにしたいと考えています。

コード:

    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, nowimage);

    glVertexPointer(2, GL_FLOAT, 0, vertexpoints);// 頂点の位置を設定
    glEnableClientState(GL_VERTEX_ARRAY);
    glTexCoordPointer(2, GL_FLOAT, 0, texcoords);// 画像の使用範囲を設定
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glColorPointer(4, GL_UNSIGNED_BYTE, 0, vertexcolors);// 頂点色を設定(下記明度の設定を加えると上書きされるようで今回この部分に意味はない)
    glEnableClientState(GL_COLOR_ARRAY);
/*明度設定の憶測*/
    glColorPointer(4, GL_FLOAT, 0, vertexluminance);// 同じように頂点輝度も設定できる?(vertexluminanceの値は全て1.0f)
    glEnableClientState(GL_LUMINANCE_ALPHA); 

    glDrawArrays( GL_TRIANGLES, 0, 6*g_perticlecount);// 6つの頂点をg_perticlecount分だけ描画
このまま描画しても、画像を原色より明るくすることはできませんでした。
以上になりますが、問題点がありましたら助言をいただけると助かります。
それでは乱文にて恐縮ですが宜しくお願いいたします。

“C言語何でも質問掲示板” へ戻る