如何用delphi绘制YUV纹理?

时间:2018-12-10 17:35:28

标签: delphi firemonkey

据我所知YUV纹理是由2个纹理(Y和UV)组成的。这两个纹理必须使用像这样的着色器绘制在画布上:

#version 100
    precision mediump float;

    varying vec2 vUV;
    uniform sampler2D SamplerY;
    uniform sampler2D SamplerUV;

    void main() {

        mediump vec3 yuv;
        lowp vec3 rgb;

        yuv.x = texture2D(SamplerY, vUV).r;
        yuv.yz = texture2D(SamplerUV, vUV).rg - vec2(0.5, 0.5);

        // Using BT.709 which is the standard for HDTV
        rgb = mat3(      1,       1,      1,
                         0, -.18732, 1.8556,
                   1.57481, -.46813,      0) * yuv;

        gl_FragColor = vec4(rgb, 1);
    } 

我知道如何对一个纹理使用着色器,但是我不知道如何在参数中使用 2个纹理

0 个答案:

没有答案