(end lightning) smooth grid snapping for orb

This commit is contained in:
Xonk
2026-08-17 23:35:57 -04:00
parent 4b9e25d1fc
commit e8e06e9bdc
2 changed files with 13 additions and 11 deletions
+7 -11
View File
@@ -63,6 +63,7 @@ SOFTWARE.*/
//----------------------------------------------------------------------------------------
uniform vec4 randomPosXYZ;
uniform vec3 snapToGrid;
// vec3 RandomPosition = hash31(frameTimeCounter);
float vortexBoundRange = 300.0;
@@ -84,8 +85,7 @@ vec3 LightSourcePosition(vec3 worldPos, vec3 cameraPos, float vortexBounds, out
vec3 lightningPos = worldPos - cameraPos - ManualLightPos;
// snap-to coordinates in worldspace.
float cellSize = 200.0;
lightningPos += fract(cameraPos/cellSize)*cellSize - cellSize*0.5;
lightningPos += snapToGrid;
// make the position offset to random places (RNG.xyz from non-clearing buffer).
vec3 lightningBoltPos = texelFetch(colortex4,ivec2(2,1),0).xyz * 2.0 - 1.0;
@@ -94,9 +94,8 @@ vec3 LightSourcePosition(vec3 worldPos, vec3 cameraPos, float vortexBounds, out
#ifdef THE_ORB
cellSize = 200.0;
vec3 orbpos = (worldPos - cameraPos - ManualLightPos);
orbpos += fract(cameraPos/cellSize)*cellSize - cellSize*0.5;
vec3 orbpos = (worldPos - cameraPos - ManualLightPos) - lightningBoltPos;
orbpos += snapToGrid;
return orbpos;
#else
@@ -112,15 +111,12 @@ vec3 LightSourcePosition_VL(vec3 worldPos, vec3 cameraPos, vec3 lightningBoltPos
vec3 lightningPos = worldPos - cameraPos - ManualLightPos;
// snap-to coordinates in worldspace.
float cellSize = 200.0;
lightningPos += fract(cameraPos/cellSize)*cellSize - cellSize*0.5;
lightningPos += snapToGrid;
lightningPos -= lightningBoltPos;
#ifdef THE_ORB
cellSize = 200.0;
// vec3 orbpos = worldPos - cameraPos - ManualLightPos;// - vec3(sin(frameTimeCounter), cos(frameTimeCounter), cos(frameTimeCounter))*100;
vec3 orbpos = (worldPos - cameraPos - ManualLightPos);// - vec3(sin(frameTimeCounter), cos(frameTimeCounter), cos(frameTimeCounter))*100;
orbpos += fract(cameraPos/cellSize)*cellSize - cellSize*0.5;
vec3 orbpos = (worldPos - cameraPos - ManualLightPos) - lightningBoltPos;
orbpos += snapToGrid;
return orbpos;
#else
+6
View File
@@ -708,6 +708,12 @@ variable.float.randomValY = smooth(random()*2.0-1.0,transitionTrig,transitionTri
variable.float.randomValZ = smooth(random()*2.0-1.0,transitionTrig,transitionTrig)
uniform.vec4.randomPosXYZ = vec4(randomValX,randomValY,randomValZ, smooth(if(randomness > 0.4, 0.0,1.0),0.5,1.0) )
variable.float.cellSize = 200.0
variable.float.camSnapSmoothX = smooth(frac(cameraPosition.x/cellSize)*cellSize - cellSize*0.5,2,2)
variable.float.camSnapSmoothY = smooth(frac(cameraPosition.y/cellSize)*cellSize - cellSize*0.5,2,2)
variable.float.camSnapSmoothZ = smooth(frac(cameraPosition.z/cellSize)*cellSize - cellSize*0.5,2,2)
uniform.vec3.snapToGrid = vec3(camSnapSmoothX,camSnapSmoothY,camSnapSmoothZ)
# photon stuff
uniform.vec2.view_res = vec2(viewWidth, viewHeight)
uniform.vec2.view_pixel_size = vec2(1.0 / viewWidth, 1.0 / viewHeight)