glMaterialfv在一个特定的区域

问题描述:

我使用opengl为了创建一个火(粒子)。有了这场火,我想创造一种“光效”。glMaterialfv在一个特定的区域

我使用的功能glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission); 这听起来不错,但问题是这个功能点亮所有场景。

我想只是一个特定区域的排放。我怎样才能做到这一点 ?

设置材质将用于场景中的所有对象。如果你只是想使用它的一个特定区域,用你所使用的命令来设置要如何材料:

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);