2015-09-16 32 views
0

我正在學習如何使用着色器,目前我正在嘗試爲卡通形狀編寫頂點和片段着色器。我有一個用於着色的球體的示例代碼,它可以正常工作,所以我將該文件中的結構複製到我創建的結構中。但是,當我運行我的文件時,只有黑色背景出現在頁面上,而不顯示形狀。我試着比較這兩個文件,以確保我擁有所有的鍋爐板代碼,看起來如此,但由於我對計算機圖形編程非常陌生,因此可能有一些重要的事情我要拋棄。我的程序做錯了什麼或者應該添加什麼?該程序的代碼如下:Webgl程序在瀏覽器中運行時不顯示形狀

<script src=lib1.js></script> 
<body bgcolor=black> 
<center> 
<canvas id='canvas1' width='600' height='600'> 
</canvas> 
</center> 
</body> 


<script id='vs' type='other'> 
    uniform vec3 lightDir; 
    varying float intensity; 
    void main(){ 
     vec3 ld; 
     intensity = dot(lightDir, gl_Normal); 
     gl_Position = ftransform(); 
    } 
</script> 


<script id='fs' type='other'> 
varying float intensity; 
void main(){ 
    vec4 color; 
    if(intensity > 0.95) 
     color = vec4(1.0, 0.5, 0.5, 1.0); 
    else if(intensity > 0.5) 
     color = vec4(0.6, 0.3 , 0.3, 1.0); 
    else if(intensity > 0.25) 
     color = vec4(0.4 , 0.2, 0.2, 1.0); 
    else color = vec4(0.2, 0.1, 0.1, 1.0); 

    gl_FragColor = color; 
    } 
</script> 


<script> 
start_gl("canvas1", getStringFromScript('vs'), getStringFromScript('fs')); 
</script> 
+0

您正在使用什麼類型的庫的OpenGL ES 2.0的一部分?我沒有看到你在頂點着色器中調用的'ftransform'函數的定義 –

+0

@LJᛃ我沒有注意到該行需要另一個庫的事實。我在片段着色器示例中在線找到代碼。這可能是爲什麼形狀沒有出現。現在我只需要找到一種方法來實現一個新的片段着色器和我所擁有的代碼js代碼。 – loremIpsum1771

+1

在編譯着色器時,應查看開發控制檯應該向您顯示錯誤消息。 –

回答

相關問題