2012-02-04 224 views
0

我無法讓頂點着色器(1.20)正常工作。我渲染一個簡單的白色三角形,但是當我加載頂點着色器時,三角形消失。頂點着色器問題

void main() 
{ 
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 
} 

我也試過:

void main() 
{ 
    gl_Position = ftransform(); 
} 

無濟於事。我真的很困惑,因爲我的片段着色器的確是的工作。例如,

void main() 
{ 
    gl_FragColor = vec4(.5, .6, .3, 1); 
} 

將使我的三角形變成綠色。我找不到任何錯誤(並且着色器沒有錯誤地編譯),所以我想知道是否有人有任何想法。

+0

你應該表現出您正在使用的代碼來編譯和鏈接着色器和程序。 – 2012-02-04 23:22:31

回答

3

我認爲你需要複製的顏色和紋理信息,以及:

  gl_FrontColor = gl_Color; 
      gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; 

(如果你打算模擬所有固定管線的行爲更多)

+0

謝謝;那工作。但我不太明白爲什麼我需要設置顏色和紋理座標。你的意思是說,一旦我加載着色器,顏色和其他屬性不會自動通過管線? – mwlow 2012-02-04 23:52:34

+0

對。當你加載一個頂點着色器時,你完全替換了固定函數管道中的東西。例如,對於你的1行和2行,你仍然沒有光照或多紋理。 – 2012-02-05 00:03:57