From 32e4bf3fd252648bc8acbed2340f60a860880f83 Mon Sep 17 00:00:00 2001
From: tresabhi <43380238+tresabhi@users.noreply.github.com>
Date: Tue, 11 Aug 2026 10:16:14 -0500
Subject: [PATCH] fading out fragment
---
.../components/SceneProps/index.tsx | 18 ++++++++++++------
.../SceneProps/shaders/fragment.glsl | 16 ++++++++++++++++
.../components/SceneProps/shaders/vertex.glsl | 8 ++++++++
3 files changed, 36 insertions(+), 6 deletions(-)
create mode 100644 packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/shaders/fragment.glsl
create mode 100644 packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/shaders/vertex.glsl
diff --git a/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/index.tsx b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/index.tsx
index f306c6eb1..87736566b 100644
--- a/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/index.tsx
+++ b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/index.tsx
@@ -1,7 +1,9 @@
import { invalidate } from "@react-three/fiber";
import { Quicklime, type QuicklimeEvent } from "quicklime";
import { useEffect, useRef } from "react";
-import { Mesh, MeshStandardMaterial } from "three";
+import { Mesh, MeshStandardMaterial, Vector3 } from "three";
+import fragmentShader from "./shaders/fragment.glsl?raw";
+import vertexShader from "./shaders/vertex.glsl?raw";
const SIZE = 2 ** 5;
@@ -33,11 +35,15 @@ export function SceneProps() {
ref={mesh}
>
-
);
diff --git a/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/shaders/fragment.glsl b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/shaders/fragment.glsl
new file mode 100644
index 000000000..7f83b2e0d
--- /dev/null
+++ b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/shaders/fragment.glsl
@@ -0,0 +1,16 @@
+varying vec3 vWorldPosition;
+uniform float size;
+uniform vec3 color;
+
+void main() {
+ vec3 scaled = vWorldPosition / size;
+ float radius = length(scaled.xz);
+
+ if(radius >= 1.0) {
+ discard;
+ }
+
+ float a = 1.0 - radius;
+
+ gl_FragColor = vec4(color, a);
+}
\ No newline at end of file
diff --git a/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/shaders/vertex.glsl b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/shaders/vertex.glsl
new file mode 100644
index 000000000..eb9f48934
--- /dev/null
+++ b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/SceneProps/shaders/vertex.glsl
@@ -0,0 +1,8 @@
+varying vec3 vWorldPosition;
+
+void main() {
+ vec4 worldPos = modelMatrix * vec4(position, 1.0);
+ vWorldPosition = worldPos.xyz;
+
+ gl_Position = projectionMatrix * viewMatrix * worldPos;
+}
\ No newline at end of file