2013-07-01 280 views

回答

1

您可以使用簡單的頂點着色器,添加一些邏輯使tex右上角處於適當的位置。

attribute vec4 position; 
varying vec2 texCoord; 

void main() 
{ 
    texCoord = position.xy * vec2(1.0, -1.0); 
    gl_Position = position; 
} 

和像素着色器只是採取這些texCoord並傳遞給採樣器。

varying vec2 texCoord; 
uniform sampler2D sampler; 

void main(void) 
{ 
    gl_FragColor = texture2D(sampler, texCoord); 
} 
+0

我看到一個問題,該位置是一個vec4,這將無法適應texCoord這是一個vec2。我不知道是否是拼寫錯誤或應該改爲別的 – PerracoLabs

+0

@ Zhenya它是一個錯字,因爲你正在繪製一個四邊形,你只需要xy座標。更新了答案。 – Vasaka

0

通過應用適當的投影矩陣或翻轉頂點着色器中的Y座標進行常規繪製操作。你沒有指定你使用的投影,也沒有發佈代碼,所以這是我可以給你的答案。

+0

我有一個四元組,我正在繪製一個位圖。問題是我應該從左上角繪製它,但是opengl從左下角繪製它。請注意,位圖比四邊形小,但我需要從左上角對其進行繪製,因此未被位圖填充的空白區域是四邊形的右側和底部。 – PerracoLabs

+0

@ Zhenya:謝謝你的解釋,但是如果你在你的問題中添加了一些你嘗試過的代碼,我可以修改一下。 – datenwolf