#ifndef __VERTEX_INC #define __VERTEX_INC #include "vertex_deformation.hlsl" void deform(inout float3 objPos) { float t_eps = 1e-9; #if defined(_VERTEX_DEFORMATION_XZ_TUBE) { float t = clamp(_Vertex_Deformation_XZ_Tube_t, -1+t_eps, 1-t_eps);; objPos = plane_to_tube(objPos.xyz, t); } #endif // _VERTEX_DEFORMATION_XZ_TUBE #if defined(_VERTEX_DEFORMATION_YZ_TUBE) { float t = clamp(_Vertex_Deformation_YZ_Tube_t, -1+t_eps, 1-t_eps); objPos = plane_to_tube(objPos.yxz, t); objPos = objPos.yxz; } #endif // _VERTEX_DEFORMATION_YZ_TUBE #if defined(_VERTEX_DEFORMATION_XY_TUBE) { float t = clamp(_Vertex_Deformation_XY_Tube_t, -1+t_eps, 1-t_eps); objPos = plane_to_tube(objPos.xzy, t); objPos = objPos.xzy; } #endif // _VERTEX_DEFORMATION_XY_TUBE #if defined(_VERTEX_DEFORMATION_SEAL) { float A = _Vertex_Deformation_Seal_A; float k = _Vertex_Deformation_Seal_k; float t = _Time[3] * _Vertex_Deformation_Seal_t; objPos = seal(objPos.xyz, A, k, t); } #endif // _VERTEX_DEFORMATION_SEAL } void deform_normal(float3 objPos, inout float3 objNorm, inout float3 objTan) { #if defined(_VERTEX_DEFORMATION_XZ_TUBE) { float t = _Vertex_Deformation_XZ_Tube_t; plane_to_tube_normal(objPos, objNorm, objTan, t); } #endif // _VERTEX_DEFORMATION_XZ_TUBE #if defined(_VERTEX_DEFORMATION_YZ_TUBE) { float t = _Vertex_Deformation_YZ_Tube_t; plane_to_tube_normal(objPos.yxz, objNorm.yxz, objTan.yxz, t); } #endif // _VERTEX_DEFORMATION_YZ_TUBE #if defined(_VERTEX_DEFORMATION_XY_TUBE) { float t = _Vertex_Deformation_XY_Tube_t; plane_to_tube_normal(objPos.xzy, objNorm.xzy, objTan.xzy, t); } #endif // _VERTEX_DEFORMATION_XY_TUBE #if defined(_VERTEX_DEFORMATION_SEAL) { float A = _Vertex_Deformation_Seal_A; float k = _Vertex_Deformation_Seal_k; float t = _Time[0] * _Vertex_Deformation_Seal_t; seal_normal(objPos, objNorm, objTan, A, k, t); } #endif // _VERTEX_DEFORMATION_SEAL } void propagateObjPos(inout v2f i) { i.worldPos = mul(unity_ObjectToWorld, float4(i.objPos, 1)); i.pos = UnityObjectToClipPos(i.objPos); i.eyeVec.xyz = i.worldPos - _WorldSpaceCameraPos; } #endif // __VERTEX_INC