From f7c5e546c220f0f7be8ec3a9cccdb4641114cfe1 Mon Sep 17 00:00:00 2001 From: yum Date: Thu, 18 Dec 2025 01:00:14 -0800 Subject: screw with operator ordering --- vertex.cginc | 68 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 30 deletions(-) (limited to 'vertex.cginc') diff --git a/vertex.cginc b/vertex.cginc index 40c283f..9a1ed2f 100644 --- a/vertex.cginc +++ b/vertex.cginc @@ -152,16 +152,16 @@ #if defined(_VERTEX_DEFORMATION_FBM) #define VERTEX_DEFORM_FBM_PREAMBLE \ float st = t; \ - float amplitude = _Vertex_Deformation_FBM_Amplitude; \ + float3 amplitude = _Vertex_Deformation_FBM_Amplitude; \ float gain = _Vertex_Deformation_FBM_Gain; \ float lacunarity = _Vertex_Deformation_FBM_Lacunarity; \ - float scale = _Vertex_Deformation_FBM_Scale; \ + float3 period = _Vertex_Deformation_FBM_Period; \ float octaves = _Vertex_Deformation_FBM_Octaves; \ float3 velocity = _Vertex_Deformation_FBM_Velocity #define VERTEX_DEFORM_FBM_POS \ - objPos = fbm(objPos, st, amplitude, gain, lacunarity, scale, octaves, velocity) + objPos = fbm(objPos, st, amplitude, gain, lacunarity, period, octaves, velocity) #define VERTEX_DEFORM_FBM_NORM \ - fbm_normal(objPos, objNorm, objTan, st, amplitude, gain, lacunarity, scale, octaves, velocity) + fbm_normal(objPos, objNorm, objTan, st, amplitude, gain, lacunarity, period, octaves, velocity) #else #define VERTEX_DEFORM_FBM_PREAMBLE #define VERTEX_DEFORM_FBM_POS @@ -170,29 +170,40 @@ void deform(inout float3 objPos) { const float t = getTime(); + // Tube to plane. { - VERTEX_DEFORM_TUBE_TO_PLANE_0_PREAMBLE; - VERTEX_DEFORM_TUBE_TO_PLANE_0_POS; - } - { - VERTEX_DEFORM_AXIS_ALIGN_PREAMBLE; - VERTEX_DEFORM_AXIS_ALIGN_POS; - } - { - VERTEX_DEFORM_TUBE_TO_PLANE_1_PREAMBLE; - VERTEX_DEFORM_TUBE_TO_PLANE_1_POS; + { + VERTEX_DEFORM_TUBE_TO_PLANE_0_PREAMBLE; + VERTEX_DEFORM_TUBE_TO_PLANE_0_POS; + } + { + VERTEX_DEFORM_AXIS_ALIGN_PREAMBLE; + VERTEX_DEFORM_AXIS_ALIGN_POS; + } + { + VERTEX_DEFORM_TUBE_TO_PLANE_1_PREAMBLE; + VERTEX_DEFORM_TUBE_TO_PLANE_1_POS; + } } + // Here we're a plane. { - VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE; - VERTEX_DEFORM_PLANE_TO_TUBE_0_POS; - } - { - VERTEX_DEFORM_POINT_ALIGN_PREAMBLE; - VERTEX_DEFORM_POINT_ALIGN_POS; + VERTEX_DEFORM_FBM_PREAMBLE; + VERTEX_DEFORM_FBM_POS; } + // Plane to tube. { - VERTEX_DEFORM_PLANE_TO_TUBE_1_PREAMBLE; - VERTEX_DEFORM_PLANE_TO_TUBE_1_POS; + { + VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE; + VERTEX_DEFORM_PLANE_TO_TUBE_0_POS; + } + { + VERTEX_DEFORM_POINT_ALIGN_PREAMBLE; + VERTEX_DEFORM_POINT_ALIGN_POS; + } + { + VERTEX_DEFORM_PLANE_TO_TUBE_1_PREAMBLE; + VERTEX_DEFORM_PLANE_TO_TUBE_1_POS; + } } { VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE; @@ -206,10 +217,6 @@ void deform(inout float3 objPos) { VERTEX_DEFORM_SINE_WAVES_PREAMBLE; VERTEX_DEFORM_SINE_WAVES_POS; } - { - VERTEX_DEFORM_FBM_PREAMBLE; - VERTEX_DEFORM_FBM_POS; - } } void deform_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTan) { @@ -226,6 +233,11 @@ void deform_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTa VERTEX_DEFORM_TUBE_TO_PLANE_1_PREAMBLE; VERTEX_DEFORM_TUBE_TO_PLANE_1_NORM; } + // Here we're a plane. + { + VERTEX_DEFORM_FBM_PREAMBLE; + VERTEX_DEFORM_FBM_NORM; + } { VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE; VERTEX_DEFORM_PLANE_TO_TUBE_0_NORM; @@ -250,10 +262,6 @@ void deform_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTa VERTEX_DEFORM_SINE_WAVES_PREAMBLE; VERTEX_DEFORM_SINE_WAVES_NORM; } - { - VERTEX_DEFORM_FBM_PREAMBLE; - VERTEX_DEFORM_FBM_NORM; - } } void propagateObjPos(inout v2f i) { -- cgit v1.2.3