plumageRender/src/pbr/PbrBaseTexture.h

70 lines
1.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef PBRBASETEXTURE_H
#define PBRBASETEXTURE_H
/// todo 分离为单独的PBR命名空间
#include "glTFModel_Marco.h"
#include "glTFTexture.h"
#include <glm/glm.hpp>
GLTFLOADER_NAMESPACE_BEGIN
/// @brief todo拆分texture基类摆脱gltf限制
class PbrBaseTexture
{
public:
PbrBaseTexture();
~PbrBaseTexture();
void setBaseColorTexture(glTFTexture* value);
glTFTexture* getBaseColorTexture();
void setBaseColorFactor(glm::vec4 value);
glm::vec4 getBaseColorFactor();
void setNormalTexture(glTFTexture* value);
glTFTexture* getNormalTexture();
void setMetallicRoughnessTexture(glTFTexture* value);
glTFTexture* getMetalicRoughnessTexture();
void setMetallicFactor(float value);
float getMetallicFactor();
void setRoughnessFactor(float value);
float getRoughnessFactor();
void setEmissiveTexture(glTFTexture* value);
glTFTexture* getEmissiveTexture();
void setEmissiveFactor(glm::vec4 value);
glm::vec4 getEmissiveFactor();
void setOcclusionTexture(glTFTexture* value);
glTFTexture* getOcclusionTexture();
private:
glTFTexture* m_baseColorTexture = nullptr;
glm::vec4 m_baseColorFactor = glm::vec4(1.0f);
glTFTexture* m_normalTexture = nullptr;
glTFTexture* m_metallicRoughnessTexture = nullptr;
float m_metallicFactor = 1.0f;
float m_roughnessFactor = 1.0f;
glTFTexture* m_emissiveTexture = nullptr;
glm::vec4 m_emissiveFactor = glm::vec4(1.0f);
glTFTexture* m_occlusionTexture = nullptr;
};
GLTFLOADER_NAMESPACE_END
#endif // !PBRBASETEXTURE_H