diff --git a/src/app/tools/tankopedia/[id]/components/Model/TankDisplay.tsx b/src/app/tools/tankopedia/[id]/components/Model/TankDisplay.tsx
index d9d8e5076..488f2198b 100644
--- a/src/app/tools/tankopedia/[id]/components/Model/TankDisplay.tsx
+++ b/src/app/tools/tankopedia/[id]/components/Model/TankDisplay.tsx
@@ -142,7 +142,11 @@ export function TankDisplay() {
}
>
- {mode === 'armor' && }
+ {mode === 'armor' && (
+
+
+
+ )}
diff --git a/src/app/tools/tankopedia/[id]/components/Model/components/TankArmor.tsx b/src/app/tools/tankopedia/[id]/components/Model/components/TankArmor.tsx
index 2f1a6bcf0..3ba42fad4 100644
--- a/src/app/tools/tankopedia/[id]/components/Model/components/TankArmor.tsx
+++ b/src/app/tools/tankopedia/[id]/components/Model/components/TankArmor.tsx
@@ -16,7 +16,7 @@ import { Lighting } from '../../Lighting';
interface TankArmorProps extends GroupProps {}
-export function TankArmor(props: TankArmorProps) {
+export function TankArmor({ ...props }: TankArmorProps) {
const [awaitedModelDefinitions, setAwaitedModelDefinitions] = useState<
ModelDefinitions | undefined
>(undefined);
@@ -91,10 +91,12 @@ export function TankArmor(props: TankArmorProps) {
const armorId = parseInt(node.name.match(/.+_armor_(\d+)/)![1]);
const isVisible = isHull;
const thickness = tankModelDefinition.armor.thickness[armorId];
+ const isSpaced = tankModelDefinition.armor.spaced?.includes(armorId);
if (!isVisible || thickness === undefined) return null;
return (
state.model.opaqueArmor);
return (
<>
-
-
-
+ {!spaced && (
+
+
+
+ )}
-
+
>
diff --git a/src/components/ArmorMesh/shaders/fragment.glsl b/src/components/ArmorMesh/shaders/fragment.glsl
index 83fa201bf..fefe55c1a 100644
--- a/src/components/ArmorMesh/shaders/fragment.glsl
+++ b/src/components/ArmorMesh/shaders/fragment.glsl
@@ -6,6 +6,7 @@ uniform float penetration;
uniform float ricochet;
uniform float caliber;
uniform float normalization;
+uniform bool spaced;
void main() {
vec3 normalizedNormal = normalize(vNormal);
@@ -41,5 +42,11 @@ void main() {
}
}
- csm_FragColor = vec4(1.0, 0.0, 0.0, (1.0 - penetrationChance) * 0.5);
+ float alpha = (1.0 - penetrationChance) * 0.5;
+
+ if (spaced) {
+ csm_FragColor = vec4(0.0, 0.0, 1.0, alpha);
+ } else {
+ csm_FragColor = vec4(1.0, 0.0, 0.0, alpha);
+ }
}
\ No newline at end of file