我使用opengl来创建一个火(带有粒子)。 有了这场火,我想创造出一种光效"。
我使用了函数glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission);
这听起来不错,但问题是这个功能在整个场景都很亮。
我想要一个特定区域的发射。我怎么能这样做?
答案 0 :(得分: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);