Files

29 lines
906 B
C++

#pragma once
#include "dvc_config.h"
#include "shader/dvc_shader_interface.h"
class ClassicFragementShader_Phong : public davinci::FragementShaderInterface
{
public:
virtual const char* getName(void) const;
virtual bool begin(const davinci::RenderPipe* pipe, davinci::MaterialConstPtr material, const davinci::VertexDesc& veretexDesc) override;
virtual void process(const float32_t* pixelData, davinci::fVector4& color) override;
virtual void end() override;
private:
const davinci::RenderPipe* m_pipe = nullptr;
davinci::fVector4 m_materialColor = davinci::fVector4::WHITE;
float32_t m_specularShininess = 64.0f;
float32_t m_specularStrength = 5.0f;
davinci::fVector3 m_ambientLightColor = davinci::fVector3(0.2f, 0.2f, 0.2f);
davinci::fVector3 m_light0Position;
davinci::fVector3 m_light0Color;
davinci::fVector3 m_cameraPosition;
size_t m_vWorldPosOffset;
size_t m_vNormalOffset;
};