OpenGL在frag著色器中模擬點光源

2021-10-04 06:25:19 字數 484 閱讀 6402

在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還...