From 1f378137f1248744def4b7bed5347a4af04d57cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Mon, 8 Jan 2024 19:13:54 -0600 Subject: [PATCH] fix: backwards vertex format --- public/test/5137.glb | Bin 17585604 -> 17719076 bytes scripts/buildAssets/tankArmors.ts | 2 +- src/core/blitz/extractArmor.ts | 5 --- src/core/streams/scg.ts | 67 +++++++++++++++++------------- 4 files changed, 40 insertions(+), 34 deletions(-) diff --git a/public/test/5137.glb b/public/test/5137.glb index f2622dfed442357bd97edc0007504017758f0afd..53b78306de704485fd1f30255ea3feeb3b27ee89 100644 GIT binary patch delta 123149 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

Z>SKj3D5{u=wXxRvk$eT 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 bO9y`G$SrrJ#scL diff --git a/scripts/buildAssets/tankArmors.ts b/scripts/buildAssets/tankArmors.ts index d8a1ab748..e80b9a36c 100644 --- a/scripts/buildAssets/tankArmors.ts +++ b/scripts/buildAssets/tankArmors.ts @@ -36,7 +36,7 @@ export async function buildTankArmors() { const armor = await extractArmor(DATA, `${nation}-${tankKey}`); - // await nodeIO.write('temp/armor/index.gltf', armor); + await nodeIO.write('temp/armor/index.gltf', armor); // writeFile('test.sc2.json', JSON.stringify(sc2, null, 2)); } diff --git a/src/core/blitz/extractArmor.ts b/src/core/blitz/extractArmor.ts index 785701ae6..7be3c4c23 100644 --- a/src/core/blitz/extractArmor.ts +++ b/src/core/blitz/extractArmor.ts @@ -1,5 +1,4 @@ import { Document, Node, Scene } from '@gltf-transform/core'; -import { writeFile } from 'fs/promises'; import { range, times } from 'lodash'; import { Matrix4, @@ -51,12 +50,8 @@ export async function extractArmor( const scene = document.createScene(); const buffer = document.createBuffer(); - writeFile('test.sc2.json', JSON.stringify(sc2, null, 2)); - function parseHierarchies(hierarchies: Hierarchy[], parent: Scene | Node) { hierarchies.forEach((hierarchy) => { - console.log(`hierarchy: ${hierarchy.name}`); - const node = document.createNode(hierarchy.name); const components = times( hierarchy.components.count, diff --git a/src/core/streams/scg.ts b/src/core/streams/scg.ts index 5162a1570..cbc693dcc 100644 --- a/src/core/streams/scg.ts +++ b/src/core/streams/scg.ts @@ -1,4 +1,3 @@ -import { writeFile } from 'fs/promises'; import { ScpgStream, VertexAttribute } from './scpg'; interface PolygonGroupRaw { @@ -67,7 +66,23 @@ export class ScgStream extends ScpgStream { polygonGroupsRaw.push(polygonGroupRaw); } - writeFile('test.scg.json', JSON.stringify({ polygonGroupsRaw }, null, 2)); + // writeFile( + // 'test.scg.txt', + // polygonGroupsRaw + // .map((polygonGroupRaw) => { + // const floats: number[] = []; + // const stream = new BufferStream(polygonGroupRaw.vertices); + + // while (stream.readRemainingLength()) { + // floats.push(stream.float()); + // } + + // return `format: ${polygonGroupRaw.vertexFormat.toString( + // 2, + // )}\n\n${floats.join('\n')}`; + // }) + // .join('\n\n#####\n\n'), + // ); polygonGroupsRaw.forEach((polygonGroupRaw) => { const indicesStream = new ScpgStream(polygonGroupRaw.indices); @@ -83,29 +98,21 @@ export class ScgStream extends ScpgStream { const verticesStream = new ScpgStream(polygonGroupRaw.vertices); const vertices: BlitzkriegVertex[] = []; - const stride = - ScgStream.vertexStride(polygonGroupRaw.vertexFormat) * - polygonGroupRaw.vertexCount; + const { format, stride } = ScgStream.parseVertexFormat( + polygonGroupRaw.vertexFormat, + ); + const strideBasedSize = stride * polygonGroupRaw.vertexCount; - if (verticesStream.stream.length !== stride) { + if (verticesStream.stream.length !== strideBasedSize) { console.warn( - `Vertex stride mismatch; expected ${stride}, got ${verticesStream.stream.length}; skipping...`, + `Vertex stride mismatch; expected ${strideBasedSize}, got ${verticesStream.stream.length}; skipping...`, ); return; } - const vertexFormat = ( - polygonGroupRaw.vertexFormat - .toString(2) - .split('') - .map((bitString, index) => - bitString === '1' ? index : null, - ) as VertexAttribute[] - ).filter((type) => type !== null); - for (let index = 0; index < polygonGroupRaw.vertexCount; index++) { - vertices[index] = vertexFormat.map((attribute) => { + vertices[index] = format.map((attribute) => { return { attribute, value: verticesStream.vectorN( @@ -128,18 +135,22 @@ export class ScgStream extends ScpgStream { return polygonGroups; } - static vertexStride(vertexFormat: number) { - const flags = vertexFormat.toString(2); + static parseVertexFormat(formatInt: number) { + const format: VertexAttribute[] = []; + let stride = 0; - return Object.values(VertexAttribute) + Object.values(VertexAttribute) .filter((value) => typeof value === 'number') - .reduce( - (accumulator, attribute) => - flags[attribute as VertexAttribute] === '1' - ? accumulator + - vertexAttributeVectorSizes[attribute as VertexAttribute] * 4 - : accumulator, - 0, - ); + .forEach((attributeUntyped) => { + const attribute = attributeUntyped as VertexAttribute; + const mask = 1 << attribute; + + if (formatInt & mask) { + format.push(attribute); + stride += vertexAttributeVectorSizes[attribute] * 4; + } + }); + + return { format, stride }; } }