既然是高階,我們就要先從基礎入手,那麼先看一下如何建立乙個webgl的著色器程式:
// 初始化著色器程式外掛程式
// initshaders.js
//function initshaders(gl, vertexshaderid, fragmentshaderid)
else
}var fragelem = document.getelementbyid(fragmentshaderid); //獲取片元著色器dom物件
if (!fragelem)
else
}var program = gl.createprogram(); //建立乙個著色器程式物件
gl.attachshader(program, vertshdr); //將頂點著色器新增到著色器程式
gl.attachshader(program, fragshdr); //將片元著色器新增到著色器程式
gl.linkprogram(program); //將著色器程式鏈結到新增的著色器物件
if (!gl.getprogramparameter(program, gl.link_status))
//最後將建立的著色器程式返回
return program;
}
以上是乙個初始化著色器程式的**,我做了一下翻譯,大家看一下吧。
webgl學習 著色器
著色器是一段使用glsl語言 一種類c的高階語言 編寫的簡短程式,它定義了3d物件的畫素點實際繪製到螢幕上的方式,webgl要求開發者要為每個待繪製的物件提供乙個著色器,乙個著色器可以應用於多個物件,因此在實際的應用中,整個場景通常提供乙個統一的 著色器。乙個著色器,通常由兩個部分組成 頂點著色器 ...
一 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...
OpenGL著色器程式解析 著色器基礎
部分內容 於 現代opengl渲染管線嚴重依賴著色器來處理傳入的資料。如果不使用著色器,那麼用opengl可以做到的事情可能只有清除視窗內容了,可見著色器對於opengl的重要性。在opengl 3.0版本以前 含該版本 或者如果你用到了相容模式 compatibility prof?ile 環境,...