From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai <chaifix@163.com> Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/Terrain/SplatMaterials.h | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Runtime/Terrain/SplatMaterials.h (limited to 'Runtime/Terrain/SplatMaterials.h') 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 -- cgit v1.1-26-g67d0