本文是webgl電子書的2.15節內容
discard
關鍵字通常出現在片元著色器的if語句或for語句中,discard
的使用語法就像for語句中的continue
和break
關鍵字一樣,直接編寫discard;
即可,但是discard
的功能比較特殊,專門用於著色器片元處理。
如果想理解discard
,你首先應該建立逐片元
的概念。gpu的片元著色器在逐個處理片元的過程中,會把不符合程式條件的**捨棄掉。
//點繪製模式
gl.drawarrays
(gl.
points,0
,4);
"vertexshader"
type
="x-shader/x-vertex"
>
//attribute宣告vec4型別變數apos
attribute vec4 apos;
void
main()
script
>
"fragmentshader"
type
="x-shader/x-fragment"
>
precision lowp float;
// 所有float型別資料的精度是lowp
void
main()
gl_fragcolor =
vec4
(1.0
,0.0
,0.0
,1.0);
}script
>
webgl學習 著色器
著色器是一段使用glsl語言 一種類c的高階語言 編寫的簡短程式,它定義了3d物件的畫素點實際繪製到螢幕上的方式,webgl要求開發者要為每個待繪製的物件提供乙個著色器,乙個著色器可以應用於多個物件,因此在實際的應用中,整個場景通常提供乙個統一的 著色器。乙個著色器,通常由兩個部分組成 頂點著色器 ...
建立WebGL著色器程式
既然是高階,我們就要先從基礎入手,那麼先看一下如何建立乙個webgl的著色器程式 初始化著色器程式外掛程式 initshaders.js function initshaders gl,vertexshaderid,fragmentshaderid else var fragelem documen...
一 WebGL 著色器和繪製
var vshader source void main 型別和變數名字 var fshader source void main param mode 繪製模式 gl.points,gl.lines,gl.line strip,gl.line loop param first 從哪個點開始繪製 p...