都是法向量惹的禍!!!

2021-05-11 02:55:26 字數 628 閱讀 4245

畫bezier旋轉曲面,不新增光照效果就是原來的顏色,很好。

一旦新增了光照效果,你要麼定義材質和新增紋理。否則你的物體畫的是什麼顏色沒有用,顯示出來的顏色就是光的顏色。

如果定義材質的話,比如定義漫反射材質(1.0,0.0,0.0)那麼你物體就反射入射光中的紅色分量,即物體顯紅色。

值得注意的是一旦你定義了材質,那麼opengl認為後面它畫的所有東西都是這個材質的,直到你定義新的材質為止。(opengl是狀態機)

opengl定義的光照模型一般有gl_flat(constant shading乙個面的法向量相同),gl_smooth(gouraud shading每個頂點計算法向量)。我對具體實現的機制還是很模糊,所以再畫旋轉曲面的時候就沒有定義法向量。結果第一次畫曲面的時候,光照的顏色很好看,但是當我轉到另乙個動畫模型之後再轉回來,問題就出現了,光照開著,但是是曲面暗灰色的,按理至少也該是光的顏色吧,不知道為什麼。耗了乙個下午也沒搞清楚。最後在畫每個微小矩形的時候設定下法線就沒問題了!

:-(,不明白opengl的機制啊,總是遇到各種奇怪的問題!

記住以後啟用光照的時候,如果畫的模型不是用glusphere之類函式畫出來的話,(自己計算點的情況),加個法向量。加法向量也是你加乙個,後面的所有點的法向量就都是這個,直到你改變為止!

都是 IDENTITY惹的禍

前不久系統伺服器出現了一次不大不小事故,資料庫乙個表的資料不翼而飛,這個表雖然算不上頂級重要的表,但也算的上是個很重要的表,大家趕緊查是什麼把這個表的資料刪的只剩下180多條資料.為什麼還有180多條資料存在哪?真是挺讓人納悶的,但發現這180多條資料中有乙個共性,那就是那個不該為空的字段變成了空值...

都是埠惹的禍

這幾天公司搬家,所以忙的blog好久都沒有更新,關鍵是沒有什麼技術上的事情,都不知道寫點什麼,呵呵。周四到週日一直在乙個客戶那邊進行產品的實施,整個過程自然比較有趣,對於我來說最重要的就是認識到了靈活程式設計的重要。我們的程式需要幾個通訊埠,其中乙個是1433用來連線sqlserver資料庫,很多的...

都是埠惹的禍

這幾天公司搬家,所以忙的blog好久都沒有更新,關鍵是沒有什麼技術上的事情,都不知道寫點什麼,呵呵。周四到週日一直在乙個客戶那邊進行產品的實施,整個過程自然比較有趣,對於我來說最重要的就是認識到了靈活程式設計的重要。我們的程式需要幾個通訊埠,其中乙個是1433用來連線sqlserver資料庫,很多的...