#pragma once #include "dvc_config.h" #include "shader/dvc_shader_interface.h" class ClassicFragementShader_Phong : public davinci::PixelShaderInterface { public: virtual const char* getName(void) const; virtual void begin(const davinci::RenderPipe* pipe, davinci::MaterialConstPtr material); virtual void process(const davinci::VertexDesc& veretexDesc, const float32_t* pixelData, davinci::fVector4& color); virtual void end(); 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::ZERO; davinci::fVector3 m_light0Color = davinci::fVector3::WHITE; davinci::fVector3 m_cameraPosition = davinci::fVector3::ZERO; };