我正在嘗試使用頂點着色器和片段着色器創建四角透視效果。如何在使用opengl es 2.0在glsl中進行透視變形時正確映射紋理
我設置頂點位置信息來繪製像形狀的透視圖,然後映射我的紋理。但不知何故紋理未正確映射。
下面是兩張照片向您展示問題。
我找到這個post是texture2DProj
也許正確的答案一定的相關信息,但我不太明白它是如何工作的。我試圖做這樣的事情,
varying lowp vec4 TexCoordOut;
uniform sampler2D Texture;
void main(void) {
gl_FragColor = texture2DProj(Texture, TexCoordOut);
}
而對於TexCoordOut
我
{1, 0, 0, 1}
{1, 1, 0, 1}
{0, 1, 0, 1}
{0, 0, 0, 1}
傳遞到頂點着色器,並改變成片段着色器。但結果是一樣的。
我只知道如何使用texture2D
與vec2
,我怎麼能得到我的紋理座標的其他兩個組件與texture2DProj
一起使用?
嗨Isogen74,感謝您的評論。事情是我必須在2D中繪製正方形,因爲我只有4個頂點的'x'和'y'座標。它們看起來像是在3D空間中,但它們只是2D形狀。我需要使用這些2D座標來實現透視扭曲效果。你能給我一些關於如何計算紋理座標的'w'值的想法嗎? –