0
ピクセル(カメラプレビュー)のスワップを行うアンドロイドアプリケーションを開発しようとしました。< => top swap diagramOpenGL ESのスワップピクセル
私はこの頂点シェーダを書きましたが、非常に奇妙なもの(デジタルノイズのある黒い画面)を表示します。
attribute vec4 vPosition;
attribute vec2 inputTextureCoordinate;
varying vec2 textureCoordinate;
void main()
{
if (vPosition.y > 0.0)
{
gl_Position = vPosition - vec4(0.0, 1.0, 0.0, 0.0);
}
else
{
gl_Position = vPosition + vec4(0.0, 1.0, 0.0, 0.0);
}
textureCoordinate = inputTextureCoordinate;
}
しかし、この頂点シェーダは機能しますが、上のピクセルだけが下に移動します。
attribute vec4 vPosition;
attribute vec2 inputTextureCoordinate;
varying vec2 textureCoordinate;
void main()
{
if (vPosition.y > 0.0)
{
gl_Position = vPosition - vec4(0.0, 1.0, 0.0, 0.0);
}
else
{
gl_Position = vPosition;
}
textureCoordinate = inputTextureCoordinate;
}
ピクセルをスワップする方法を知っていますか(私の最初の頂点シェーダを機能させる)? ありがとう
私はそれです。頂点の位置ではなく、テクスチャの座標を入れ替える必要があります。あなたが画面上でゴミを得る理由は、いくつかの頂点を画面から動かすためです。 –
ありがとう! しかし、フラグメントシェイダーでは?スワップ後にイメージの一部を拡大する必要があるため、フラグメントシェーダでの処理を避けなければならないと思うので... 頂点シェーダですべてを行うことは可能でしょうか? – far38
フラグメントまたは頂点シェーダのスワップおよびズームが可能です。入力ユニフォームを使用してズーム(min_u、max_u、min_v、max_v)を定義します。次に、頂点シェーダで、(min_u、max_v)、左上(min_u、min_v)、右上(max_u、min_v)、右下(max_u、max_v)の左下頂点テクスチャ座標を割り当てます。テクスチャの座標は変化する必要があります。この方法で両方を達成します。頂点シェーダのズームとスワップ – plastique