我有一个全屏图像,我想直接投射到一堆网格上。
几乎就像这个全屏图像在屏幕空间中呈现平坦一样。但是我只希望它出现在某些物体上,在环境中出现,并且还被某些物体遮挡。
所以我想以某种方式直接投影这个全屏图像并让它映射到这个着色器上的任何对象。
我说得不对劲......
到目前为止,我有这个:
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太小。它与全屏不对齐。
我做错了什么?