Androidアプリ開発 OpenGL アルファブレンド 合成方法 [Android OpenGL]
アルファブレンドは「わかりにくい」のではあるが、いろいろな効果を出すことができる。glBlendFuncで指定する引数の組み合わせで、ブレンド方法を変化させることができる。理解を深めるため、以下の3パターンでブレンドさせてみることにした。
blendModeはクラスのフィールドで、ロングタップすると切り替わるようにした。これで、キャプチャしたのが、以下の動画である。
最初のブレンド方法は、GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
このブレンド方法はいたって普通の合成となる。
ドロイド君の画像は、アルファ値が0か1のどちらかしかないようである(半透明な部分がない)。半透明な部分がある画像でやったらもっと面白かったかも知れない。
次のブレンド方法は、GL_SRC_ALPHA, GL_ONE
この方法だと、重なっている部分が白く発光した感じになる。
最後のブレンド方法は、GL_SRC_ALPHA, GL_SRC_COLOR
この方法だと、透けている感じになるものの、アルファ値が0の部分は透けない。発光した感じにはならない。
うーん、GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA以外の使い道ってあるのか...
GL_SRC_ALPHA, GL_ONEは、発光させたいときに使うらしいが...
やっぱり難しい。
サイト内を検索
if ( blendMode == 0 ){ gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); } else if ( blendMode == 1 ){ gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE); } else if ( blendMode == 2 ){ gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_SRC_COLOR); }
blendModeはクラスのフィールドで、ロングタップすると切り替わるようにした。これで、キャプチャしたのが、以下の動画である。
最初のブレンド方法は、GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
このブレンド方法はいたって普通の合成となる。
ドロイド君の画像は、アルファ値が0か1のどちらかしかないようである(半透明な部分がない)。半透明な部分がある画像でやったらもっと面白かったかも知れない。
次のブレンド方法は、GL_SRC_ALPHA, GL_ONE
この方法だと、重なっている部分が白く発光した感じになる。
最後のブレンド方法は、GL_SRC_ALPHA, GL_SRC_COLOR
この方法だと、透けている感じになるものの、アルファ値が0の部分は透けない。発光した感じにはならない。
うーん、GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA以外の使い道ってあるのか...
GL_SRC_ALPHA, GL_ONEは、発光させたいときに使うらしいが...
やっぱり難しい。
サイト内を検索
2012-04-13 10:49
nice!(1)
コメント(0)
Copyright Atsushi Asai Google+朝井淳
[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)
- 作者: 朝井 淳
- 出版社/メーカー: 技術評論社
- 発売日: 2015/03/03
- メディア: 単行本(ソフトカバー)
Access クエリ 徹底活用ガイド ~仕事の現場で即使える
- 作者: 朝井 淳
- 出版社/メーカー: 技術評論社
- 発売日: 2018/05/25
- メディア: 大型本
コメント 0