#ifndef PBRBASETEXTURE_H #define PBRBASETEXTURE_H /// todo: 分离为单独的PBR命名空间 #include "glTFModel_Marco.h" #include "glTFTexture.h" #include 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