Files
Seele/res/shaders/WaterCommon.slang
T
2024-08-26 22:35:33 +02:00

73 lines
1.4 KiB
Plaintext

struct WaterPayload
{
float3 offset;
float extent;
uint numMeshes;
};
struct WaterTile
{
int2 location;
float extent;
float height;
}
struct WaterVertex
{
float4 position_CS : SV_Position;
float3 position_WS : POSITION0;
float2 texCoord : TEXCOORD0;
float depth : DEPTH;
uint lod : BONEINDEX;
};
struct MaterialParams
{
float3 sunDirection;
float displacementDepthAttenuation;
float foamSubtract0;
float foamSubtract1;
float foamSubtract2;
float foamSubtract3;
float tile1;
float tile2;
float tile3;
float tile4;
float normalStrength;
float foamDepthAttenuation;
float normalDepthAttenuation;
float roughness;
float3 sunIrradiance;
float foamRoughnessModifier;
float3 scatterColor;
float environmentLightStrength;
float3 bubbleColor;
float heightModifier;
float bubbleDensity;
float wavePeakScatterStrength;
float scatterStrength;
float scatterShadowStrength;
uint contributeDisplacement1;
uint contributeDisplacement2;
uint contributeDisplacement3;
uint contributeDisplacement4;
float3 foamColor;
Texture2DArray displacementTextures;
Texture2DArray<float2> slopeTextures;
TextureCube environmentMap;
SamplerState sampler;
StructuredBuffer<WaterTile> tiles;
};
layout(set = 1)
ParameterBlock<MaterialParams> pWaterMaterial;