blob: 27b6696ea4507cbe4a05ca6a9840a327baf28616 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
|