Bishamon Personal コミュニティ

Bishamon Personal コミュニティ 掲示板(仮運営中)です。

Bishamon Personal コミュニティ » Android » エフェクト再生前後に画面出力がクリアされているように見える件につきまして

エフェクト再生前後に画面出力がクリアされているように見える件につきまして

Post Reply

Page: 1

Author Post
Member
Registered: Sep 2013
Posts: 12
お世話になっております。

Android の GLSurfaceView にてGLES 1.0を使用してエフェクトの再生を行っております。

現在の実装ではSDK付属サンプル同様に、Renderer#onDrawFrame()にて
デプステストの有効と、デプスバッファのクリアを行っています。

@Override
public void onDrawFrame(GL10 gl) {

gl.glEnable(GL10.GL_DEPTH_TEST);
gl.glDepthMask(true);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);

(初期化後の処理…)

このようにしまして、特定エフェクトファイルを再生すると
エフェクト再生の前後辺りで画面全体が黒く表示されます。(→しばらくすると元の画面描画に戻る)
画面全体が黒く表示される部分は、glClearColorを指定するとその色になりますので
おそらくカラーバッファのクリア(GL_COLOR_BUFFER_BIT)が影響していると思われるのですが、
glClearColorにてalpha値を指定しても透明度は変わらないまま表示されてしまいます。

gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);


また、本事象はすべてのエフェクトで発生するものではなく
一部は問題なく再生出来ているように見えますので、どのようなアプローチをとれば良いか悩んでおります。

Bishamon SDKが直接の原因ではないかもしれませんが、エフェクトファイルの類によってこのようなことが発生し得るかどうかなど、
その他OpenGL実装観点から考えられることがありましたら、アドバイス等いただけると幸いでございます。

以上になります。よろしくお願いいたします。
Administrator
Registered: Oct 2011
Posts: 206
Location: Tokyo
お世話になっております。

ご報告の現象は、もしかしますと下記スレッドでの報告と同じものである可能性があります。

http://www.matchlock.co.jp/bbs/topic.php?id=19
http://www.matchlock.co.jp/bbs/topic.php?id=1163

こちら固定機能パイプラインを利用する場合の問題と同じの場合、
上記スレッドでの対応にて解決するものと思われます。
こちら試して頂いても宜しいでしょうか。
(上記スレッドの対応は次回バージョンアップにてライブラリに組み込む予定です)

こちらでも改善されない場合は、別原因と思われます。
この場合、もう少し詳しい状況をご報告頂けますと助かります。
Member
Registered: Sep 2013
Posts: 12
お忙しい中、ご返信いただきありがとうございます。

シェーダのオフについてはシェーダを利用していないため
具体的な方法がわからなかったのですが、エフェクト描画後に
Manager.resetVertexBuffer()を呼び出してみたりブレンドなどの設定をしなおしてみましたが、結果は変わらずだめでした。

一旦、ご報告です。
Administrator
Registered: Oct 2011
Posts: 206
Location: Tokyo
どうやら別原因のようですね。

再生すると問題が発生するエフェクトはどのような機能を利用しておりますでしょうか?
原因となる機能が特定できますと幸いです。
Member
Registered: Sep 2013
Posts: 12
返信遅くなりました。

該当のエフェクトは加算合成を用いたエフェクトだと思われます。
再生後に画面がクリアされてしまう件は、エフェクトがexpiredしていてもdrawEffect()している場合に発生しているような気がしましたので、
再生時間を調整など(expiredする前に描画を打ち切る)したりして試行錯誤しております。
再生直前にクリアされてしまうパターンもありまして、これについては未だ解決の糸口を掴めておりません。
Administrator
Registered: Oct 2011
Posts: 206
Location: Tokyo
情報を頂き有難うございます。

他の事例も検証tしましたが、同じような事例がありませんでした。
フェードイン、アウトで利用する前面のポリゴンを表示しアルファで暗転を実現している場合、それが表示されている可能性があります。この場合、BISHAMON側の描画の後にフェードイン・アウト用のテクスチャを再設定する必要があります。

また他の原因も考えられますため、もう少し詳しいエフェクトデータの情報を頂ければ幸いです。

Post Reply

Page: 1

Bishamon Personal コミュニティ » Android » エフェクト再生前後に画面出力がクリアされているように見える件につきまして

Bishamon Personal コミュニティ is powered by UseBB 1 Forum Software