著色器語言之uniform限制符
01-31
- 一.定義
以上是opengl es3.2官方文檔中對於 uniform限制符的描述,主要說了幾點:
1在shader代碼中,它必須申明為全局變數(global variable)。
2它的值在整個圖元處理的過程中不會發生改變。
3它的值是只讀的(read-only),可以通過api初始化也可以在鏈接期初始化。
4採樣器(用於訪問紋理)不需要初始化。
5它可以用來修飾任何基礎類型,即使是結構體或各種類型的數組。
本質上說,uniform就是在應用程序和各個shader之間搭建了一個橋樑,讓它們之間可以傳遞一個在各個shader內不可以修改值的變數。
- 二.在應用程序中,操作uniform修飾變數
gScaleLocation就是gScale變數在當前uniform變數列表中的索引值(除非再次調用glLinkProgram()函數重新鏈接項目,否則這個索引值不會改變)。有了這個值之後,在程序中就可以通過
函數說明
Reference:
- 函數說明http://blog.csdn.net/wangyuchun_799/article/details/7742787
- GLSL_ES_Specification_3.20.withchanges https://http://www.khronos.org/registry/gles/specs/3.2/GLSL_ES_Specification_3.20.withchanges.pdf
- http://ogldev.atspace.co.uk/www/tutorial05/tutorial05.html
推薦閱讀: