0

シェーダーを使用して OpenGLでシグマ レンズを実装しようとしていますが、いくつか問題があります。

テクスチャ座標を頂点シェーダーに渡し、フォーカス領域と遷移領域の空間変換を試みました。しかし、これは機能しません。元の画像しか取得できません。

頂点シェーダーのコードは次のとおりです。

in vec4 vVertex;
in vec2 vTexCoord;
//in vec4 vNormal;

uniform mat4   mvpMatrix;
//uniform mat4   mvMatrix;
//uniform mat4   normalMatrix;
uniform float  mm;
uniform float  mouseX;
uniform float  mouseY;

// Texture Coordinate to fragment program
smooth out vec2 vVaryingTexCoord;
smooth out vec2 vVaryingcolorCoord;

void main(void) 
    {
    // Pass on the texture coordinates 
    //vVaryingTexCoord = vTexCoord;
    vec2 m = vec2(mouseX,mouseY);
    vec2 pos = vec2(vTexCoord.s,vTexCoord.t);
    if (distance(pos.xy, m.xy) <=0.1) {
        vVaryingcolorCoord.s = m.x + (pos.x-m.x)/mm;
        vVaryingcolorCoord.t = m.y + (pos.y-m.y)/mm;

    }
    else if(0.1 < distance(pos.xy, m.xy) && distance(pos.xy, m.xy) <= 0.2){
        vVaryingcolorCoord.s = m.x + (pos.x-m.x)/0.8;
        vVaryingcolorCoord.t = m.y + (pos.y-m.y)/0.8;

    }
    else {
     vVaryingcolorCoord.st=vTexCoord.st;

    }

    gl_Position = mvpMatrix * vVertex;
   }

不足しているものはありますか? Opengl と GLSL を学び始めたばかりなので、どんなアイデアでも大歓迎です。

ありがとう

4

1 に答える 1

0

このシェーダは、それが使用されている OpenGL コードがなければほとんど意味がありません。何が悪いのだろうと思いますが、レンダリング コードがないとわかりません。

于 2011-12-06T17:03:15.023 に答える