summaryrefslogtreecommitdiffstats
path: root/vertex.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-12-18 01:00:14 -0800
committeryum <yum.food.vr@gmail.com>2025-12-18 01:00:14 -0800
commitf7c5e546c220f0f7be8ec3a9cccdb4641114cfe1 (patch)
treeb287927c2d8a0d7781a56550066f222bac96b745 /vertex.cginc
parent55a9113a1b7bc23a810606c2ed03d56c55aca060 (diff)
screw with operator ordering
Diffstat (limited to 'vertex.cginc')
-rw-r--r--vertex.cginc68
1 files changed, 38 insertions, 30 deletions
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) {