@flighthq/scene3d-wgpu 0.3.0 → 0.3.1-next.1041.35b950c
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/customShaderWgpuMeshMaterialRenderer.d.ts.map +1 -1
- package/dist/customShaderWgpuMeshMaterialRenderer.js +6 -9
- package/dist/customShaderWgpuMeshMaterialRenderer.js.map +1 -1
- package/dist/drawWgpuScene3D.d.ts.map +1 -1
- package/dist/drawWgpuScene3D.js +4 -2
- package/dist/drawWgpuScene3D.js.map +1 -1
- package/dist/explainWgpuScene3DCoverage.d.ts +2 -2
- package/dist/explainWgpuScene3DCoverage.d.ts.map +1 -1
- package/dist/explainWgpuScene3DCoverage.js +62 -26
- package/dist/explainWgpuScene3DCoverage.js.map +1 -1
- package/dist/wgpuClassicPrelude.js +2 -2
- package/dist/wgpuClassicPrelude.js.map +1 -1
- package/dist/wgpuMeshMaterialRegistry.d.ts.map +1 -1
- package/dist/wgpuMeshMaterialRegistry.js +15 -11
- package/dist/wgpuMeshMaterialRegistry.js.map +1 -1
- package/dist/wgpuMeshPipeline.d.ts +1 -1
- package/dist/wgpuMeshPipeline.d.ts.map +1 -1
- package/dist/wgpuMeshPipeline.js +39 -12
- package/dist/wgpuMeshPipeline.js.map +1 -1
- package/dist/wgpuMeshUpload.d.ts +1 -1
- package/dist/wgpuMeshUpload.d.ts.map +1 -1
- package/dist/wgpuMeshUpload.js +37 -12
- package/dist/wgpuMeshUpload.js.map +1 -1
- package/dist/wgpuParticleEmitter3D.d.ts.map +1 -1
- package/dist/wgpuParticleEmitter3D.js +9 -6
- package/dist/wgpuParticleEmitter3D.js.map +1 -1
- package/dist/wgpuPbrPipelineCache.d.ts.map +1 -1
- package/dist/wgpuPbrPipelineCache.js +2 -2
- package/dist/wgpuPbrPipelineCache.js.map +1 -1
- package/dist/wgpuScene3DRuntime.d.ts.map +1 -1
- package/dist/wgpuScene3DRuntime.js +18 -10
- package/dist/wgpuScene3DRuntime.js.map +1 -1
- package/dist/wgpuScene3DTestHelper.d.ts.map +1 -1
- package/dist/wgpuScene3DTestHelper.js +126 -6
- package/dist/wgpuScene3DTestHelper.js.map +1 -1
- package/dist/wgpuShadedModifierSnippet.d.ts.map +1 -1
- package/dist/wgpuShadedModifierSnippet.js +8 -11
- package/dist/wgpuShadedModifierSnippet.js.map +1 -1
- package/dist/wgpuShadedPrelude.d.ts +5 -3
- package/dist/wgpuShadedPrelude.d.ts.map +1 -1
- package/dist/wgpuShadedPrelude.js +34 -13
- package/dist/wgpuShadedPrelude.js.map +1 -1
- package/dist/wgpuShadowMap.d.ts.map +1 -1
- package/dist/wgpuShadowMap.js +22 -6
- package/dist/wgpuShadowMap.js.map +1 -1
- package/dist/wgpuSkinPalette.d.ts +4 -1
- package/dist/wgpuSkinPalette.d.ts.map +1 -1
- package/dist/wgpuSkinPalette.js +227 -27
- package/dist/wgpuSkinPalette.js.map +1 -1
- package/dist/wgpuWireframeUpload.d.ts.map +1 -1
- package/dist/wgpuWireframeUpload.js +12 -6
- package/dist/wgpuWireframeUpload.js.map +1 -1
- package/package.json +20 -15
- package/src/customShaderWgpuMeshMaterialRenderer.test.ts +25 -1
- package/src/explainWgpuScene3DCoverage.test.ts +44 -10
- package/src/wgpuMeshMaterialRegistry.test.ts +22 -0
- package/src/wgpuMeshPipeline.test.ts +34 -1
- package/src/wgpuMeshUpload.test.ts +65 -3
- package/src/wgpuParticleEmitter3D.test.ts +23 -0
- package/src/wgpuScene3DRuntime.test.ts +8 -4
- package/src/wgpuScene3DTestHelper.test.ts +84 -0
- package/src/wgpuShadedModifierSnippet.test.ts +20 -6
- package/src/wgpuShadedPrelude.test.ts +6 -6
- package/src/wgpuShadowMap.test.ts +30 -0
- package/src/wgpuSkinPalette.test.ts +134 -19
- package/src/wgpuWireframeUpload.test.ts +29 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScene3DRuntime.js","sourceRoot":"","sources":["../src/wgpuScene3DRuntime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,
|
|
1
|
+
{"version":3,"file":"wgpuScene3DRuntime.js","sourceRoot":"","sources":["../src/wgpuScene3DRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScene3DTestHelper.d.ts","sourceRoot":"","sources":["../src/wgpuScene3DTestHelper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,0BAA0B,CAAC;AAExF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAWpE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAE,EAAE,CAAC;CAC5C;AAgCD,wBAAgB,oBAAoB,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"wgpuScene3DTestHelper.d.ts","sourceRoot":"","sources":["../src/wgpuScene3DTestHelper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,0BAA0B,CAAC;AAExF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAWpE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAE,EAAE,CAAC;CAC5C;AAgCD,wBAAgB,oBAAoB,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,CA+HjF;AAED,wBAAgB,uBAAuB,IAAI,mBAAmB,CAI7D"}
|
|
@@ -39,14 +39,32 @@ export function makeWgpuScene3DState() {
|
|
|
39
39
|
calls.push({ name, args });
|
|
40
40
|
return result;
|
|
41
41
|
};
|
|
42
|
+
const writeBuffer = (...args) => {
|
|
43
|
+
validateWriteBufferDestinationOffset(args[1]);
|
|
44
|
+
validateWriteBufferData(args[2], args[3], args[4]);
|
|
45
|
+
calls.push({ name: 'writeBuffer', args });
|
|
46
|
+
};
|
|
47
|
+
const writeTexture = (destination, data, dataLayout, size) => {
|
|
48
|
+
validateWriteTextureSourceAllocation(destination, data, dataLayout, size);
|
|
49
|
+
calls.push({ name: 'writeTexture', args: [destination, data, dataLayout, size] });
|
|
50
|
+
};
|
|
51
|
+
const setIndexBuffer = (buffer, indexFormat, offset = 0, size) => {
|
|
52
|
+
validateRenderBufferRange('setIndexBuffer', buffer, offset, size, indexFormat === 'uint32' ? 4 : 2);
|
|
53
|
+
calls.push({ name: 'setIndexBuffer', args: [buffer, indexFormat, offset, size] });
|
|
54
|
+
};
|
|
55
|
+
const setVertexBuffer = (slot, buffer, offset = 0, size) => {
|
|
56
|
+
if (buffer !== null)
|
|
57
|
+
validateRenderBufferRange('setVertexBuffer', buffer, offset, size, 4);
|
|
58
|
+
calls.push({ name: 'setVertexBuffer', args: [slot, buffer, offset, size] });
|
|
59
|
+
};
|
|
42
60
|
const renderPass = {
|
|
43
61
|
draw: record('draw'),
|
|
44
62
|
drawIndexed: record('drawIndexed'),
|
|
45
63
|
end: record('end'),
|
|
46
64
|
setBindGroup: record('setBindGroup'),
|
|
47
|
-
setIndexBuffer
|
|
65
|
+
setIndexBuffer,
|
|
48
66
|
setPipeline: record('setPipeline'),
|
|
49
|
-
setVertexBuffer
|
|
67
|
+
setVertexBuffer,
|
|
50
68
|
setViewport: record('setViewport'),
|
|
51
69
|
};
|
|
52
70
|
// A recording command encoder whose beginRenderPass hands back the same recording pass — enough for
|
|
@@ -61,8 +79,8 @@ export function makeWgpuScene3DState() {
|
|
|
61
79
|
queue: {
|
|
62
80
|
copyExternalImageToTexture: record('copyExternalImageToTexture'),
|
|
63
81
|
submit: record('submit'),
|
|
64
|
-
writeBuffer
|
|
65
|
-
writeTexture
|
|
82
|
+
writeBuffer,
|
|
83
|
+
writeTexture,
|
|
66
84
|
},
|
|
67
85
|
createBindGroup: record('createBindGroup', {}),
|
|
68
86
|
createBindGroupLayout: record('createBindGroupLayout', {}),
|
|
@@ -72,7 +90,7 @@ export function makeWgpuScene3DState() {
|
|
|
72
90
|
},
|
|
73
91
|
createBuffer: (descriptor) => {
|
|
74
92
|
calls.push({ name: 'createBuffer', args: [descriptor] });
|
|
75
|
-
return { destroy: () => { } };
|
|
93
|
+
return { destroy: () => { }, size: descriptor.size };
|
|
76
94
|
},
|
|
77
95
|
createPipelineLayout: record('createPipelineLayout', {}),
|
|
78
96
|
createRenderPipeline: record('createRenderPipeline', {}),
|
|
@@ -83,7 +101,19 @@ export function makeWgpuScene3DState() {
|
|
|
83
101
|
},
|
|
84
102
|
createTexture: (descriptor) => {
|
|
85
103
|
calls.push({ name: 'createTexture', args: [descriptor] });
|
|
86
|
-
|
|
104
|
+
const [width, height, depthOrArrayLayers] = normalizeGpuExtent3D(descriptor.size);
|
|
105
|
+
return {
|
|
106
|
+
createView: () => ({}),
|
|
107
|
+
depthOrArrayLayers,
|
|
108
|
+
dimension: descriptor.dimension ?? '2d',
|
|
109
|
+
destroy: () => { },
|
|
110
|
+
format: descriptor.format,
|
|
111
|
+
height,
|
|
112
|
+
mipLevelCount: descriptor.mipLevelCount ?? 1,
|
|
113
|
+
sampleCount: descriptor.sampleCount ?? 1,
|
|
114
|
+
usage: descriptor.usage,
|
|
115
|
+
width,
|
|
116
|
+
};
|
|
87
117
|
},
|
|
88
118
|
};
|
|
89
119
|
const canvas = { width: 256, height: 256 };
|
|
@@ -122,4 +152,94 @@ export function makeWgpuSkinningAdapter() {
|
|
|
122
152
|
registerWgpuGpuSkinning(state);
|
|
123
153
|
return getWgpuSkinningAdapter(state);
|
|
124
154
|
}
|
|
155
|
+
// Mirrors writeBuffer's synchronous BufferSource validation. Typed-array dataOffset/size values are
|
|
156
|
+
// element counts; ArrayBuffer and DataView values are bytes. Keeping this at the fake queue boundary
|
|
157
|
+
// makes every scene3d-wgpu unit path reject a call that a browser would reject before scheduling it.
|
|
158
|
+
function validateWriteBufferData(data, dataOffset = 0, size) {
|
|
159
|
+
const isArrayBuffer = data instanceof ArrayBuffer;
|
|
160
|
+
const isSharedArrayBuffer = typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer;
|
|
161
|
+
const isView = ArrayBuffer.isView(data);
|
|
162
|
+
if (!isArrayBuffer && !isSharedArrayBuffer && !isView) {
|
|
163
|
+
throw new TypeError('GPUQueue.writeBuffer: data must be a BufferSource');
|
|
164
|
+
}
|
|
165
|
+
const elementByteLength = isView && !(data instanceof DataView) ? getTypedArrayElementByteLength(data) : 1;
|
|
166
|
+
const dataElementLength = data.byteLength / elementByteLength;
|
|
167
|
+
const contentElementLength = size ?? dataElementLength - dataOffset;
|
|
168
|
+
if (contentElementLength < 0 || dataOffset + contentElementLength > dataElementLength) {
|
|
169
|
+
throw new DOMException('GPUQueue.writeBuffer: data range is out of bounds', 'OperationError');
|
|
170
|
+
}
|
|
171
|
+
if ((contentElementLength * elementByteLength) % 4 !== 0) {
|
|
172
|
+
throw new DOMException('GPUQueue.writeBuffer: content byte length must be a multiple of 4', 'OperationError');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function getTypedArrayElementByteLength(data) {
|
|
176
|
+
return data.BYTES_PER_ELEMENT;
|
|
177
|
+
}
|
|
178
|
+
function getWriteTextureBytesPerTexel(format) {
|
|
179
|
+
if (format === 'rgba8unorm' ||
|
|
180
|
+
format === 'rgba8unorm-srgb' ||
|
|
181
|
+
format === 'bgra8unorm' ||
|
|
182
|
+
format === 'bgra8unorm-srgb') {
|
|
183
|
+
return 4;
|
|
184
|
+
}
|
|
185
|
+
if (format === 'rgba32float')
|
|
186
|
+
return 16;
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
function normalizeGpuExtent3D(size) {
|
|
190
|
+
if (Symbol.iterator in Object(size)) {
|
|
191
|
+
const values = Array.from(size);
|
|
192
|
+
return [values[0] ?? 1, values[1] ?? 1, values[2] ?? 1];
|
|
193
|
+
}
|
|
194
|
+
const dictionary = size;
|
|
195
|
+
return [dictionary.width, dictionary.height ?? 1, dictionary.depthOrArrayLayers ?? 1];
|
|
196
|
+
}
|
|
197
|
+
// Keep source-allocation validation scoped to the uncompressed formats used by this helper's
|
|
198
|
+
// writeTexture paths. Block-compressed formats need a separate block-geometry model.
|
|
199
|
+
function validateWriteTextureSourceAllocation(destination, data, dataLayout, size) {
|
|
200
|
+
const isArrayBuffer = data instanceof ArrayBuffer;
|
|
201
|
+
const isSharedArrayBuffer = typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer;
|
|
202
|
+
const isView = ArrayBuffer.isView(data);
|
|
203
|
+
if (!isArrayBuffer && !isSharedArrayBuffer && !isView) {
|
|
204
|
+
throw new TypeError('GPUQueue.writeTexture: data must be a BufferSource');
|
|
205
|
+
}
|
|
206
|
+
const bytesPerTexel = getWriteTextureBytesPerTexel(destination.texture.format);
|
|
207
|
+
if (bytesPerTexel === null)
|
|
208
|
+
return;
|
|
209
|
+
const [width, height, depthOrArrayLayers] = normalizeGpuExtent3D(size);
|
|
210
|
+
if (width === 0 || height === 0 || depthOrArrayLayers === 0)
|
|
211
|
+
return;
|
|
212
|
+
const bytesInLastRow = width * bytesPerTexel;
|
|
213
|
+
const bytesPerRow = Math.max(bytesInLastRow, dataLayout.bytesPerRow ?? bytesInLastRow);
|
|
214
|
+
const rowsPerImage = Math.max(height, dataLayout.rowsPerImage ?? height);
|
|
215
|
+
const requiredByteLength = (dataLayout.offset ?? 0) +
|
|
216
|
+
bytesPerRow * rowsPerImage * (depthOrArrayLayers - 1) +
|
|
217
|
+
bytesPerRow * (height - 1) +
|
|
218
|
+
bytesInLastRow;
|
|
219
|
+
if (requiredByteLength > data.byteLength) {
|
|
220
|
+
throw new DOMException(`GPUQueue.writeTexture: data byte length ${data.byteLength} is smaller than the ${requiredByteLength} bytes required by the copy`, 'OperationError');
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
// These are the numeric buffer-binding constraints Flight derives from mesh data. The fake buffers
|
|
224
|
+
// expose the same public size field as GPUBuffer; hand-authored opaque buffers remain record-only.
|
|
225
|
+
function validateRenderBufferRange(call, buffer, offset, size, offsetAlignment) {
|
|
226
|
+
if (offset < 0 || (size !== undefined && size < 0)) {
|
|
227
|
+
throw new Error(`Fake GPU validation: ${call} offset and size must be non-negative`);
|
|
228
|
+
}
|
|
229
|
+
if (offset % offsetAlignment !== 0) {
|
|
230
|
+
throw new Error(`Fake GPU validation: ${call} offset must be aligned to ${offsetAlignment} bytes`);
|
|
231
|
+
}
|
|
232
|
+
const bufferSize = buffer.size;
|
|
233
|
+
if (typeof bufferSize !== 'number')
|
|
234
|
+
return;
|
|
235
|
+
const rangeSize = size ?? Math.max(0, bufferSize - offset);
|
|
236
|
+
if (offset + rangeSize > bufferSize) {
|
|
237
|
+
throw new Error(`Fake GPU validation: ${call} range exceeds the buffer size`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
function validateWriteBufferDestinationOffset(bufferOffset) {
|
|
241
|
+
if (bufferOffset % 4 !== 0) {
|
|
242
|
+
throw new Error('Fake GPU validation: GPUQueue.writeBuffer destination offset must be aligned to 4 bytes');
|
|
243
|
+
}
|
|
244
|
+
}
|
|
125
245
|
//# sourceMappingURL=wgpuScene3DTestHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScene3DTestHelper.js","sourceRoot":"","sources":["../src/wgpuScene3DTestHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAY5D,sGAAsG;AACtG,gGAAgG;AAChG,SAAS,oBAAoB;IAC3B,MAAM,CAAC,GAAG,UAAqC,CAAC;IAChD,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzB,CAAC,CAAC,gBAAgB,CAAC,GAAG;YACpB,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,GAAG;YACb,aAAa,EAAE,GAAG;SACnB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC1B,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACrH,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzB,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,qGAAqG;AACrG,kGAAkG;AAClG,sFAAsF;AACtF,MAAM,UAAU,oBAAoB;IAClC,oBAAoB,EAAE,CAAC;IACvB,MAAM,KAAK,GAAwC,EAAE,CAAC;IACtD,MAAM,MAAM,GACV,CAAC,IAAY,EAAE,MAAgB,EAAE,EAAE,CACnC,CAAC,GAAG,IAAe,EAAW,EAAE;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuScene3DTestHelper.js","sourceRoot":"","sources":["../src/wgpuScene3DTestHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShadedModifierSnippet.d.ts","sourceRoot":"","sources":["../src/wgpuShadedModifierSnippet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuShadedModifierSnippet.d.ts","sourceRoot":"","sources":["../src/wgpuShadedModifierSnippet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKnG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAIhH;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,GAAG,mBAAmB,GAAG,IAAI,CAGjH"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { withRegistryTableEntry } from '@flighthq/registry/contract';
|
|
2
|
+
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
3
|
+
import { RegistryEntryState } from '@flighthq/types/contract';
|
|
3
4
|
// State-scoped, last-write-wins WGSL compiler registry. Unknown kinds are an expected miss and
|
|
4
5
|
// contribute nothing, matching scene-gl's open modifier compiler contract.
|
|
5
6
|
export function registerWgpuModifierSnippet(state, snippet) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
registerModifier(runtime.modifierSnippetRegistry, snippet);
|
|
10
|
-
runtime.modifierSnippetRevision++;
|
|
7
|
+
const registries = getWgpuRenderStateRuntime(state).registries;
|
|
8
|
+
registries.modifierSnippets = withRegistryTableEntry(registries.modifierSnippets, snippet.kind, snippet);
|
|
9
|
+
registries.modifierSnippetRevision++;
|
|
11
10
|
}
|
|
12
11
|
export function resolveWgpuModifierSnippet(state, kind) {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
return null;
|
|
16
|
-
return resolveModifier(registry, kind);
|
|
12
|
+
const entry = getWgpuRenderStateRuntime(state).registries.modifierSnippets.entries.get(kind);
|
|
13
|
+
return entry?.state === RegistryEntryState.Bound ? entry.value : null;
|
|
17
14
|
}
|
|
18
15
|
//# sourceMappingURL=wgpuShadedModifierSnippet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShadedModifierSnippet.js","sourceRoot":"","sources":["../src/wgpuShadedModifierSnippet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuShadedModifierSnippet.js","sourceRoot":"","sources":["../src/wgpuShadedModifierSnippet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,+FAA+F;AAC/F,2EAA2E;AAC3E,MAAM,UAAU,2BAA2B,CAAC,KAAsB,EAAE,OAAsC;IACxG,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;IAC/D,UAAU,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzG,UAAU,CAAC,uBAAuB,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAsB,EAAE,IAAkB;IACnF,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7F,OAAO,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { LinearColor, ModifierRegistry, ShadedMaterial, WgpuMeshPipeline, WgpuColorAdjustmentMaterialFeature, WgpuModifierSnippet, WgpuRenderState } from '@flighthq/types/contract';
|
|
1
|
+
import type { KeyedTable, LinearColor, ModifierRegistry, ShadedMaterial, WgpuMeshPipeline, WgpuColorAdjustmentMaterialFeature, WgpuModifierSnippet, WgpuRenderState } from '@flighthq/types/contract';
|
|
2
2
|
import type { WgpuSkinningAdapter } from '@flighthq/types/contract';
|
|
3
|
+
type WgpuModifierSnippetSource = Readonly<ModifierRegistry> | Readonly<KeyedTable<WgpuModifierSnippet>>;
|
|
3
4
|
export declare function bindWgpuShadedSurface(state: WgpuRenderState, pipeline: Readonly<WgpuMeshPipeline>, material: Readonly<ShadedMaterial>, diffuse: Readonly<LinearColor>, specular: Readonly<LinearColor>): GPUBindGroup;
|
|
4
|
-
export declare function buildWgpuShadedCacheKey(material: Readonly<ShadedMaterial>, registry?:
|
|
5
|
+
export declare function buildWgpuShadedCacheKey(material: Readonly<ShadedMaterial>, registry?: WgpuModifierSnippetSource): string;
|
|
5
6
|
export declare function ensureWgpuShadedPipeline(state: WgpuRenderState, material: Readonly<ShadedMaterial>, format: GPUTextureFormat): WgpuMeshPipeline;
|
|
6
|
-
export declare function getWgpuShadedModuleSource(material: Readonly<ShadedMaterial>, registry?:
|
|
7
|
+
export declare function getWgpuShadedModuleSource(material: Readonly<ShadedMaterial>, registry?: WgpuModifierSnippetSource, skinned?: boolean, skinning?: Readonly<WgpuSkinningAdapter> | null, colorAdjustmentFeature?: Readonly<WgpuColorAdjustmentMaterialFeature> | null, colorMatrix?: boolean): string;
|
|
7
8
|
export declare const animatedNormalWgpuModifierSnippet: WgpuModifierSnippet;
|
|
8
9
|
export declare const dissolveWgpuModifierSnippet: WgpuModifierSnippet;
|
|
9
10
|
export declare const emissiveWgpuModifierSnippet: WgpuModifierSnippet;
|
|
@@ -13,4 +14,5 @@ export declare const rimWgpuModifierSnippet: WgpuModifierSnippet;
|
|
|
13
14
|
export declare const toonWgpuModifierSnippet: WgpuModifierSnippet;
|
|
14
15
|
export declare const vertexDisplaceWgpuModifierSnippet: WgpuModifierSnippet;
|
|
15
16
|
export declare function registerBuiltInWgpuModifierSnippets(state: WgpuRenderState): void;
|
|
17
|
+
export {};
|
|
16
18
|
//# sourceMappingURL=wgpuShadedPrelude.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShadedPrelude.d.ts","sourceRoot":"","sources":["../src/wgpuShadedPrelude.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAMV,WAAW,
|
|
1
|
+
{"version":3,"file":"wgpuShadedPrelude.d.ts","sourceRoot":"","sources":["../src/wgpuShadedPrelude.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAMV,UAAU,EACV,WAAW,EAGX,gBAAgB,EAEhB,cAAc,EAId,gBAAgB,EAChB,kCAAkC,EAGlC,mBAAmB,EACnB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAgBlC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAsCpE,KAAK,yBAAyB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAgBxG,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACpC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC9B,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC9B,YAAY,CAgEd;AA6CD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,QAAQ,GAAE,yBAAmD,GAC5D,MAAM,CAMR;AAID,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,CA+DlB;AAKD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,QAAQ,GAAE,yBAAmD,EAC7D,OAAO,UAAQ,EACf,QAAQ,GAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,IAAW,EACrD,sBAAsB,GAAE,QAAQ,CAAC,kCAAkC,CAAC,GAAG,IAAW,EAClF,WAAW,UAAQ,GAClB,MAAM,CAGR;AA2ND,eAAO,MAAM,iCAAiC,EAAE,mBAyC/C,CAAC;AACF,eAAO,MAAM,2BAA2B,EAAE,mBAqCzC,CAAC;AACF,eAAO,MAAM,2BAA2B,EAAE,mBA6CzC,CAAC;AACF,eAAO,MAAM,6BAA6B,EAAE,mBAwB3C,CAAC;AACF,eAAO,MAAM,sBAAsB,EAAE,mBA4BpC,CAAC;AACF,eAAO,MAAM,sBAAsB,EAAE,mBAqBpC,CAAC;AACF,eAAO,MAAM,uBAAuB,EAAE,mBAuBrC,CAAC;AACF,eAAO,MAAM,iCAAiC,EAAE,mBAmC/C,CAAC;AAEF,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAShF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { unpackColorToLinear } from '@flighthq/color/contract';
|
|
2
|
-
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
2
|
+
import { getWgpuColorAdjustmentMaterialFeature, getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
3
3
|
import { getModifierDefineKey, orderModifierStack, resolveModifier } from '@flighthq/shading/contract';
|
|
4
|
-
import { AnimatedNormalModifierKind, DissolveModifierKind, EmissiveModifierFacing, EmissiveModifierKind, EnvReflectModifierKind, FogModifierKind, FogModifierMode, ModifierSlot, RimModifierKind, ToonModifierKind, VertexDisplaceModifierKind, VertexDisplaceModifierSource, } from '@flighthq/types/contract';
|
|
4
|
+
import { AnimatedNormalModifierKind, DissolveModifierKind, EmissiveModifierFacing, EmissiveModifierKind, EnvReflectModifierKind, FogModifierKind, FogModifierMode, ModifierSlot, RegistryEntryState, RimModifierKind, ToonModifierKind, VertexDisplaceModifierKind, VertexDisplaceModifierSource, } from '@flighthq/types/contract';
|
|
5
5
|
import { getWgpuShadedBaseFlags } from './shadedWgpuMeshMaterialRenderer';
|
|
6
6
|
import { getWgpuClassicSharedSamplerModuleSourceForKey } from './wgpuClassicPrelude';
|
|
7
7
|
import { createWgpuMeshPipeline, ensureWgpuPbrSampleLayout, ensureWgpuScene3DPipeline, getWgpuMaterialSampler, resolveWgpuMaterialTextureView, spliceWgpuColorAdjustmentPrelude, stashWgpuUvTransform, } from './wgpuMeshPipeline';
|
|
@@ -12,7 +12,7 @@ import { registerWgpuModifierSnippet } from './wgpuShadedModifierSnippet';
|
|
|
12
12
|
// maps plus modifier maps into the composed group(2). Bind groups are cached by material and rebuilt
|
|
13
13
|
// only when its compiled layout changes.
|
|
14
14
|
export function bindWgpuShadedSurface(state, pipeline, material, diffuse, specular) {
|
|
15
|
-
const registry =
|
|
15
|
+
const registry = getModifierSnippetTable(state);
|
|
16
16
|
const plan = getCachedModifierPlan(state, material, registry);
|
|
17
17
|
const byteLength = 48 + plan.uniformFloatCount * 4;
|
|
18
18
|
const stateBindings = getWgpuScene3DRuntime(state).shadedMaterialBindingCache;
|
|
@@ -106,17 +106,18 @@ function textureEntryIndex(textureIndex) {
|
|
|
106
106
|
export function buildWgpuShadedCacheKey(material, registry = EMPTY_MODIFIER_REGISTRY) {
|
|
107
107
|
const flags = getWgpuShadedBaseFlags(material);
|
|
108
108
|
const base = `${flags.alphaMaskEnabled ? 'm' : '-'}${flags.doubleSided ? 'd' : '-'}${flags.hasDiffuseMap ? 'd' : '-'}${flags.hasSpecularMap ? 's' : '-'}${flags.hasNormalMap ? 'n' : '-'}`;
|
|
109
|
-
return `shaded:${base}|${
|
|
109
|
+
return `shaded:${base}|${getWgpuModifierDefineKey(material.modifiers, registry)}`;
|
|
110
110
|
}
|
|
111
111
|
// Resolves the immutable shader/layout/pipeline permutation. The shared cache appends opaque/blend,
|
|
112
112
|
// so modifier composition combines naturally with §1's transparent variants.
|
|
113
113
|
export function ensureWgpuShadedPipeline(state, material, format) {
|
|
114
|
-
const
|
|
114
|
+
const registries = getWgpuRenderStateRuntime(state).registries;
|
|
115
|
+
const registry = registries.modifierSnippets;
|
|
115
116
|
const defineKey = buildWgpuShadedCacheKey(material, registry);
|
|
116
117
|
const plan = getCachedModifierPlan(state, material, registry, defineKey);
|
|
117
118
|
const colorAdjusted = getWgpuScene3DRuntime(state).activeColorAdjustmentRun;
|
|
118
119
|
const colorMatrix = getWgpuScene3DRuntime(state).activeColorMatrixRun;
|
|
119
|
-
const key = `${defineKey}|registry:${
|
|
120
|
+
const key = `${defineKey}|registry:${registries.modifierSnippetRevision}|${format}|${colorMatrix ? 'color-matrix' : colorAdjusted ? 'color-adjusted' : 'base'}`;
|
|
120
121
|
return ensureWgpuScene3DPipeline(state, key, (blended, skinned) => {
|
|
121
122
|
const entries = [
|
|
122
123
|
{
|
|
@@ -149,9 +150,7 @@ export function ensureWgpuShadedPipeline(state, material, format) {
|
|
|
149
150
|
}
|
|
150
151
|
const materialBindGroupLayout = state.device.createBindGroupLayout({ entries });
|
|
151
152
|
const module = state.device.createShaderModule({
|
|
152
|
-
code: assembleWgpuShadedModuleSource(material, plan, skinned, getWgpuSkinningAdapter(state), colorAdjusted || colorMatrix
|
|
153
|
-
? (getWgpuRenderStateRuntime(state).wgpuColorAdjustmentMaterialFeature ?? null)
|
|
154
|
-
: null, colorMatrix),
|
|
153
|
+
code: assembleWgpuShadedModuleSource(material, plan, skinned, getWgpuSkinningAdapter(state), colorAdjusted || colorMatrix ? getWgpuColorAdjustmentMaterialFeature(state) : null, colorMatrix),
|
|
155
154
|
});
|
|
156
155
|
return createWgpuMeshPipeline(state, {
|
|
157
156
|
blended,
|
|
@@ -257,7 +256,7 @@ function buildModifierPlan(modifiers, registry) {
|
|
|
257
256
|
let textureCount = 0;
|
|
258
257
|
for (let index = 0; index < ordered.length; index++) {
|
|
259
258
|
const modifier = ordered[index];
|
|
260
|
-
const snippet =
|
|
259
|
+
const snippet = resolveWgpuModifierSnippetSource(registry, modifier.kind);
|
|
261
260
|
snippets[index] = snippet;
|
|
262
261
|
if (snippet === null)
|
|
263
262
|
continue;
|
|
@@ -328,7 +327,7 @@ function getCachedModifierPlan(state, material, registry, defineKey) {
|
|
|
328
327
|
}
|
|
329
328
|
function hasCurrentSnippets(plan, registry) {
|
|
330
329
|
for (let i = 0; i < plan.orderedModifiers.length; i++) {
|
|
331
|
-
if (
|
|
330
|
+
if (resolveWgpuModifierSnippetSource(registry, plan.orderedModifiers[i].kind) !== plan.snippets[i])
|
|
332
331
|
return false;
|
|
333
332
|
}
|
|
334
333
|
return true;
|
|
@@ -608,8 +607,8 @@ export function registerBuiltInWgpuModifierSnippets(state) {
|
|
|
608
607
|
registerWgpuModifierSnippet(state, toonWgpuModifierSnippet);
|
|
609
608
|
registerWgpuModifierSnippet(state, vertexDisplaceWgpuModifierSnippet);
|
|
610
609
|
}
|
|
611
|
-
function
|
|
612
|
-
return
|
|
610
|
+
function getModifierSnippetTable(state) {
|
|
611
|
+
return getWgpuRenderStateRuntime(state).registries.modifierSnippets;
|
|
613
612
|
}
|
|
614
613
|
function indent(source, spaces) {
|
|
615
614
|
if (source.length === 0)
|
|
@@ -635,4 +634,26 @@ fn shadedValueNoise(p : vec2f) -> f32 {
|
|
|
635
634
|
const MODIFIER_FLOATS = 12;
|
|
636
635
|
const _color = [0, 0, 0, 0];
|
|
637
636
|
const EMPTY_MODIFIER_REGISTRY = { definitions: new Map() };
|
|
637
|
+
function getWgpuModifierDefineKey(stack, registry) {
|
|
638
|
+
if (!isWgpuModifierSnippetTable(registry))
|
|
639
|
+
return getModifierDefineKey(stack, registry);
|
|
640
|
+
const ordered = orderModifierStack(stack);
|
|
641
|
+
let key = '';
|
|
642
|
+
for (const modifier of ordered) {
|
|
643
|
+
const snippet = resolveWgpuModifierSnippetSource(registry, modifier.kind);
|
|
644
|
+
const signature = snippet?.getDefineSignature?.(modifier) ?? '';
|
|
645
|
+
const token = signature.length > 0 ? `${modifier.kind}:${signature}` : modifier.kind;
|
|
646
|
+
key = key.length > 0 ? `${key}+${token}` : token;
|
|
647
|
+
}
|
|
648
|
+
return key;
|
|
649
|
+
}
|
|
650
|
+
function resolveWgpuModifierSnippetSource(registry, kind) {
|
|
651
|
+
if (!isWgpuModifierSnippetTable(registry))
|
|
652
|
+
return resolveModifier(registry, kind);
|
|
653
|
+
const entry = registry.entries.get(kind);
|
|
654
|
+
return entry?.state === RegistryEntryState.Bound ? entry.value : null;
|
|
655
|
+
}
|
|
656
|
+
function isWgpuModifierSnippetTable(registry) {
|
|
657
|
+
return 'shape' in registry;
|
|
658
|
+
}
|
|
638
659
|
//# sourceMappingURL=wgpuShadedPrelude.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShadedPrelude.js","sourceRoot":"","sources":["../src/wgpuShadedPrelude.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wgpuShadedPrelude.js","sourceRoot":"","sources":["../src/wgpuShadedPrelude.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShadowMap.d.ts","sourceRoot":"","sources":["../src/wgpuShadowMap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAKhB,MAAM,EAGN,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAwBrE;AAkBD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAChC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,GAClD,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuShadowMap.d.ts","sourceRoot":"","sources":["../src/wgpuShadowMap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAKhB,MAAM,EAGN,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAwBrE;AAkBD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAChC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,GAClD,IAAI,CAkGN"}
|
package/dist/wgpuShadowMap.js
CHANGED
|
@@ -112,8 +112,6 @@ export function drawWgpuScene3DShadowMap(state, scene, shadowCamera, directional
|
|
|
112
112
|
const skinned = skinning?.isGpuSkinned(mesh) ?? false;
|
|
113
113
|
const pipeline = skinned ? ensureWgpuShadowDepthPipeline(state, true) : rigidPipeline;
|
|
114
114
|
const upload = ensureWgpuMeshUpload(state, mesh.geometry, skinned);
|
|
115
|
-
if (upload === null || upload.indexBuffer === null)
|
|
116
|
-
return;
|
|
117
115
|
if (pipeline !== boundPipeline) {
|
|
118
116
|
pass.setPipeline(pipeline);
|
|
119
117
|
boundPipeline = pipeline;
|
|
@@ -125,13 +123,23 @@ export function drawWgpuScene3DShadowMap(state, scene, shadowCamera, directional
|
|
|
125
123
|
multiplyMatrix4(_shadowProxy.worldMatrix, lightMatrix, world);
|
|
126
124
|
const jointMatrices = skinned ? mesh.skin.skeleton.jointMatrices : null;
|
|
127
125
|
_shadowProxy.jointMatrices = jointMatrices;
|
|
126
|
+
// The palette is claimed BEFORE the Draw uniform is written: the arena base it returns rides in that
|
|
127
|
+
// uniform, so writing first would publish a base for a region not yet allocated.
|
|
128
|
+
const skinDrawBindGroup = jointMatrices === null ? null : skinning.getDrawBindGroup(state, jointMatrices);
|
|
128
129
|
const rigidDrawBindGroup = writeWgpuDrawUniform(state, _shadowProxy);
|
|
129
|
-
const drawBindGroup =
|
|
130
|
+
const drawBindGroup = skinDrawBindGroup ?? rigidDrawBindGroup;
|
|
130
131
|
_dynamicOffsets[0] = sceneRuntime.pendingDrawOffset;
|
|
131
132
|
pass.setBindGroup(0, drawBindGroup, _dynamicOffsets);
|
|
132
133
|
pass.setVertexBuffer(0, upload.vertexBuffer);
|
|
133
|
-
pass
|
|
134
|
-
|
|
134
|
+
// Same indexed/non-indexed split as the forward pass and as glShadowMap: a non-indexed caster
|
|
135
|
+
// still has to cast, or it renders but drops its shadow.
|
|
136
|
+
if (upload.indexBuffer === null) {
|
|
137
|
+
pass.draw(upload.indexCount, 1, 0, 0);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
pass.setIndexBuffer(upload.indexBuffer, upload.indexFormat);
|
|
141
|
+
pass.drawIndexed(upload.indexCount, 1, 0, 0, 0);
|
|
142
|
+
}
|
|
135
143
|
});
|
|
136
144
|
pass.end();
|
|
137
145
|
shadow.enabled = true;
|
|
@@ -188,7 +196,15 @@ function ensureWgpuShadowDepthPipeline(state, skinned) {
|
|
|
188
196
|
// (clip.z = (clip.z + clip.w) * 0.5), the identical remap the lit sampler's depthRef applies — so what is
|
|
189
197
|
// written here and what is compared there agree.
|
|
190
198
|
const SHADOW_DEPTH_WGSL = /* wgsl */ `
|
|
191
|
-
|
|
199
|
+
// The Draw record is the SAME 256-byte slot the mesh path writes, so the depth shader must declare the
|
|
200
|
+
// fields ahead of the one it wants or params would land at the wrong offset. It reads only params.z, the
|
|
201
|
+
// skin arena base — writeWgpuDrawUniform already writes every field below.
|
|
202
|
+
struct Draw {
|
|
203
|
+
world : mat4x4f,
|
|
204
|
+
normalMatrix : mat3x3f,
|
|
205
|
+
uvTransform : mat3x3f,
|
|
206
|
+
params : vec4f,
|
|
207
|
+
};
|
|
192
208
|
@group(0) @binding(0) var<uniform> draw : Draw;
|
|
193
209
|
|
|
194
210
|
@vertex fn vs_main(@location(0) position : vec3f) -> @builtin(position) vec4f {
|