Re: [問題] OPENGL 光源問題
※ 引述《yising770128 (電通人)》之銘言:
: ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
: ( 未必需要依照此格式,文章條理清楚即可 )
: 遇到的問題: (題意請描述清楚)
: 我使用OPENGL
: 一個畫面有兩個3D正方體的圖形
: 顏色分別為全紅和全綠
: 因為正方體六面的顏色都一樣所以沒什麼立體感
: 我設置了環境光 漫射光 鏡面光
建議使用原文, ambient, diffuse, specular
: 但是兩正方體顏色卻變為單色(依環境光參數改變而變)
: 希望得到的正確結果:
: 希望兩個正方體在加入光源之後
: 看的出立體感
: 但兩個圖形不會只有一個顏色
OpenGL裡的Lighting的效果, 主要需要四個Lighting相關的屬性....
1. Light 本身的 ambient, diffuse, specular
用來代表/模擬真實世界光源對三種特性光提供的能量強度
2. Material 的 ambient, diffuse, specular, 及emission
用來代表被照體(polygon)對於三種特性光能量的反射比例
emission是用來模擬物體本身也會發光時的效果
3. Normal, 代表被照體的polygon的法向量
主要在diffuse與specular的光入射/反射計算中使用
4. Light 照射的方向/所在的位置/光源類型等
其中, 1.與2.都以類似Color的下法傳入RGBA的值來做設定....
3.則是以(X, Y, Z)的向量型式來做設定, 與4.習習相關....
當然還有其他的屬性, 例如光源類型, 光照角度, 衰減率等等等....
這些相關的設定請進一步直接去OpenGL的man網頁查詢....
http://www.opengl.org/sdk/docs/man/
上面的設定裡, Light或Material的ambient, diffuse, specular等漏設或設錯了....
或者是Normal或Light的方向設錯了等, 都會使得Lighting的效果出不來或不明顯....
: 程式跑出來的錯誤結果:
: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
: DEV-C
: 有問題的code: (請善用置底文標色功能)
: 補充說明:
目前的確如原文推文所說, 看起來是Normal沒有設好的關係....
但是也有可能是光源沒有設好, 或者兩個都沒有設好等造成....
請您再檢查看看, 或者拿範例等再研究一下; 不然就貼code吧:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.174.98
→
12/18 00:42, , 1F
12/18 00:42, 1F
→
12/18 00:45, , 2F
12/18 00:45, 2F
推
12/18 00:49, , 3F
12/18 00:49, 3F
推
12/18 01:00, , 4F
12/18 01:00, 4F
推
12/18 01:11, , 5F
12/18 01:11, 5F
→
12/18 01:37, , 6F
12/18 01:37, 6F
→
12/18 01:39, , 7F
12/18 01:39, 7F
推
12/19 17:17, , 8F
12/19 17:17, 8F
討論串 (同標題文章)