2017-06-12 2 views
0

3Dファイルを読み込んで、GLSurfaceViewに表示する3Dビューアを作成しています。opengles10とopengles20のタッチの違い

私はもともとopengles10でビューアを実装しましたが、これは固定機能のAPIであるためシェーダを使用できず、opengles20に移動しています。ここ

いくつかの質問:私は私のHTCの欲望にopengles10と同様のモデルをロードすると

、物事は数学的に予想通りであり、モデルが回転/変換/簡単にズームする事象に触れ、迅速です。

私がopengles20を使用すると、私のタッチイベントが地獄を引き起こします。私はこれを知っています。なぜならonFlingイベントでは、モデルを減衰係数で回転させるからです。これはすべての場合において滑らかである。

ので:

1)opengles20に私はvsyncsとダブルバッファリングと振付師を心配する必要がないのはなぜ?

2)バッファが私に利用できない場合、私はどのようにダブルバッファリングまたはOpenGLでスワップバッファを実装しますか?

3)これがパフォーマンスの違いの唯一の理由ですか?

4)最後に、これらの2つを同じにするにはどうすればよいですか?私のUIは

+0

に対して、スレッドセーフであるあなたは、あなたが何をしているかのサンプルコードを提供することもできますタッチイベントはOpenGL ESに特に関連していないためです。 –

+0

onScrollメソッドのdistanceXとdistanceYに基づいて回転値を設定し、requestRender()を呼び出します。 – Arjun

+0

残念ながら、問題を解決するには少なくとも[MVCE](https://stackoverflow.com/help/mcve) )。あなたが述べているように、OpenGL ES 2.0の実装では何かが正しくないが、コードなしでは、どのような前提ができたかは誰にも分からない。 –

答えて

0

がここで自分の質問にフォローアップラグであればopengles20へopengles10からのアップグレードは本当に素晴らしいアップデートではありません。私は私のrendermodeためRENDERMODE_CONTINUOUSLY使用することを決めました

。これにより、いつでも可能な限りバッファをスワップして再描画できます。

また、回転/変換を描画ループ外の行列に適用するためのロジックを移動しました。このすべてがうまくプレーしてもらうために

そして最後には、上の同期するためにミューテックスを導入し、回転/翻訳を更新するその方法はopenglesスレッド

関連する問題