Supermodel/Src/Graphics/New3D/R3DScrollFog.h
Ian Curtis c5f9a3ad26 Amend the ambient fog logic to be disabled if fog density/start is set to zero. This fixes a regression where the sky stops drawing in lost world.
Rewrite the scroll fog shader slightly. Scroll fog is a 2d layer, it has no depth, or can be considered to be drawn at infinity, therefore is not effected by the viewport light. The scroll attenatuion value also I think attenatutes the scroll fog alpha value. This fixes various effects in emergency call ambulance.
2023-10-24 10:17:15 +01:00

38 lines
606 B
C++

#ifndef _R3DSCROLLFOG_H_
#define _R3DSCROLLFOG_H_
#include "Util/NewConfig.h"
#include <GL/glew.h>
namespace New3D {
class R3DScrollFog
{
public:
R3DScrollFog(const Util::Config::Node &config);
~R3DScrollFog();
void DrawScrollFog(float rbga[4], float attenuation, float ambient);
private:
void AllocResources();
void DeallocResources();
const Util::Config::Node &m_config;
GLuint m_shaderProgram;
GLuint m_vertexShader;
GLuint m_fragmentShader;
GLint m_locFogColour;
GLint m_locFogAttenuation;
GLint m_locFogAmbient;
GLuint m_vao;
};
}
#endif