using UnityEngine;
using UnityEngine.Rendering.Universal;
namespace WaterSystem.Data
{
///
/// This scriptable object stores teh graphical/rendering settings for a water system
///
[System.Serializable][CreateAssetMenu(fileName = "WaterSettingsData", menuName = "WaterSystem/Settings", order = 0)]
public class WaterSettingsData : ScriptableObject
{
public GeometryType waterGeomType; // The type of geometry, either vertex offset or tessellation
public LayerMask depthMapCullingMask = 1 << 10;
public ReflectionType refType = ReflectionType.PlanarReflection; // How the reflecitons are generated
// planar
public PlanarReflections.PlanarReflectionSettings planarSettings; // Planar reflection settings
// cubemap
public Cubemap cubemapRefType; // custom cubemap reference
public bool isInfinite; // Is the water infinite (shader incomplete)
public Vector4 originOffset = new Vector4(0f, 0f, 500f, 500f);
}
///
/// The type of reflection source, custom cubemap, closest refelction probe, planar reflection
///
[System.Serializable]
public enum ReflectionType
{
Cubemap,
ReflectionProbe,
PlanarReflection
}
///
/// The type of geometry, either vertex offset or tessellation
///
[System.Serializable]
public enum GeometryType
{
VertexOffset,
Tesselation
}
}