2013-02-20 59 views
1

我添加了一個光源給我的JOGL項目,當物體靜止不動時,它似乎工作得很好,當我移動攝像機時,它旋轉時逐漸變暗,這是id期待的,但儘快當它旋轉90度時,屏幕全黑,有人知道這是爲什麼嗎?我需要另一個光源嗎?我希望它會像太陽一樣行動,即照亮整個場景,但當相機位於物體的另一側時會稍微變暗。JOGL - 燈光/攝像機

照明

float light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f }; 
float light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f }; 
float light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; 
float light_position[] = { 1.0f, 1.0f, 1.0f, 0.0f }; 

gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_AMBIENT, light_ambient, 0); 
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_DIFFUSE, light_diffuse, 0); 
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_SPECULAR, light_specular, 0); 
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_POSITION, light_position, 0); 

gl.glEnable(GL2.GL_LIGHTING); 
gl.glEnable(GL2.GL_LIGHT0); 
gl.glDepthFunc(GL.GL_LESS); 
gl.glEnable(GL.GL_DEPTH_TEST); 

其次,當相機轉動部分的形狀似乎變形,看起來像完全不同的形狀,即立方體旋轉枕狀,兩側拉伸一個令人難以置信的量和它的製作我的整個物體看起來有點變形。有沒有簡單的方法來改變這一點?我試圖搞亂gluPerspective,似乎並沒有改變我想要的。有沒有辦法解決?

+0

發佈[SSCCE](http://sscce.org/)。 – genpfault 2013-02-20 21:31:15

+0

添加了照明代碼 – thrash 2013-02-20 21:35:38

回答

0

您已將漫反射光和鏡面光添加到您的場景中,但這些光不會到達遠離光源的表面。您可以添加一些環境光(目前在您的代碼片段中設置爲0,0,0),以便所有表面都可以接收一些照明。

至於變形的形狀,這實際上是一個單獨的問題,並沒有足夠的細節知道爲什麼發生這種情況。

相關問題