何かをチェックしたところ、C++ と OpenGL と GLSL のパフォーマンスについて奇妙な結果が得られました。
最初のプログラムでは、フラグメント シェーダーを使用してテクスチャにピクセルを描画し、テクスチャをレンダリングしました。テクスチャの mag\min は でしたGL_NEAREST。
2 番目のプログラムでは、フラグメント シェーダーを使用して画面に直接レンダリングしました。
2 番目のプログラムの方が速いのはなぜですか? 同じアクションを繰り返すよりも、テクスチャのレンダリングが高速ではありませんか?
これは、AAA ゲームのビデオを撮影して同じコンピューターで表示し、ビデオの FPS を下げるようなものです。
フラグメント シェーダーは次のとおりです。
uniform int mx,my;
void main(void) {
    vec2 p=gl_FragCoord.xy;
    p-=vec2(mx,my);
    if (p.x<0.0)
        p.x=-p.x;
    if (p.y<0.0)
        p.y=-p.y;
    float dis=sqrt(p.x*p.x+p.y*p.y);
    dis+=(abs(p.x)+abs(p.y))-(abs(p.x)-abs(p.y));
    p.x/=dis;
    p.y/=dis;
    gl_FragColor=vec4(p.x,p.y,0.0,1.0);
}