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

#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