From c6c0e02fea5401ddcd95d7e5d608fc139dc48952 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Sat, 13 Jun 2026 20:26:43 -0500 Subject: [PATCH] ao maps --- packages/game/Models/MonoGltf.cs | 17 ++++++++++------- .../src/components/TankopediaSandbox/index.tsx | 5 +++-- packages/website-ue/src/hooks/useTankModel.ts | 2 -- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/game/Models/MonoGltf.cs b/packages/game/Models/MonoGltf.cs index f8ad57d3c..350476684 100644 --- a/packages/game/Models/MonoGltf.cs +++ b/packages/game/Models/MonoGltf.cs @@ -34,11 +34,11 @@ public class MonoGltf readonly MaterialBuilder emptyMaterial = new("empty_material"); readonly ExporterOptions options = new() { TextureFormat = ETextureFormat.Jpeg }; - public static readonly Dictionary knownChannels = new() + public static readonly Dictionary knownChannels = new() { - { "BaseColor", KnownChannel.BaseColor }, - { "Normal", KnownChannel.Normal }, - { "RMAO", KnownChannel.MetallicRoughness }, + { "BaseColor", [KnownChannel.BaseColor] }, + { "Normal", [KnownChannel.Normal] }, + { "RMAO", [KnownChannel.MetallicRoughness, KnownChannel.Occlusion] }, // { "CDE", ?? }, }; readonly byte[] stubBytes = File.ReadAllBytes("../game/stub/small.png"); @@ -152,7 +152,7 @@ public class MonoGltf foreach (var parameterTexture in materialData.Parameters.Textures) { - if (knownChannels.TryGetValue(parameterTexture.Key, out var channel)) + if (knownChannels.TryGetValue(parameterTexture.Key, out var channels)) { var texture = parameterTexture.Value; var name = Path.GetFileNameWithoutExtension(texture.GetPathName()); @@ -163,8 +163,11 @@ public class MonoGltf var uniqueBytes = (byte[])stubBytes.Clone(); var stubImage = new MemoryImage(uniqueBytes); - materialBuilder.WithChannelImage(channel, stubImage); - materialBuilder.GetChannel(channel).Texture.PrimaryImage.Name = path; + foreach (var channel in channels) + { + materialBuilder.WithChannelImage(channel, stubImage); + materialBuilder.GetChannel(channel).Texture.PrimaryImage.Name = path; + } } } } diff --git a/packages/website-ue/src/components/TankopediaSandbox/index.tsx b/packages/website-ue/src/components/TankopediaSandbox/index.tsx index 583754b9d..ebf17cc70 100644 --- a/packages/website-ue/src/components/TankopediaSandbox/index.tsx +++ b/packages/website-ue/src/components/TankopediaSandbox/index.tsx @@ -18,6 +18,7 @@ export function TankopediaSandbox({ parameters }: TankopediaSandboxProps) {
- + - + diff --git a/packages/website-ue/src/hooks/useTankModel.ts b/packages/website-ue/src/hooks/useTankModel.ts index 592134944..5c0fd4240 100644 --- a/packages/website-ue/src/hooks/useTankModel.ts +++ b/packages/website-ue/src/hooks/useTankModel.ts @@ -16,8 +16,6 @@ export function useTankModel(url: string, map: Record) { } } - console.log(gltf.nodes); - for (const node of Object.values(gltf.nodes)) { if (node instanceof Mesh) { node.castShadow = true;