From 39e4bce2548159af6f2c9ea18c6a437ccefea962 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Wed, 3 Jan 2024 12:35:10 -0600 Subject: [PATCH] feat: hide grid when looking at bottom --- src/components/InfiniteGridHelper.tsx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/components/InfiniteGridHelper.tsx b/src/components/InfiniteGridHelper.tsx index 21d0c5664..f6b4dc298 100644 --- a/src/components/InfiniteGridHelper.tsx +++ b/src/components/InfiniteGridHelper.tsx @@ -7,15 +7,12 @@ interface InfiniteGridHelperProps extends MeshProps { size2?: number; color?: THREE.Color; distance?: number; - axes?: string; } /** * Thanks, Fyrestar, for [THREE.InfiniteGridHelper](https://github.com/Fyrestar/THREE.InfiniteGridHelper/)! */ const InfiniteGridHelper = forwardRef( - ({ size1, size2, color, axes = 'xzy', distance, ...props }, ref) => { - const planeAxes = axes.slice(0, 2); - + ({ size1, size2, color, distance, ...props }, ref) => { return ( ( uniform float uDistance; void main() { - vec3 pos = position.${axes} * uDistance; + vec3 pos = position.xzy * uDistance; worldPosition = pos; gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0); } @@ -51,15 +48,15 @@ const InfiniteGridHelper = forwardRef( vec2 origin = vec2(0.0, 0.0); float getGrid(float size) { - vec2 r = worldPosition.${planeAxes} / size; + vec2 r = worldPosition.xz / size; vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r); float line = min(grid.x, grid.y); - return 1.0 - min(line, 1.0); + return (1.0 - min(line, 1.0)) * max(0.0, min(1.0, cameraPosition.y / 5.0)); } void main() { - float d = 1.0 - min(distance(origin, worldPosition.${planeAxes}) / uDistance, 1.0); + float d = 1.0 - min(distance(origin, worldPosition.xz) / uDistance, 1.0); float g1 = getGrid(uSize1); float g2 = getGrid(uSize2); gl_FragColor = vec4(uColor.rgb, mix(g2, g1, g1) * pow(d, 10.0));