2012-05-31 92 views
1

我有一些透明的貼花渲染成一個單獨的幀緩衝區。現在我試圖將這個緩衝區與後臺緩衝區(活動目標)混合。如何將片段着色器應用於每個像素?

我假設我必須將fbo的顏色緩衝區作爲片段着色器中的紋理加載並將紋理顏色輸出到活動目標。 如何告訴圖形卡爲每個像素執行此操作?

回答

2

我對全屏矩形/四碼 這是舊的方法 - 從OpenGL的1.1,但工程:)對於新的OpenGL 3. *您必須使用VBO /陣列

glMatrixMode(GL_PROJECTION); 
glPushMatrix(); 
glLoadIdentity(); 
glMatrixMode(GL_MODELVIEW); 
glPushMatrix(); 
glLoadIdentity(); 

glBegin(GL_QUADS); 
glTexCoord2f(0,0); 
glVertex3d(-1.0,-1.0, 0); 
glTexCoord2f(1,0); 
glVertex3d( 1.0,-1.0, 0); 
glTexCoord2f(1,1); 
glVertex3d( 1.0, 1.0, 0); 
glTexCoord2f(0,1); 
glVertex3d(-1.0, 1.0, 0); 
glEnd(); 

glMatrixMode(GL_PROJECTION); 
glPopMatrix(); 
glMatrixMode(GL_MODELVIEW); 
glPopMatrix(); 
當然

你有設置紋理之前

3

繪製一個覆蓋整個屏幕的四個或兩個三角形。

+0

我應該在哪裏以及如何渲染它們?我有一個免費的移動照相機。一些示例代碼或指導教程的鏈接會很好。 – Fabian

+0

對不起,我沒有一個例子,只知道直接x的條款,所以希望有人能更好地解釋...你不使用相機只使用-1,-1到1,1.在你的頂點着色器只是通過座標通過。在您的像素着色器中,將座標轉換爲0 - 1的範圍以查找紋理中的像素...不需要任何複雜的轉換 – jcoder

相關問題