2009-06-24 27 views
1

我正在學習OpenGL並剛剛開始進入燈光。我使照明和光0,設置它的環境/漫反射/鏡面爲默認值在我的init方法,然後每幀我做這樣的事情:當我每幀更新其位置時,OpenGL燈閃爍

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
// do my 3rd-person camera transforms and rotations 
glLightfv(GL_LIGHT0, GL_POSITION, {0.1f, 0.0f, 0.0f}); 

(注意:如果是稍有不妥,我寫我的應用程序在Java中使用JOGL,所以我修剪了每行的gl和GL,以便爲所有C++人員提供更好的可讀性:))

然後我繼續繪製我的三角形等等,最後我做了一個glFlush()。

奇怪的問題是,當我運行我的應用程序時,指示燈閃爍。我在整個程序中沒有其他的glLightfv調用(除了上面提到的,在我的init方法中,我已經調試過,以確保它只能運行一次)。它閃爍得非常快,屏幕顯示撕裂。在我的場景繪圖中的任何一點,我也不會glDisable(GL_LIGHTING);不是我認爲這會導致點亮的物體閃爍。

爲了調試的目的,我還爲我的繪圖代碼註釋掉了一些塊,並且沒有任何東西似乎打破了燈光 - 當然,我編寫了所有這些並在燈光場景之前進行了測試,因此我看不到理由應該是錯的。

基本上我知道這並不多,但其他人有過這個問題嗎?有沒有我找不到的簡單解決方案?請索取任何可幫助您的其他信息。最後,如果我根本無法得到答案,那麼我可能需要分解並撰寫一個測試用例,我可以在此處發佈整個渲染代碼並演示問題。

Here is a really bad animated gif I tried to make...但它有點顯示我在說什麼,只要光是零星的。點燃的框架是它應該看起來像。另外,當我將其減慢到5fps時,它並沒有太多閃爍,更多的只是隨意地打開或關閉。我不明白...

謝謝!!

回答

6

啊哈!我發現答案已經... 我只指定了3個花車的位置,當它想要4時,記錄爲here。所以第四個數字對光線的亮度有一定的影響,這個數字是從記憶中的其他隨機區域讀取的,當然也有奇怪的事情發生。

抱歉浪費你的時間!

+0

不是浪費時間!我的團隊花了幾個星期的時間試圖找出這個問題! – IDWMaster 2011-04-02 18:15:53