0

我使用 opengl 来产生火焰(带有粒子)。有了这个火,我想创造一种“光效”。

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

我想要一个特定区域的发射。我怎样才能做到这一点 ?

4

1 回答 1

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);
于 2012-04-23T18:21:16.637 回答