正投影でお手軽座標変換

最終更新日23 Mar 2018 13:12

三角形がY軸中心に回るだけのコードです


カメラ座標系から正規化デバイス座標系まで一気に変換してしまいます。
glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);
したのと同じ効果になります。

    //triangle verts
    vec4 a=vec4(0.0,1.0,0.0,1.0);
    vec4 b=vec4(-1.0,-1.0,0.0,1.0);
    vec4 c=vec4(1.0,-1.0,0.0,1.0);
    mat4 mv = translate(0.0,0.0,-2.0)*rotate( 0.0,sin(iGlobalTime),0.0);
    //convert to camera coordinate
    vec4 viewa = mv*a;
    vec4 viewb = mv*b;
    vec4 viewc = mv*c;
    //ビュー座標から正規化デバイス座標(normalized device coordinate)へ変換
    vec2 ndca = -viewa.xy/viewa.z;
    vec2 ndcb = -viewb.xy/viewb.z;
    vec2 ndcc = -viewc.xy/viewc.z;

フルソースコード(ShaderToy)


ファイル

サポートサイト Wikidot.com