簡體   English   中英

基本的OpenGL照明問題

[英]Basic OpenGL lighting question

我認為這是一個非常愚蠢和新手的問題,但后來我是圖形和openGL的新手。 繪制了一個球體並將光源放在附近,同時指定了環境光,我開始嘗試光和材料值,並得出一個令人驚訝的結論:我們用glColor*指定的顏色在啟用光照時根本不重要。 相反,等效物是材料的環境組件。 這個結論是否正確? 謝謝

如果啟用了光照,則使用材質顏色 (即,顏色 - 其中有幾種用於不同類型的光響應)而不是頂點顏色。 材質顏色由glMaterial*函數指定。

如果要重用代碼,可以使用glEnable(GL_COLOR_MATERIAL)glColorMaterial(GL_AMBIENT_AND_DIFFUSE)將舊的glColor*調用自動映射到材質顏色。

(請盡快切換到着色器 - 着色器方法更簡單,更強大)

我想你還沒有使用片段着色器。 來自glprogramming.com

 vertex color = the material emission at that vertex + the global ambient light scaled by the materials ambient property at that vertex + the ambient, diffuse, and specular contributions from all the light sources, properly attenuated 

所以是的,不使用頂點顏色。

編輯:您也可以在GL規范中查找GL閃電方程式(附近有一個,是嗎?^^)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM