多数のメッシュに直接投影したいフルスクリーン画像があります。
このフルスクリーン画像が画面空間でフラットにレンダリングされているかのようです。しかし、私はそれを特定のオブジェクト、環境内に表示し、特定のオブジェクトによって遮られるようにしたい.
そこで、何らかの形でこのフルスクリーン画像を直接投影し、このシェーダーのオブジェクトにマップしたいと考えています。
なかなかまとまらない…
私はこれまでのところこれを持っています:
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 小さすぎます。フルスクリーンには対応していません。
私は何を間違っていますか?