@flighthq/scene3d-formats 0.2.1-next.840.857425c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/awd2Inflate.d.ts +4 -0
- package/dist/awd2Inflate.d.ts.map +1 -0
- package/dist/awd2Inflate.js +249 -0
- package/dist/awd2Inflate.js.map +1 -0
- package/dist/awd2Parse.d.ts +7 -0
- package/dist/awd2Parse.d.ts.map +1 -0
- package/dist/awd2Parse.js +1533 -0
- package/dist/awd2Parse.js.map +1 -0
- package/dist/awd2Schema.d.ts +44 -0
- package/dist/awd2Schema.d.ts.map +1 -0
- package/dist/awd2Schema.js +67 -0
- package/dist/awd2Schema.js.map +1 -0
- package/dist/gltfParse.d.ts +9 -0
- package/dist/gltfParse.d.ts.map +1 -0
- package/dist/gltfParse.js +1456 -0
- package/dist/gltfParse.js.map +1 -0
- package/dist/gltfPunctualLights.d.ts +3 -0
- package/dist/gltfPunctualLights.d.ts.map +1 -0
- package/dist/gltfPunctualLights.js +103 -0
- package/dist/gltfPunctualLights.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/md2Parse.d.ts +5 -0
- package/dist/md2Parse.d.ts.map +1 -0
- package/dist/md2Parse.js +408 -0
- package/dist/md2Parse.js.map +1 -0
- package/dist/md2Schema.d.ts +12 -0
- package/dist/md2Schema.d.ts.map +1 -0
- package/dist/md2Schema.js +193 -0
- package/dist/md2Schema.js.map +1 -0
- package/dist/md5AnimParse.d.ts +3 -0
- package/dist/md5AnimParse.d.ts.map +1 -0
- package/dist/md5AnimParse.js +385 -0
- package/dist/md5AnimParse.js.map +1 -0
- package/dist/md5Parse.d.ts +6 -0
- package/dist/md5Parse.d.ts.map +1 -0
- package/dist/md5Parse.js +635 -0
- package/dist/md5Parse.js.map +1 -0
- package/dist/mtlParse.d.ts +3 -0
- package/dist/mtlParse.d.ts.map +1 -0
- package/dist/mtlParse.js +256 -0
- package/dist/mtlParse.js.map +1 -0
- package/dist/objParse.d.ts +5 -0
- package/dist/objParse.d.ts.map +1 -0
- package/dist/objParse.js +464 -0
- package/dist/objParse.js.map +1 -0
- package/dist/sceneSkeleton.d.ts +3 -0
- package/dist/sceneSkeleton.d.ts.map +1 -0
- package/dist/sceneSkeleton.js +34 -0
- package/dist/sceneSkeleton.js.map +1 -0
- package/dist/shared.d.ts +18 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +143 -0
- package/dist/shared.js.map +1 -0
- package/dist/threeDsParse.d.ts +4 -0
- package/dist/threeDsParse.d.ts.map +1 -0
- package/dist/threeDsParse.js +718 -0
- package/dist/threeDsParse.js.map +1 -0
- package/package.json +55 -0
- package/src/awd2Inflate.test.ts +118 -0
- package/src/awd2Parse.test.ts +2431 -0
- package/src/gltfParse.test.ts +2339 -0
- package/src/gltfPunctualLights.test.ts +184 -0
- package/src/gltfTreeShaking.test.ts +45 -0
- package/src/md2Parse.test.ts +1033 -0
- package/src/md5AnimParse.test.ts +673 -0
- package/src/md5Parse.test.ts +1094 -0
- package/src/mtlParse.test.ts +244 -0
- package/src/objParse.test.ts +690 -0
- package/src/sceneSkeleton.test.ts +35 -0
- package/src/shared.test.ts +210 -0
- package/src/threeDsParse.test.ts +1089 -0
package/dist/shared.js
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { CANONICAL_SKINNED_MESH_GEOMETRY_LAYOUT } from '@flighthq/mesh';
|
|
2
|
+
import { createTexture } from '@flighthq/texture';
|
|
3
|
+
import { ResourceResolutionState, ImageResourceReferenceKind } from '@flighthq/types';
|
|
4
|
+
export const CANONICAL_FLOATS_PER_VERTEX = 12;
|
|
5
|
+
export const CANONICAL_LAYOUT = {
|
|
6
|
+
attributes: [
|
|
7
|
+
{ byteOffset: 0, format: 'float32x3', semantic: 'position' },
|
|
8
|
+
{ byteOffset: 12, format: 'float32x3', semantic: 'normal' },
|
|
9
|
+
{ byteOffset: 24, format: 'float32x4', semantic: 'tangent' },
|
|
10
|
+
{ byteOffset: 40, format: 'float32x2', semantic: 'uv0' },
|
|
11
|
+
],
|
|
12
|
+
stride: 48,
|
|
13
|
+
};
|
|
14
|
+
// Floats per vertex in the canonical skinned record (position/normal/tangent/uv0/joints0/weights0),
|
|
15
|
+
// derived from the shared skinned layout so no importer's interleave stride can drift from it.
|
|
16
|
+
export const SKINNED_FLOATS_PER_VERTEX = CANONICAL_SKINNED_MESH_GEOMETRY_LAYOUT.stride / 4;
|
|
17
|
+
// The joint influences per vertex the skinned layout carries (linear-blend skinning's standard 4).
|
|
18
|
+
// Source formats may list more influences per vertex (AWD's shambler uses 8); the top four by weight
|
|
19
|
+
// are kept and renormalized. See packSkinInfluences.
|
|
20
|
+
export const MAX_SKIN_INFLUENCES = 4;
|
|
21
|
+
export function buildEmbeddedImageResourceReference(bytes, mimeType) {
|
|
22
|
+
return {
|
|
23
|
+
bytes,
|
|
24
|
+
failure: null,
|
|
25
|
+
kind: ImageResourceReferenceKind.Embedded,
|
|
26
|
+
mimeType,
|
|
27
|
+
state: ResourceResolutionState.Unresolved,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function buildExternalImageResourceReference(uri, basePath = null) {
|
|
31
|
+
return {
|
|
32
|
+
basePath,
|
|
33
|
+
failure: null,
|
|
34
|
+
kind: ImageResourceReferenceKind.External,
|
|
35
|
+
mimeType: null,
|
|
36
|
+
state: ResourceResolutionState.Unresolved,
|
|
37
|
+
uri,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// Flight uses a right-handed Y-up coordinate system with CCW front faces. Importers for formats
|
|
41
|
+
// that use different conventions apply the conversions below at parse time so every scene enters
|
|
42
|
+
// the graph in Flight's native frame. Every coordinate-space operation passes through one of
|
|
43
|
+
// these helpers so the reason for each transformation is explicit and grep-locatable.
|
|
44
|
+
// Right-handed Z-up → right-handed Y-up: a -90° rotation about X, (x, y, z) → (x, z, -y). The
|
|
45
|
+
// determinant is +1, so triangle winding and cross-product normals are unchanged and no reflection
|
|
46
|
+
// (mirroring) is introduced. Used by every RH Z-up importer — MD2, MD5, and 3DS. stride/offset walk
|
|
47
|
+
// interleaved vertex buffers.
|
|
48
|
+
export function convertPositionsZUpToYUp(values, stride = 3, offset = 0) {
|
|
49
|
+
for (let i = offset; i + 2 < values.length; i += stride) {
|
|
50
|
+
const y = values[i + 1];
|
|
51
|
+
values[i + 1] = values[i + 2];
|
|
52
|
+
values[i + 2] = -y + 0;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Quaternion companion to convertPositionsZUpToYUp: applies the same -90°-about-X rotation to the
|
|
56
|
+
// vector part (qx, qy, qz) → (qx, qz, -qy), leaving qw. Used for MD5 animation rotations.
|
|
57
|
+
export function convertQuaternionsZUpToYUp(values, stride = 4, offset = 0) {
|
|
58
|
+
for (let i = offset; i + 3 < values.length; i += stride) {
|
|
59
|
+
const qy = values[i + 1];
|
|
60
|
+
values[i + 1] = values[i + 2];
|
|
61
|
+
values[i + 2] = -qy + 0;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export function convertTransformLhToRh(transform) {
|
|
65
|
+
// AWD 12-float layout: [c0x c0y c0z c1x c1y c1z c2x c2y c2z tx ty tz]
|
|
66
|
+
// S·M·S negates: c0z(2), c1z(5), c2x(6), c2y(7), tz(11). Index 8 (c2z) stays — double negation.
|
|
67
|
+
transform[2] = -transform[2] + 0;
|
|
68
|
+
transform[5] = -transform[5] + 0;
|
|
69
|
+
transform[6] = -transform[6] + 0;
|
|
70
|
+
transform[7] = -transform[7] + 0;
|
|
71
|
+
transform[11] = -transform[11] + 0;
|
|
72
|
+
}
|
|
73
|
+
// Wraps already-in-hand encoded image bytes (a payload carved out of a container, e.g. a PNG inside a
|
|
74
|
+
// GLB buffer or an AWD texture block) as an Unresolved Embedded resource ref on a fresh Texture. The
|
|
75
|
+
// parser carries the bytes but does not decode them — @flighthq/scene3d-resources decodes on resolve.
|
|
76
|
+
// `mimeType` is null when the container did not declare one (the resolver sniffs it from the bytes).
|
|
77
|
+
export function createEmbeddedTextureRef(bytes, mimeType, resources) {
|
|
78
|
+
let resource = resources?.find((candidate) => candidate.kind === ImageResourceReferenceKind.Embedded &&
|
|
79
|
+
candidate.bytes === bytes &&
|
|
80
|
+
candidate.mimeType === mimeType);
|
|
81
|
+
if (resource === undefined) {
|
|
82
|
+
resource = buildEmbeddedImageResourceReference(bytes, mimeType);
|
|
83
|
+
resources?.push(resource);
|
|
84
|
+
}
|
|
85
|
+
return createTexture({ resource });
|
|
86
|
+
}
|
|
87
|
+
// Wraps a texture file path/URI declared by a model format as an Unresolved External resource ref on
|
|
88
|
+
// a fresh Texture. The parser references the image, it does not load or decode it — @flighthq/scene3d-
|
|
89
|
+
// resources resolves the ref later, joining a relative `uri` against `basePath` (the directory the
|
|
90
|
+
// container loaded from, null when the format carried none). Shared by the OBJ/MD5/3DS/MD2/glTF
|
|
91
|
+
// material decoders.
|
|
92
|
+
export function createExternalTextureRef(uri, basePath = null, resources) {
|
|
93
|
+
let resource = resources?.find((candidate) => candidate.kind === ImageResourceReferenceKind.External &&
|
|
94
|
+
candidate.uri === uri &&
|
|
95
|
+
candidate.basePath === basePath);
|
|
96
|
+
if (resource === undefined) {
|
|
97
|
+
resource = buildExternalImageResourceReference(uri, basePath);
|
|
98
|
+
resources?.push(resource);
|
|
99
|
+
}
|
|
100
|
+
return createTexture({ resource });
|
|
101
|
+
}
|
|
102
|
+
// Left-handed Y-up ↔ right-handed Y-up: negates Z (a reflection across the XY plane, det = -1) on a
|
|
103
|
+
// vec3 stream (positions, normals, tangents). A reflection flips triangle winding, so a caller must
|
|
104
|
+
// pair this with reverseTriangleWinding to keep front faces front-facing. Used by AWD/Stage3D.
|
|
105
|
+
export function negateVec3Z(values) {
|
|
106
|
+
for (let i = 2; i < values.length; i += 3) {
|
|
107
|
+
values[i] = -values[i] + 0;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Reduces a vertex's joint influences to the 4-slot joints0/weights0 form linear-blend skinning
|
|
111
|
+
// consumes: keeps the (up to) four highest-weight influences and renormalizes their weights to sum 1,
|
|
112
|
+
// so dropping smaller influences does not dim the vertex. Writes joint indices into `outJoints` and
|
|
113
|
+
// weights into `outWeights` (both length 4), zero-filling unused slots. A vertex with no influence
|
|
114
|
+
// keeps all weights zero (it stays at its bind position). This is the single influence-packing seam
|
|
115
|
+
// every skinned-mesh importer (MD5, AWD) feeds — per-format extraction differs, the emit is shared.
|
|
116
|
+
export function packSkinInfluences(influences, outJoints, outWeights) {
|
|
117
|
+
for (let i = 0; i < MAX_SKIN_INFLUENCES; i++) {
|
|
118
|
+
outJoints[i] = 0;
|
|
119
|
+
outWeights[i] = 0;
|
|
120
|
+
}
|
|
121
|
+
// Descending by weight; per-vertex influence counts are tiny, so Array.sort is simplest.
|
|
122
|
+
influences.sort((a, b) => b.weight - a.weight);
|
|
123
|
+
const kept = Math.min(influences.length, MAX_SKIN_INFLUENCES);
|
|
124
|
+
let sum = 0;
|
|
125
|
+
for (let i = 0; i < kept; i++)
|
|
126
|
+
sum += influences[i].weight;
|
|
127
|
+
for (let i = 0; i < kept; i++) {
|
|
128
|
+
outJoints[i] = influences[i].jointIndex;
|
|
129
|
+
outWeights[i] = sum > 0 ? influences[i].weight / sum : 0;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Reverses each triangle's winding (swaps v1 and v2). Use whenever a source's front-face winding is
|
|
133
|
+
// opposite to Flight's counter-clockwise-front convention: either paired with a det = -1 reflection
|
|
134
|
+
// such as negateVec3Z (AWD/Stage3D) or on its own for a format whose native winding is clockwise
|
|
135
|
+
// (MD5/id Tech 4, whose Z-up→Y-up rotation preserves the source's clockwise winding).
|
|
136
|
+
export function reverseTriangleWinding(indices) {
|
|
137
|
+
for (let i = 0; i + 2 < indices.length; i += 3) {
|
|
138
|
+
const tmp = indices[i + 1];
|
|
139
|
+
indices[i + 1] = indices[i + 2];
|
|
140
|
+
indices[i + 2] = tmp;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ImportDiagnostic, Scene3D, Scene3DDocument } from '@flighthq/types';
|
|
2
|
+
export declare function createScene3DFrom3ds(bytes: Readonly<Uint8Array>, diagnostics?: ImportDiagnostic[]): Scene3D;
|
|
3
|
+
export declare function parse3ds(bytes: Readonly<Uint8Array>, diagnostics?: ImportDiagnostic[]): Scene3DDocument;
|
|
4
|
+
//# sourceMappingURL=threeDsParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threeDsParse.d.ts","sourceRoot":"","sources":["../src/threeDsParse.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,gBAAgB,EAIhB,OAAO,EACP,eAAe,EAMhB,MAAM,iBAAiB,CAAC;AAoDzB,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAE3G;AAOD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAqDvG"}
|