=追記=
「試作集」の方にまとめたので、以下のリンク先での公開は停止しました。
https://market.android.com/details?id=showohealer.game.prototypes
=前置き=
今日こそはレーザーの描画まで終わらせる。
=深度バッファ=
レーザーを重ねた場合、中央の白い部分が優先的に表示されるようにしたい。普通のα合成だと、中央の白+端の青→薄い青となり、重なった部分が白ではなくなってしまう。そこで、ポリゴン表示であることを利用し、「中央部分は手前に、端部分は奥になるようにポリゴンを曲げる」ことで中央の白い部分を手前に表示することにした。
結論から言えばうまくいかなかった。中央部分はまずまず上手くいったものの、端の表示が欠けたりしておかしかった。原因の調査は時間がかかりそうで、さすがにもう時間はかけたくないのでこの方法は諦めることにした。(一応、RBOでの深度バッファ作成などは試したが)
=スクリーン合成=
ということで、次は「普通のα合成」ではなく「特殊な合成」をすることで白を優先することにした。シェーダが書ければ「お互いの色のORを取る」ことで白を優先できるのだが、AndroidのOpenGLでは難しそう(というか機種が限定される様子)なのでこれは諦めた。
そこで、「白が優先されて、青もそこそこそのまま残るような合成方法」を地道に計算していったところ、「スクリーン合成」という合成方法と同じ計算式になり、対応してみたところ特に問題はなかった。むしろ「重なった青が少し明るくなる」というのがややレーザーっぽく見えて、本来の想定より良いものになったと思う。
=終わり=
これにてようやくレーザーの本描画まで終わった。「レーザーの表示が少し荒い」とか「ボタンをちゃんとしたい」とか「背景の縁をちゃんとしたい」とか色々と詰めたい部分はあるものの、時間がかかりすぎたのでここまでで今回の試作は終わることにする。
=AndroidマーケットにUP=
https://market.android.com/details?id=showohealer.game.actlaser
アップロードの手順には少し慣れたものの、やはりちょっと時間がかかるなー。
=予定=
明日からは次の試作に移る予定。そんなに難しくはないはずなので、1〜2日で終わるはず。