0

この Windows aero テーマを Arm Mali GPU に実装中です。この画像に従ってください。このチェックアウトのような効果が必要です

私の質問は、画像(上)のどの領域が画像(下)と混ざっているのかをどのように特定するかです。表示する.. ??

&どうやって画像を描くのですか?背景のぼかし画像を最初に描画してから、通常の画像またはその他の方法で描画する必要がありますか??

どんな助けも感謝しています...

シーズン 2 / * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * / やってみましたdatenWolf のやり方ですが、blur シェーダで行き詰まっています

このフラグメント シェーダをぼかしに使用しましたが、正確な半透明効果が得られません。

#version 120

uniform sampler2D sceneTex;

uniform float rt_w;
uniform float rt_h;
uniform float vx_offset;

float offset[3] = float[]( 0.0, 1.3846153846, 3.2307692308 );
float weight[3] = float[]( 0.2270270270, 0.3162162162, 0.0702702703 );

void main() 
{ 
  vec3 tc = vec3(1.0, 0.0, 0.0);
  if (gl_TexCoord[0].x<(vx_offset-0.01))
  {
    vec2 uv = gl_TexCoord[0].xy;
    tc = texture2D(sceneTex, uv).rgb * weight[0];
    for (int i=1; i<3; i++) 
    {
      tc += texture2D(sceneTex, uv + vec2(offset[i])/rt_w, 0.0).rgb * weight[i];
      tc += texture2D(sceneTex, uv - vec2(offset[i])/rt_w, 0.0).rgb * weight[i];
    }
  }
  else if (gl_TexCoord[0].x>=(vx_offset+0.01))
  {
    tc = texture2D(sceneTex, gl_TexCoord[0].xy).rgb;
  }
  gl_FragColor = vec4(tc, 1.0);
}

このリンクhttp://incubator.quasimondo.com/processing/superfast_blur.phpに示すように、ぼかし効果を探していました

しかし、このソフトウェア アルゴリズムは私のコードでは機能しません。ブラー シェーダーの助けがあれば、この種の効果が役に立ちます。Arm マリで OpenGLES 2.0 を使用しています。

4

1 に答える 1

2

ウィンドウ構成に関連する検出プロセスはありません。すべてのウィンドウは個別のテクスチャとして利用でき、ウィンドウはその間のぼかしステップを使用して深さ順に描画されます。

これについて行われます。画面全体に2 つのフレームバッファ オブジェクトABがあります。Foreachウィンドウ

  1. ぼかしフィルターを適用して、ウィンドウがBからAまでカバーする領域を描画します
  2. これの上に実際のウィンドウの内容をBに描画します
  3. A←→Bを入れ替える

ウィンドウごとに深さ順に繰り返します。基本的に、これは多数のテクスチャ スイッチとして表示されます。これらは多少コストがかかりますが、画面上の (オーバーラップする) ウィンドウの数は常に適切な数値内に収まるため、これは実際には問題になりません。

于 2012-07-22T16:47:18.730 に答える