實驗6 簡單光照與材質

2021-08-30 08:18:26 字數 2401 閱讀 7677

在示範**1基礎上,按以下要求修改:

(1) 閱讀和修改示範**中的有關引數,產生不同光照效果,觀察顯示效果。挑選兩張修改的效果圖儲存為圖1-2,與對應修改的**一起儲存至word實驗文件中(15分鐘);

(2) 將**中的球面改為圓錐面,將圓錐面的光照效果圖存為圖3,與對應修改的**一起儲存至word實驗文件中(25分鐘);

在示範**2的基礎上,按以下要求完成任務:

(3) 閱讀和修改示範**2中的有關引數,產生不同光照效果,觀察顯示效果。挑選兩張修改的效果圖儲存為圖4-5,與對應修改的**一起儲存至word實驗文件中(15分鐘);

(4)參考太陽系示範**,該**顯示乙個簡單的太陽系模型,嘗試為其增加光照與材質效果,挑選兩張修改的效果圖儲存為圖6-7,與對應修改的**一起儲存至word實驗文件中(25分鐘);

phong光照明模型是由物體表面上一點p反射到視點的光強i為環境光的反射光強ie、理想漫反射光強id、和鏡面反射光is的總和,即

i =i

aka+

ipkd

(ln)

+ipk

s(rv

)n

i = i_a k_a + i_p k_d(ln) + i_p k_s(rv)^n

i=ia​k

a​+i

p​kd

​(ln

)+ip

​ks​

(rv)

n其中r,v,n為單位向量;i

pi_p

ip​為點光源發出的入射光強;i

ai_a

ia​為環境光的漫反射光強;k

ak_a

ka​環境光的漫反射係數;k

dk_d

kd​漫反射係數( )取決於表面的材料;k

sk_s

ks​鏡面反射係數( );n冪次,用以模擬反射光的空間分布,表面越光滑,n越大。

在用phong模型進行真實感圖形計算時,對物體表面上的每個點p,均需計算光線的反射方向r,再由v計算 。為減少計算量,我們可以作如下假設:a)光源在無窮遠處,即光線方向l為常數;b)視點在無窮遠處,即視線方向v為常數;c)用 近似 。這裡h為l和v的角平分向量, 。在這種簡化下,由於對所有的點總共只需計算一次h的值,節省了計算時間。結合rgb顏色模型,phong光照明模型的最終形式詳見教材公式(8.21)。

示範**1中,光源在無窮遠處,光線方向為單位向量l(0.5, 0.5, 0.707),視點在無窮遠處,視線方向v為(0, 0, 1)。

#include #include #include #include struct vector

;struct color

;float kaia;//環境光強度

float kd, n;

vector h,light;

color mlight, mcolor;//mlight表示漫反射光與鏡面反射光強度

glboolean blight = false;

void circlept(int x0, int y0, int x, int y, color mcolor)

//中點圓生成演算法

void midcircle(int x0, int y0, int r, color mcolor)

; glfloat mat_shininess = ;

glfloat light_position = ;

glfloat white_light = ;

glfloat light_model_ambient = ; //

glclearcolor(0.0, 0.0, 0.0, 0.0);

glshademodel(gl_smooth);

glmaterialfv(gl_front, gl_specular, mat_specular);

glmaterialfv(gl_front, gl_shininess, mat_shininess);

gllightfv(gl_light0, gl_position, light_position);

gllightfv(gl_light0, gl_diffuse, white_light);

gllightfv(gl_light0, gl_specular, white_light);

gllightmodelfv(gl_light_model_ambient, light_model_ambient); //

glenable(gl_lighting);

glenable(gl_light0);

glenable(gl_depth_test);

}void display(void)

void reshape(int w, int h)

int main(int argc, char** argv)

程式執行結果:

圖2

菜鳥DirectX之光照與材質

光照 一 先介紹一下光照的型別吧 1 環境光 特點 稱它為背景光更合適,只有乙個顏色亮度,不會衰減。2 漫反射 特點 沿著特定的方向傳播,碰到障礙物時沿著各個方向反射,和觀察者的位置無關 3 鏡面反射 特點 當光線碰到障礙物時將嚴格的沿著另一方向反射 4 自發光 特點 物體自身發的光 不參與光照的計...

高階光照與材質之光照和反射模型

第五章講述了一些漫反射模型和鏡面反射模型的原理和數學公式 博主在unity中實現了一下,把部分結果貼在上面 有下面幾個主題 渲染公式 基本光照定義 光照和lambert法則 雙向反射分布函式brdf 漫反射材質原理簡介與模型 鏡面反射材質原理簡介與模型 對於我們眼睛可見的光對於表面的作用,他們會發生...

光照與渲染(十) 自發光材質

雖然區域光源不被precomputed realtime gi所支援,通過使用自發光材質還是能夠產生柔和的光照效果的。就像區域光源那樣,自發光材質從他們的表面區域發射光線。它們能夠向你的場景中新增發射光並且相關的屬性例如顏色和光強等能夠在遊戲執行時改變 emission 是standard shad...