You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.8 KiB
59 lines
1.8 KiB
#ifndef SHADER_PASS_WATER_COMMON
|
|
#define SHADER_PASS_WATER_COMMON
|
|
|
|
// #pragma enable_d3d11_debug_symbols
|
|
|
|
// Given that the geometry is either procedural or a mesh given by the user, we only need this as an input
|
|
struct VaryingsToPS
|
|
{
|
|
VaryingsMeshToPS vmesh;
|
|
};
|
|
|
|
struct PackedVaryingsToPS
|
|
{
|
|
PackedVaryingsMeshToPS vmesh;
|
|
|
|
// SGVs must be packed after all non-SGVs have been packed.
|
|
// If there are several SGVs, they are packed in the order of HLSL declaration.
|
|
|
|
UNITY_VERTEX_OUTPUT_STEREO
|
|
|
|
#if defined(PLATFORM_SUPPORTS_PRIMITIVE_ID_IN_PIXEL_SHADER) && SHADER_STAGE_FRAGMENT
|
|
#if (defined(VARYINGS_NEED_PRIMITIVEID) || (SHADERPASS == SHADERPASS_FULL_SCREEN_DEBUG))
|
|
uint primitiveID : SV_PrimitiveID;
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(SHADER_STAGE_FRAGMENT)
|
|
FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
|
|
#endif
|
|
};
|
|
|
|
PackedVaryingsToPS PackVaryingsToPS(VaryingsToPS input)
|
|
{
|
|
PackedVaryingsToPS output;
|
|
output.vmesh = PackVaryingsMeshToPS(input.vmesh);
|
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
|
return output;
|
|
}
|
|
|
|
// We only need the tessellation version
|
|
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/WaterVertexTessellation.hlsl"
|
|
|
|
FragInputs UnpackVaryingsToFragInputs(PackedVaryingsToPS packedInput)
|
|
{
|
|
FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
|
|
|
|
#if defined(PLATFORM_SUPPORTS_PRIMITIVE_ID_IN_PIXEL_SHADER) && SHADER_STAGE_FRAGMENT
|
|
#if (defined(VARYINGS_NEED_PRIMITIVEID) || (SHADERPASS == SHADERPASS_FULL_SCREEN_DEBUG))
|
|
input.primitiveID = packedInput.primitiveID;
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(VARYINGS_NEED_CULLFACE) && SHADER_STAGE_FRAGMENT
|
|
input.isFrontFace = IS_FRONT_VFACE(packedInput.cullFace, true, false);
|
|
#endif
|
|
|
|
return input;
|
|
}
|
|
#endif // SHADER_PASS_WATER_COMMON
|