diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Terrain/SplatMaterials.h |
Diffstat (limited to 'Runtime/Terrain/SplatMaterials.h')
-rw-r--r-- | Runtime/Terrain/SplatMaterials.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Runtime/Terrain/SplatMaterials.h b/Runtime/Terrain/SplatMaterials.h new file mode 100644 index 0000000..27b6696 --- /dev/null +++ b/Runtime/Terrain/SplatMaterials.h @@ -0,0 +1,41 @@ +#pragma once +#include "Configuration/UnityConfigure.h" + +#if ENABLE_TERRAIN + +#include "TerrainData.h" +#include "Runtime/Shaders/Material.h" +#include "Runtime/Shaders/Shader.h" + +enum{ + kTerrainShaderBaseMap, + kTerrainShaderFirst, + kTerrainShaderAdd, + kTerrainShaderCount +}; + + +class SplatMaterials +{ +public: + SplatMaterials (PPtr<TerrainData> terrain); + ~SplatMaterials (); + + Material** GetMaterials (Material* templateMat, int &materialCount); + Material* GetSplatBaseMaterial (Material* templateMat); + void Cleanup (); + +private: + void LoadSplatShaders (Material* templateMat); + void SetupSplat (Material &m, int splatIndex, int index, bool setNormalMap); + +private: + PPtr<TerrainData> m_TerrainData; + Shader *m_Shaders[kTerrainShaderCount]; + + Material* m_AllocatedMaterials[32]; + Material* m_BaseMapMaterial; + Material* m_CurrentTemplateMaterial; +}; + +#endif // ENABLE_TERRAIN |