2012-04-23 73 views
0

我使用opengl爲了創建一個火(粒子)。有了這場火,我想創造一種「光效」。glMaterialfv在一個特定的區域

我使用的功能glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission); 這聽起來不錯,但問題是這個功能點亮所有場景。

我想只是一個特定區域的排放。我怎樣才能做到這一點 ?

回答

2

設置材質將用於場景中的所有對象。如果你只是想使用它的一個特定區域,用你所使用的命令來設置要如何材料:

glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission); 

然後畫你的對象使用該材料。 繪製完對象後,將排放改回默認值(如果您閱讀手冊頁或考慮這是(0.0,0.0,0.0,1.0):

GLfloat r_emission[4] = {0.0, 0.0, 0.0, 1.0}; 
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, r_emission);