1

画像にモーションエフェクトのようなものを作成する必要があります。このために、元の画像を拡大縮小し、拡大縮小されていない元の画像の上に透明度を付けてペイントする必要があります。

openglシェーダーでそれを行う方法は?

4

1 に答える 1

1

そのために特定のシェーダーは必要ありません。2番目がスケーリングされる場所に2つのテクスチャ長方形を描画するだけです。2つの画像を確実にブレンドするには、2つの描画呼び出しの間で「glColor4f」または同様のものを使用します(2番目の描画呼び出しの前にcolor4f(1,1,1、.5f)を設定します)が、(に戻すことを忘れないでください) 1,1,1,1)抽選後。

シェーダーで1回の呼び出しでこれを行う必要がある場合:テクスチャ形状を描画するための最も一般的なシェーダーを使用して、入力として「スケール」パラメーターを追加します。それで

vec2 scaledCoordinate = vec2((texCoord.x-.5)/scale + .5, (texCoord.y-.5)/scale + .5)

次に、次のようなものを使用します。

gl_FragColor = mix(texture2D(texture, texCoord), texture2D(texture, scaledCoordinate), .5);
于 2013-03-25T12:14:05.973 に答える