2025-04-04 14:44:53 +02:00
|
|
|
#pragma once
|
|
|
|
|
#include "Asset.h"
|
|
|
|
|
#include "Graphics/Texture.h"
|
|
|
|
|
|
|
|
|
|
namespace Seele {
|
|
|
|
|
class EnvironmentMapAsset : public Asset {
|
|
|
|
|
public:
|
|
|
|
|
static constexpr uint64 IDENTIFIER = 0x80;
|
|
|
|
|
EnvironmentMapAsset();
|
|
|
|
|
EnvironmentMapAsset(std::string_view folderPath, std::string_view name);
|
|
|
|
|
virtual ~EnvironmentMapAsset();
|
|
|
|
|
virtual void save(ArchiveBuffer& buffer) const override;
|
|
|
|
|
virtual void load(ArchiveBuffer& buffer) override;
|
2025-04-06 09:57:47 +02:00
|
|
|
Gfx::PTextureCube getSkybox() const { return skybox; }
|
|
|
|
|
Gfx::PTextureCube getIrradianceMap() const { return irradianceMap; }
|
2025-07-06 20:57:09 +02:00
|
|
|
Gfx::PTextureCube getPrefilteredMap() const { return prefilteredMap; }
|
2025-04-04 14:44:53 +02:00
|
|
|
private:
|
2025-04-06 09:57:47 +02:00
|
|
|
Gfx::OTextureCube skybox;
|
|
|
|
|
Gfx::OTextureCube irradianceMap;
|
2025-07-06 20:57:09 +02:00
|
|
|
Gfx::OTextureCube prefilteredMap;
|
2025-04-04 14:44:53 +02:00
|
|
|
friend class EnvironmentLoader;
|
|
|
|
|
};
|
|
|
|
|
} // namespace Seele
|