0

我有一个全屏图像,我想直接投影到一堆网格上。

几乎就像这个全屏图像在屏幕空间中被渲染成平面一样。但我只希望它出现在某些物体上,在环境中,也被某些物体遮挡。

所以我想以某种方式将这个全屏图像直接投影出来,并将它映射到这个着色器上的任何对象上。

我不能完全正确...

到目前为止我有这个:

varying mediump vec4 projCoord;     

#ifdef VERTEX     

    void main()
    {
        gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;   
        mediump vec4 pos = gl_ModelViewMatrix * gl_Vertex;
        projCoord = gl_TextureMatrix[0] * pos;      
    }

#endif

#ifdef FRAGMENT

    uniform mediump sampler2D _ProjectTexture; 
    void main()
    {
        gl_FragColor = texture2DProj( _ProjectTexture, projCoord);
    }

#endif

这不太行。投影图像太小,例如太小 1/10。它与全屏不对齐。

我究竟做错了什么?

4

0 回答 0