opengl光源設定問題

2025-04-02 10:05:32 字數 2567 閱讀 7171

1樓:網友

首先你先要明白的一點是openglgl中任何幾何圖形都是有兩個面的,如果你法線設定正確,那麼頂點的最終顏色應該與頂點法線向量和光線向量的夾角有關,橋顫 夾角越大頂點的顏色就越暗,夾角越小頂點的顏色就越亮。你之所以說球無論怎麼旋轉都是亮的是因為球的每個頂點在旋轉時它的法線向量也是跟著旋轉的,所以能得到正確的光照結果。就你這個程式,這樣的結果是正確的,因為你的線段在旋轉時它的法線也跟著一起旋轉了, 那麼當它的背面朝向你時它的顏色會暗一些。

其實球也是一樣的, 只不過它的背面在球內部你看不到罷了,其實也是暗的。 無論球怎麼旋轉它所呈現在你面前的都是正面。 你想要你的線段在任何角度看都是亮的可以在每次旋轉線段時重新設定線段每個頂點的法線,使其與光線的夾角為0°或是你想要的角度。

不過我想提醒你, 無論你裂鉛想要做什麼課題這樣設定都不是一件什麼好事情, 它並不有趣。 請保持opengl給你程式帶來敏源敗的正確性。 #

2樓:匿名使用者

是不是設定成點光源了?我記得可以設定成全域性的~~

opengl設定大量光源

3樓:

小弟無能為力,坐等大神。

但是小弟有一想法,可否在物質材質設定的時候設定物體發光度然後再畫,使其變為光源呢?

4樓:唯善唯美

這個問題有你應該打**問廠家或者買此裝置的。

opengl設定了光源之後,畫圖的顏色設定為什麼不生效了?怎麼改?

5樓:網友

如果在光照下希望抄模型的顏色可以襲起作用,需bai要啟動顏色材料模式du

glenable( gl_color_material );

然後還需要設定zhi材料屬性:dao

gllightmodeli( gl_front, gl_ambient_and_diffuse );// 這個表示模型的正面接受環境光和散射光,你可以修改這兩個引數。

你可以試試。

opengl如何將乙個球體設定成乙個光源?

6樓:網友

所謂讓球體作為光源其實都是在光源位置繪製乙個球體而已;如果你要實現物體自發光的話那是乙個高階課題,要藉助shader才能實現。

關於你程式中旋轉的問題你試試將 gllightfv(gl_light0,gl_position,lightpos); 這行放到glscalef()後面,因為opengl矩陣旋轉位移只對它後面的繪製作出影響。

至於太陽顏色方面你可以繪製乙個白色的球體作為太陽,並且在繪製太陽時關閉光照,這樣它永遠都是你指定的顏色 code:

gldisable(gl_lighting);

rendersun();

glenable(gl_lighting);

最後,如果你覺得你對ogl固定管線比較瞭解後( glbegin().gllight,.,這些東西現在已經拋棄了 ),可以學習fbo,vbop,glsl等opengl的高階內容。

這些東西會幫助你更簡單的實現更漂亮的效果。

opengl 光照位置問題??急!!!

7樓:聯合學習

你要對設定光源的那些引數熟悉才行。建議你看看opengl的乙個光源引數即時教程,直接改變引數就可以看到光照的變化。這個程式在c3dn論壇有。

8樓:

這個是你座標系沒有控制好,你可以把你想畫的圖形和光源的位置放在不同的座標系裡面處理,這樣想怎麼移動都可以,這裡使用到glpushmatrix(儲存當前狀態的座標系)和glpopmatrix(重置當前座標系,也就是把儲存的座標系拿出來作為當前座標系)函式。

9樓:況承鮮于奇

光照等功能,模型載入是用explor3d轉成c++的標頭檔案,旋轉什麼的都沒有出現問題,但加光照後就出現了你旋轉時把光源的位置也進行了旋轉,比如你光源的。

在opengl中怎麼定義超過8個的光源

10樓:網友

1全部固定管線最多就8個。

可程式設計管線可以超過8個16個。具體怎麼做看你的設計。因為一般的顯示卡都要保證uniform暫存器最低256個的底線。 所以只要你的設計不超過uniform總數理論上都是可以的。

如果要的再多,就不得不採用"延遲渲染"技術了。 它的渲染步驟比較複雜。支援無數多光源。

你可以去看**。 但是這種畫法比較費gpu. 在pc上沒問題。

但手機上就不行。耗電太大。

比如 古墓麗影9,10 就是典型的後期渲染遊戲。你可以玩玩,注意一下它的細節。

opengl怎麼指定光源位置在右上角?

11樓:普洛智應

opengl的光源位置第四個引數是的時候,那麼這個光源就是歲正directional 光源,位置的前三個數就是這個光源的睜洞方向了,比如。

glfloat lightposition=gllightfv(gl_light1, gl_position,lightposition);

這個光源就是平行於z平面,右上角照向原點。。。乎早悔。

關於openGL,以及顯示卡的問題,求助,thx

提示opengl版本或顯示卡驅動版本太低嗎,1.提示顯示卡版本太低有可能是在版 物理特性上不支援 關於opengl,以及顯示卡的問題,求助,thx 是提示opengl版本或顯示卡驅動版本太低嗎1.提示顯示卡版本太低有可能是在物理特性上不支援遊戲的執行 2.可根據顯示卡型號到官網上更新匹配的顯示卡驅動...

為什麼散熱問題是LED光源的關鍵問題?

任何發光的物體,都會發熱。這好像有點絕對哦,螢火蟲似乎只發光不發熱。好吧,我說的是人工光源,都會發熱,具體到用電來實現的光源,那麼是通過電轉化為光的,在這個轉化過程中,會產生熱。就照明來講,我們當然希望同樣的電,能產生更多的光,更少的熱,這哪陪就是發光效率的概念。但是不管怎麼高效率雀簡的發光器,熱是...

電腦IP地址設定問題,電腦IP地址設定問題

1 首先你的路由器的地址是多少,請確認是192.168.1.1還是0.1。具體方式可以在路由內檢視或直聯路由的lan口,網絡卡先擇自動獲得ip地址,就能查到了 2 區域網必須設在同一個網段才可以互聯互通 3 根據你的描述,你的閘道器應該是192.168.0.1,建議你所有區域網的電腦全部改為192....