私は(パーティクルで)火を作成するためにopenglを使用します。この火で、一種の「光の効果」を作りたいです。
私はこの機能を使用しました glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission);
。それは良い音ですが、問題はこの機能がすべてのシーンを照らすことです。
特定のエリアでの放出だけが必要です。これどうやってするの ?
マテリアルを設定すると、シーン上のすべてのオブジェクトに使用されます。特定の領域にのみ使用する場合は、使用したコマンドを使用して、必要に応じてマテリアルを設定します。
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);