光線的使用
DESCRIPTION
光線的使用. 光線的種類介紹. Ambient Light( 周遭 ) 光線來自四處 , 非特定位置所發出的光線 特性 被照射的物體 , 在 每個方向 . 角度 上受到 等量 的光線. 光線的種類介紹 (1/2). Diffuse Light( 漫射 ) 有方向性 , 均勻 照射到表面 ex: 午後太陽光從窗戶射入 Specular Light( 反射 ) 有方向性 , 使物體 反射 到某個角度 入射角度有關係 Ex: 聚光燈 , 太陽光 光線成分 : R,G,B,alpha (0~1) alpha: 0 透明 , 1 完全不透明 - PowerPoint PPT PresentationTRANSCRIPT
1
光線的使用
2
光線的種類介紹 Ambient Light( 周遭 )
光線來自四處 , 非特定位置所發出的光線 特性
被照射的物體 , 在每個方向 .角度上受到等量的光線
3
光線的種類介紹 (1/2) Diffuse Light( 漫射 )
有方向性 ,均勻照射到表面 ex: 午後太陽光從窗戶射入
Specular Light( 反射 ) 有方向性 , 使物體反射到某個角度 入射角度有關係 Ex: 聚光燈 , 太陽光
光線成分 : R,G,B,alpha (0~1) alpha: 0 透明 , 1 完全不透明
任何光源皆由以上三種光線組成 , 所佔成分有所不同
4
光線的種類介紹 (2/2) 一般模擬出泥土 , 樹木 , 衣料 , 比較色彩
單調的物體 , 設定 Ambient, Diffuse 就足夠
金屬表面的反射則需要使用 Specular Light
5
加入光線 啟動燈光 :
glEnable(GL_LIGHTING); 設定 Lighting Model
1. 定義光的亮度 Glfloat ambientLight [ ] = {1.0f,1.0f,1.0f,alpha} ;
2.glLightModelfv(GL_LIGHT_MODEL_AMBITNT,ambientLight);
第一個參數 : 設定 lightModel 參數 第二個參數 : 以 RGB 值建構光源
6
設定光源 開啟 light 0, 及設定強度
glEnable(GL_LIGHT0) glLightfv(GL_LIGHT0,GL_AMBIENT,AM_Light) 參數 :
GL_Light0 : 可以有 8 個光源 ,0~7, 開啟第零號光源 GL_Ambient: 使用的光線種類 AM_Light: 設定光線的強度
Ex: ------------ 給與第零號光源 -------------- glLightfv(GL_LIGHT0,GL_DIFFUSE,ambientLig
ht); glLightfv(GL_LIGHT0,GL_SPECULAR,specular);
7
設定光源的位置 定義位置陣列 :
GLfloat lightPos[] = { 0.0f, 0.0f, 60.0f, 1.0f }; 最後為 0, 光線在這個陣列所指定的向量無限遠處 .
加入到光源內 glLightfv(GL_LIGHT0,GL_POSITION,lightPos);
8
設定材質屬性 設定材質屬性
目的 : 經由設定材質 , 多邊型才能反射光線 1. 以陣列設定方式
Glfloat gray[]={0.75f ,0.75f ,0.75f}; glMaterialfv(GL_FRONT, GL_SPECULAR,gray)
參數 : Gl_FRONT: 材質屬性應用到多邊行的 前 , 後 , 兩側 指定要哪依種屬性 RGBA 陣列值
9
設定材質屬性 2. color tracking 直接藉由 glcolor 來設定材質屬性
glEnable(GL_COLOR_MATRIAL); glcolor3f(0.7f,0.7f,0.7f) glColorMaterial(GL_FONT,GL_AMBIENT_AND_DI
FFUSE);
10
COLOR TRACKING 優點 優點 :
節省陣列設定的步驟 在多邊型數目多時 , 執行速度快
11
光源測試