トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
OpenGL
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ ポストエフェクト(PostEffect)


  SAMPLE

     ポストエフェクト モザイク 
     ポストエフェクト エッジ抽出 

     ポストエフェクト ぼかしを加算 


    ポストエフェクトをするには、描画した画面をフラグメントシェーダを利用して
    再処理をする。

    // 適当にシーンを描画
    drawScene();
    

    // 画面をテクスチャへコピー
    glBindTexture( GL_TEXTURE_2D, id );
    glCopyTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA,
                          0, 0, W, H, 0 );

    // ポストエフェクト用の頂点シェーダとフラグメントシェーダをバインドする。                          
    cgGLBindProgram( shdV );
    cgGLBindProgram( shdF );


    // フラグメントシェーダで利用するテクスチャを渡す。
    CGparameter p = cgGetNamedParameter( shdF2, "decal");
    cgGLSetTextureParameter( p, id );    
    cgGLEnableTextureParameter( p );


    // テクスチャを画面を覆う四画形ポリゴンにはりつけて描画する。
    glBegin( GL_QUADS );
    glTexCoord2f( 0, 0 );
    glVertex3f( -1, -1, z );
    glTexCoord2f( 1, 0 );
    glVertex3f( 1, -1, z );
    glTexCoord2f( 1, 1 );
    glVertex3f( 1, 1, z );
    glTexCoord2f( 0, 1 );
    glVertex3f( -1, 1, z );    
    glEnd();

頂点シェーダでは正規化デバイス座標系で -1 : 1 の範囲を覆うように変換しておく。 四画形の各頂点を -1 1 にしておき、モデルビュー変換、プロジェクション変換をしないでスルーさせる。

    struct app {
         // 頂点データ
      float4 pos : POSITION;
      float4 tc : TEXCOORD0;     
    };
    struct v2f {
      float4 pos : POSITION;   
      float4 tc  : TEXCOORD1;  
    };

    v2f main( 
                app IN
                ) 
    {
      v2f OUT;

      // -1 1 の範囲になるようにスルーさせる。
      OUT.pos = float4( IN.pos.xy, -0.9f, 1 );
      OUT.tc = IN.tc;

      return OUT;
    }
フラグメントシェーダでは描画した画面に対して適当な処理をする。
    float4 main( 
                v2f IN,
                uniform sampler2D decal
                ) : COLOR
    {
      return float4( tex2D( decal, floor( IN.tc.xy * 100 ) / 100.0f ).xyz, 1 );
    }







金利比較.COM
NINJAIDX 9