0

私は(パーティクルで)火を作成するためにopenglを使用します。この火で、一種の「光の効果」を作りたいです。

私はこの機能を使用しました glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission); 。それは良い音ですが、問題はこの機能がすべてのシーンを照らすことです。

特定のエリアでの放出だけが必要です。これどうやってするの ?

4

1 に答える 1

2

マテリアルを設定すると、シーン上のすべてのオブジェクトに使用されます。特定の領域にのみ使用する場合は、使用したコマンドを使用して、必要に応じてマテリアルを設定します。

glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission);

次に、このマテリアルを使用するオブジェクトを描画します。オブジェクトを描画したら、放出をデフォルトに戻します (man ページを読んだり考えたりすると、これは (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 に答える