學習WebGL 010 光照模型

2021-09-28 20:16:30 字數 897 閱讀 9730

參考:

funwithwebgl2 012-phong lighting

phong模型:環境光 + 漫反射 + 鏡面反射。

lambertian模型:漫反射。

1、環境光

void

main()

2、漫反射

漫反射是模擬光照到粗糙的物體表面的效果,會考慮到光的射入方向,但是不考慮觀察者的視線方向,垂直射入的光線會比斜著射入的光線更加的明亮。

光線方向與模型表面的法線方向夾角越小應該看上去越亮。這一特性可以用點乘表示。

計算公式: diffuse = kdiffuse × n • l × cbase
varying vec4 fcolor;

// 光的顏色

uniform vec4 diffuseproduct;

// 光的方向

uniform vec4 lightposition;

void

main()

3、鏡面反射

鏡面反射是模擬光照到光滑的物體表面的效果,會產生明亮的斑點或強光,除了需要考慮到光的射入方向也要考慮觀察者的視線方向。

計算公式:

specular = kspecular × pow

(max

(r • v,0

), kspecularpower)

4、布光方式

1)三點布光

物理天空+主光

天空盒+乙個主光源。

reference links

WebGL 平行光和環境光

馮氏反射模型引申了這個四步走的光照系統,首先所有的光線都有以下兩個屬性 發生漫反射光的rgb值。發生鏡面反射光的rgb值。其次所有材質都有以下四個屬性 反射的環境光rgb值 反射的漫反射光rgb值 反射的鏡面反射光rgb值 物體的反光度,它決定了鏡面反射的細節 對於場景中的每一點,它的顏色都是由照射...

WebGL程式設計(1) 學習總結之WebGL常用方法

webgl簡介 webgl,是一項使用canvas在網頁上繪製和渲染複雜三維圖形 3d圖形 並允許使用者與之進行互動的技術,webgl的技術規範繼承自免費和開源的opengl標準,而後者在計算機圖形學 電子遊戲 計算機輔助設計等領域已被廣泛使用多年。由於webgl處理的是三維圖形,所以它使用的是三維...

WebGL學習筆記3

webgl lesson 10 loading a world,and the most basic kind of camera 這個demo載入了乙個場景,並且能處理鍵盤事件。載入場景 xmlhttprequest http get request a callback function當載入場...