在3d世界中,模擬點光源實現對牆壁的光照。效果還是非常不錯的。
思路如下:
準備一張牆壁影象。
自動生成牆壁的法線紋理。
模擬點光源。
新增漫反射。
隨著時間變換進行規律性移動。
**如下:
#ichannel0"file://./wall.jpeg"
float
getval
(vec2 uv)
vec2 getgrad
(vec2 uv,
float delta)
// 隨著時間流逝,來模擬點光源動態移動
float
msin()
void
mainimage
( out vec4 fragcolor, in vec2 fragcoord)
原圖如下:
效果如下:
效果鏈結
OpenGL著色器程式解析 著色器基礎
部分內容 於 現代opengl渲染管線嚴重依賴著色器來處理傳入的資料。如果不使用著色器,那麼用opengl可以做到的事情可能只有清除視窗內容了,可見著色器對於opengl的重要性。在opengl 3.0版本以前 含該版本 或者如果你用到了相容模式 compatibility prof?ile 環境,...
Opengl(四) 著色器
1.opengl確保至少有16個包含4個元素的頂點屬性可用。2.不同著色器之間的資料傳輸,在傳送方中宣告乙個輸出,在接收方中宣告乙個同名輸入。3.uniform是全域性的,uniform會一直保留他的資料,直到他被重置或更新。4.設定uniform的方式 glint x glgetuniformlo...
著色器與OpenGL
現代opengl渲染管線嚴重依賴著色器來處理傳入的資料。如果不使用著色器,那麼用opengl可以做到的事情可能只有清除視窗內容了,可見著色器對於opengl的重要性。在opengl 3.0版本以前 含該版本 或者如果你用到了相容模式 compatibility prof?ile 環境,opengl還...