@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":"customShaderWgpuMeshMaterialRenderer.d.ts","sourceRoot":"","sources":["../src/customShaderWgpuMeshMaterialRenderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"customShaderWgpuMeshMaterialRenderer.d.ts","sourceRoot":"","sources":["../src/customShaderWgpuMeshMaterialRenderer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAOV,8BAA8B,EAC9B,wBAAwB,EAExB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAmBlC,OAAO,EAAE,mCAAmC,EAAE,qCAAqC,EAAE,MAAM,yBAAyB,CAAC;AAmBrH,eAAO,MAAM,oCAAoC,EAAE,wBAuDlD,CAAC;AAGF,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,MAAM,GAChB,8BAA8B,GAAG,IAAI,CAGvC;AAqBD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,8BAA8B,GACzC,IAAI,CAON;AAGD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAI7E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { withRegistryTableEntry } from '@flighthq/registry/contract';
|
|
1
2
|
import { getWgpuRenderStateRuntime, registerWgpuBitmapTextureResolver, registerWgpuImageTextureResolver, } from '@flighthq/render-wgpu/contract';
|
|
2
|
-
import { CustomShaderMaterialKind } from '@flighthq/types/contract';
|
|
3
|
+
import { CustomShaderMaterialKind, RegistryEntryState } from '@flighthq/types/contract';
|
|
3
4
|
import { WGPU_CUSTOM_SHADER_TEXTURE_CAPACITY, WGPU_CUSTOM_SHADER_USER_VEC4_CAPACITY } from './wgpuCustomMaterialAbi';
|
|
4
5
|
import { registerWgpuMeshMaterialRenderer } from './wgpuMeshMaterialRegistry';
|
|
5
6
|
import { beginWgpuMeshDraw, createWgpuMeshPipeline, drawWgpuMeshSubset, ensureWgpuPlaceholderTextureView, ensureWgpuScene3DPipeline, getWgpuMaterialSampler, isWgpuTextureReady, resolveWgpuMaterialTextureView, stashWgpuUvTransform, writeWgpuFrameUniform, } from './wgpuMeshPipeline';
|
|
@@ -50,7 +51,8 @@ export const customShaderWgpuMeshMaterialRenderer = {
|
|
|
50
51
|
};
|
|
51
52
|
// Returns the WGSL module registered under `shaderKey`, or null when the material should skip drawing.
|
|
52
53
|
export function getWgpuCustomMaterialShaderSource(state, shaderKey) {
|
|
53
|
-
|
|
54
|
+
const entry = getWgpuRenderStateRuntime(state).registries.customMaterialShaders.entries.get(shaderKey);
|
|
55
|
+
return entry?.state === RegistryEntryState.Bound ? entry.value : null;
|
|
54
56
|
}
|
|
55
57
|
// Registers a complete WGSL module for a CustomShaderMaterial shaderKey.
|
|
56
58
|
//
|
|
@@ -72,12 +74,8 @@ export function getWgpuCustomMaterialShaderSource(state, shaderKey) {
|
|
|
72
74
|
// registry follows the GL lifetime rule: last source write wins before compilation, while an already
|
|
73
75
|
// compiled shaderKey remains cached; use a new key to compile edited WGSL.
|
|
74
76
|
export function registerWgpuCustomMaterialShader(state, shaderKey, wgslSource) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
registry = new Map();
|
|
78
|
-
_customMaterialShaders.set(state, registry);
|
|
79
|
-
}
|
|
80
|
-
registry.set(shaderKey, wgslSource);
|
|
77
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
78
|
+
runtime.registries.customMaterialShaders = withRegistryTableEntry(runtime.registries.customMaterialShaders, shaderKey, wgslSource);
|
|
81
79
|
}
|
|
82
80
|
// Installs CustomShaderMaterialKind in this state's WGPU mesh-material registry.
|
|
83
81
|
export function registerWgpuCustomShaderMaterial(state) {
|
|
@@ -222,7 +220,6 @@ function overwriteCache(cache, source) {
|
|
|
222
220
|
for (let i = 0; i < source.length; i++)
|
|
223
221
|
cache[i] = source[i];
|
|
224
222
|
}
|
|
225
|
-
const _customMaterialShaders = new WeakMap();
|
|
226
223
|
const _customMaterialLayouts = new WeakMap();
|
|
227
224
|
const _customMaterialBindings = new WeakMap();
|
|
228
225
|
const _uniformScratch = new Float32Array(WGPU_CUSTOM_SHADER_USER_VEC4_CAPACITY * 4);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customShaderWgpuMeshMaterialRenderer.js","sourceRoot":"","sources":["../src/customShaderWgpuMeshMaterialRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,gCAAgC,CAAC;AAaxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"customShaderWgpuMeshMaterialRenderer.js","sourceRoot":"","sources":["../src/customShaderWgpuMeshMaterialRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,gCAAgC,CAAC;AAaxC,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,mCAAmC,EAAE,qCAAqC,EAAE,MAAM,yBAAyB,CAAC;AACrH,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,8BAA8B,EAC9B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,mCAAmC,EAAE,qCAAqC,EAAE,MAAM,yBAAyB,CAAC;AAgBrH,qGAAqG;AACrG,qGAAqG;AACrG,sGAAsG;AACtG,MAAM,CAAC,MAAM,oCAAoC,GAA6B;IAC5E,IAAI,CACF,KAAsB,EACtB,QAAmC,EACnC,MAAmC,EACnC,MAA0B;QAE1B,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;QAChC,MAAM,MAAM,GAAG,QAAiD,CAAC;QACjE,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;YAChE,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,iCAAiC,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAChC,OAAO;QACT,CAAC;QACD,KAAK,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACnE,IACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,qCAAqC;YACjF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,mCAAmC,EAC/E,CAAC;YACD,yFAAyF;YACzF,4FAA4F;YAC5F,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC,MAAM,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzD,MAAM,QAAQ,GAAG,yBAAyB,CACxC,KAAK,EACL,UAAU,MAAM,CAAC,SAAS,IAAI,MAAM,IAAI,OAAO,EAAE,EACjD,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CACnB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CACtG,CAAC;QACF,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/F,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,KAAsB,EAAE,KAAmC,EAAE,QAAgC;QAChG,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC;AAEF,uGAAuG;AACvG,MAAM,UAAU,iCAAiC,CAC/C,KAAsB,EACtB,SAAiB;IAEjB,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvG,OAAO,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,yEAAyE;AACzE,EAAE;AACF,aAAa;AACb,uEAAuE;AACvE,gGAAgG;AAChG,oGAAoG;AACpG,0GAA0G;AAC1G,kGAAkG;AAClG,sDAAsD;AACtD,EAAE;AACF,sGAAsG;AACtG,uGAAuG;AACvG,qGAAqG;AACrG,sGAAsG;AACtG,uIAAuI;AACvI,8HAA8H;AAC9H,sGAAsG;AACtG,qGAAqG;AACrG,2EAA2E;AAC3E,MAAM,UAAU,gCAAgC,CAC9C,KAAsB,EACtB,SAAiB,EACjB,UAA0C;IAE1C,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,qBAAqB,GAAG,sBAAsB,CAC/D,OAAO,CAAC,UAAU,CAAC,qBAAqB,EACxC,SAAS,EACT,UAAU,CACX,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,gCAAgC,CAAC,KAAsB;IACrE,iCAAiC,CAAC,KAAK,CAAC,CAAC;IACzC,gCAAgC,CAAC,KAAK,CAAC,CAAC;IACxC,gCAAgC,CAAC,KAAK,EAAE,wBAAwB,EAAE,oCAAoC,CAAC,CAAC;AAC1G,CAAC;AAED,SAAS,6BAA6B,CACpC,KAAsB,EACtB,MAAsC,EACtC,MAAwB,EACxB,WAAoB,EACpB,OAAgB,EAChB,OAAgB,EAChB,OAAwC;IAExC,OAAO,sBAAsB,CAAC,KAAK,EAAE;QACnC,OAAO;QACP,WAAW;QACX,oBAAoB,EAAE,OAAO,CAAC,OAAO;QACrC,MAAM;QACN,uBAAuB,EAAE,OAAO,CAAC,IAAI;QACrC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzD,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAsB;IACzD,IAAI,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAE1C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC;IACnE,MAAM,OAAO,GAA8B,EAAE,CAAC;IAC9C,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,mCAAmC,EAAE,IAAI,EAAE,EAAE,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,IAAI,GAAG,CAAC;YACjB,UAAU;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC/B,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC;YACrB,UAAU;YACV,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG;QACR,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC;QACxD,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC;YACvC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;SACnE,CAAC;KACH,CAAC;IACF,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAsB,EACtB,QAAwC,EACxC,MAA0B;IAE1B,IAAI,aAAa,GAAG,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAE1C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,EAAE,qCAAqC,GAAG,EAAE;QAChD,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;KACxD,CAAC,CAAC;IACH,OAAO,GAAG;QACR,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,EAAE;QACnB,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;YAC7C,MAAM;YACN,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;SAC/D,CAAC;QACF,aAAa;KACd,CAAC;IACF,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAsB,EACtB,MAAiB,EACjB,QAAwC;IAExC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;IAC5E,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC;YAChE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,4BAA4B,CACnC,KAAsB,EACtB,QAAwC,EACxC,MAA0B,EAC1B,OAA8B;IAE9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;YAAE,SAAS;QACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,kBAAkB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;QACxC,sBAAsB,CAAC,YAAY,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9E,mBAAmB,CAAC,YAAY,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAC7D,CAAC,CAAC,8BAA8B,CAAC,KAAK,EAAE,OAAO,CAAC;YAChD,CAAC,CAAC,WAAW,CAAC;QAChB,YAAY,EAAE,CAAC;IACjB,CAAC;IACD,kBAAkB,CAAC,MAAM,GAAG,YAAY,CAAC;IACzC,KAAK,IAAI,IAAI,GAAG,YAAY,EAAE,IAAI,GAAG,mCAAmC,EAAE,IAAI,EAAE,EAAE,CAAC;QACjF,sBAAsB,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnE,mBAAmB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,gCAAgC,CAAC,OAAO,EAAE,YAAY,CAAC;QAAE,OAAO,OAAO,CAAC,gBAAiB,CAAC;IAE/F,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,mCAAmC,EAAE,IAAI,EAAE,EAAE,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACxD,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;IAChE,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,gBAAgB,CAAC;AAClC,CAAC;AAED,SAAS,gCAAgC,CAAC,OAAwC,EAAE,YAAoB;IACtG,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAClG,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,kBAAkB,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1E,CAAC;IACD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,mCAAmC,EAAE,IAAI,EAAE,EAAE,CAAC;QACtE,IACE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,sBAAsB,CAAC,IAAI,CAAC;YAC9D,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,mBAAmB,CAAC,IAAI,CAAC,EACxD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAI,KAAU,EAAE,MAAoB;IACzD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAA0C,CAAC;AACrF,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAA2D,CAAC;AACvG,MAAM,eAAe,GAAG,IAAI,YAAY,CAAC,qCAAqC,GAAG,CAAC,CAAC,CAAC;AACpF,MAAM,kBAAkB,GAAa,EAAE,CAAC;AACxC,MAAM,sBAAsB,GAAiB,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AAC5F,MAAM,mBAAmB,GAAqB,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawWgpuScene3D.d.ts","sourceRoot":"","sources":["../src/drawWgpuScene3D.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drawWgpuScene3D.d.ts","sourceRoot":"","sources":["../src/drawWgpuScene3D.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,QAAQ,EAKR,IAAI,EAGJ,iBAAiB,EACjB,MAAM,EAIN,eAAe,EAEf,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AA0BlC,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC1B,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACnC,aAAa,CAAC,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GACpD,IAAI,CAoEN;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAG1F"}
|
package/dist/drawWgpuScene3D.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createMatrix3, createMatrix4, setMatrix3NormalFromMatrix4 } from '@flighthq/geometry/contract';
|
|
2
2
|
import { getNodeWorldMatrix4 } from '@flighthq/node/contract';
|
|
3
|
-
import { declareWgpuRenderTargetColorSpace,
|
|
3
|
+
import { declareWgpuRenderTargetColorSpace, getWgpuColorAdjustmentMaterialFeature, } from '@flighthq/render-wgpu/contract';
|
|
4
4
|
import { prepareScene3DRender } from '@flighthq/render/contract';
|
|
5
5
|
import { getNode3DRuntime, getNode3DWorldAlpha } from '@flighthq/scene3d/contract';
|
|
6
6
|
import { BlendMode, StandardMaterialKind, MAX_FORWARD_LIGHTS } from '@flighthq/types/contract';
|
|
@@ -104,7 +104,7 @@ function drawEntries(state, entries, camera, blended) {
|
|
|
104
104
|
let boundSkinned;
|
|
105
105
|
let boundColorAdjustment;
|
|
106
106
|
let boundColorMatrix;
|
|
107
|
-
const colorAdjustmentFeatureEnabled =
|
|
107
|
+
const colorAdjustmentFeatureEnabled = getWgpuColorAdjustmentMaterialFeature(state) !== null;
|
|
108
108
|
for (let i = 0; i < entries.length; i++) {
|
|
109
109
|
const entry = entries[i];
|
|
110
110
|
runtime.activeBlendMode = blended ? getMaterialBlendMode(entry.material) : null;
|
|
@@ -134,6 +134,7 @@ function drawEntries(state, entries, camera, blended) {
|
|
|
134
134
|
proxy.colorScaleBias = colorAdjusted ? entry.colorScaleBias : null;
|
|
135
135
|
proxy.colorMatrix = colorAdjusted ? entry.colorMatrix : null;
|
|
136
136
|
proxy.jointMatrices = skinned ? entry.mesh.skin.skeleton.jointMatrices : null;
|
|
137
|
+
proxy.normalMatrices = skinned ? entry.mesh.skin.skeleton.normalMatrices : null;
|
|
137
138
|
proxy.material = entry.material;
|
|
138
139
|
proxy.normalMatrix = scratchNormalMatrix;
|
|
139
140
|
proxy.subset = entry.subset;
|
|
@@ -194,6 +195,7 @@ const proxy = {
|
|
|
194
195
|
colorMatrix: null,
|
|
195
196
|
colorScaleBias: null,
|
|
196
197
|
jointMatrices: null,
|
|
198
|
+
normalMatrices: null,
|
|
197
199
|
material: { kind: StandardMaterialKind },
|
|
198
200
|
normalMatrix: createMatrix3(),
|
|
199
201
|
subset: { indexCount: 0, indexOffset: 0 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawWgpuScene3D.js","sourceRoot":"","sources":["../src/drawWgpuScene3D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"drawWgpuScene3D.js","sourceRoot":"","sources":["../src/drawWgpuScene3D.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Scene3DKindUsage, SceneCoverageEntry, WgpuRenderState } from '@flighthq/types/contract';
|
|
2
|
-
export declare function explainWgpuScene3DCoverage(out: SceneCoverageEntry[], state: WgpuRenderState, usage: Readonly<Scene3DKindUsage
|
|
1
|
+
import type { Scene3DKindUsage, SceneCoverageCatalog, SceneCoverageEntry, WgpuRenderState } from '@flighthq/types/contract';
|
|
2
|
+
export declare function explainWgpuScene3DCoverage(out: SceneCoverageEntry[], state: WgpuRenderState, usage: Readonly<Scene3DKindUsage>, catalog: SceneCoverageCatalog): void;
|
|
3
3
|
export declare function hasWgpuScene3DCoverage(state: WgpuRenderState, usage: Readonly<Scene3DKindUsage>): boolean;
|
|
4
4
|
//# sourceMappingURL=explainWgpuScene3DCoverage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainWgpuScene3DCoverage.d.ts","sourceRoot":"","sources":["../src/explainWgpuScene3DCoverage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explainWgpuScene3DCoverage.d.ts","sourceRoot":"","sources":["../src/explainWgpuScene3DCoverage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAkBlC,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,kBAAkB,EAAE,EACzB,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACjC,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAGN;AAID,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAEzG"}
|
|
@@ -1,75 +1,86 @@
|
|
|
1
1
|
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
2
|
-
import {
|
|
3
|
-
import { RenderRegistry, SceneCoverage, StandardMaterialKind } from '@flighthq/types/contract';
|
|
4
|
-
import { getWgpuScene3DRuntime } from './wgpuScene3DRuntime';
|
|
2
|
+
import { RegistryEntryState, RenderRegistry, RequirementFacet, SceneCoverage, StandardMaterialKind, } from '@flighthq/types/contract';
|
|
5
3
|
// Clears `out`, then reports every kind in `usage` with how well this state is wired for it — satisfied
|
|
6
4
|
// ones included, so one call is a complete manifest. The WebGPU twin of explainGlScene3DCoverage, and
|
|
7
5
|
// the answering half of the scene↔render seam: @flighthq/scene3d says what a document uses, and this —
|
|
8
|
-
// the package that owns the WebGPU registries — says which of those it can serve.
|
|
6
|
+
// the package that owns the WebGPU registries — says which of those it can serve. The verdict reads the
|
|
7
|
+
// live registry; `catalog`, the caller's complete WebGPU inventory, supplies the primary remedy only
|
|
8
|
+
// for a shortfall.
|
|
9
9
|
//
|
|
10
10
|
// Proactive, unlike explainRenderRegistryMisses, which reports what already missed during a frame. Ask
|
|
11
11
|
// this after loading a document and before the first draw, while the answer is still actionable.
|
|
12
|
-
export function explainWgpuScene3DCoverage(out, state, usage) {
|
|
12
|
+
export function explainWgpuScene3DCoverage(out, state, usage, catalog) {
|
|
13
13
|
out.length = 0;
|
|
14
|
-
collectWgpuScene3DCoverageGaps(out, state, usage, false);
|
|
14
|
+
collectWgpuScene3DCoverageGaps(out, state, usage, false, catalog);
|
|
15
15
|
}
|
|
16
16
|
// Whether this state can draw every kind `usage` names, counting a fallback as a shortfall — the
|
|
17
17
|
// authored material is not what would appear. Stops at the first shortfall and never allocates.
|
|
18
18
|
export function hasWgpuScene3DCoverage(state, usage) {
|
|
19
|
-
return !collectWgpuScene3DCoverageGaps(null, state, usage, true);
|
|
19
|
+
return !collectWgpuScene3DCoverageGaps(null, state, usage, true, null);
|
|
20
20
|
}
|
|
21
21
|
// The single implementation both tiers read, so the boolean can never disagree with the explanation.
|
|
22
22
|
// `found` counts only real shortfalls, so appending satisfied entries never flips the predicate.
|
|
23
|
-
function collectWgpuScene3DCoverageGaps(out, state, usage, stopAtFirst) {
|
|
23
|
+
function collectWgpuScene3DCoverageGaps(out, state, usage, stopAtFirst, catalog) {
|
|
24
24
|
let found = false;
|
|
25
25
|
// drawScene3D resolves a subset's material by kind, then falls back to whatever is registered for
|
|
26
26
|
// StandardMaterialKind, then skips the subset. So an unregistered kind may still draw — as the
|
|
27
27
|
// standard material — which is a downgrade worth naming rather than a silence.
|
|
28
|
-
const materials =
|
|
29
|
-
const hasStandard = materials.
|
|
28
|
+
const materials = getWgpuRenderStateRuntime(state).registries.meshMaterialRenderers.entries;
|
|
29
|
+
const hasStandard = materials.get(StandardMaterialKind)?.state === RegistryEntryState.Bound;
|
|
30
30
|
for (let i = 0; i < usage.materialKinds.length; i++) {
|
|
31
31
|
const kind = usage.materialKinds[i];
|
|
32
|
-
if (materials.
|
|
33
|
-
out?.push({
|
|
32
|
+
if (materials.get(kind)?.state === RegistryEntryState.Bound) {
|
|
33
|
+
out?.push({
|
|
34
|
+
coverage: SceneCoverage.Satisfied,
|
|
35
|
+
facet: RequirementFacet.SceneMaterialKind,
|
|
36
|
+
kind,
|
|
37
|
+
registry: RenderRegistry.MaterialRenderer,
|
|
38
|
+
});
|
|
34
39
|
continue;
|
|
35
40
|
}
|
|
36
41
|
found = true;
|
|
37
42
|
if (stopAtFirst)
|
|
38
43
|
return true;
|
|
39
|
-
out?.push(
|
|
40
|
-
coverage: hasStandard ? SceneCoverage.Fallback : SceneCoverage.Missing,
|
|
41
|
-
kind,
|
|
42
|
-
registry: RenderRegistry.MaterialRenderer,
|
|
43
|
-
});
|
|
44
|
+
out?.push(createShortfallEntry(catalog, hasStandard, RequirementFacet.SceneMaterialKind, kind, RenderRegistry.MaterialRenderer));
|
|
44
45
|
}
|
|
45
46
|
// A texture whose source kind has no resolver samples nothing, so the map is simply absent from the
|
|
46
47
|
// draw — the untextured-model failure this seam exists to surface before it reaches a frame.
|
|
47
|
-
const resolvers = getWgpuRenderStateRuntime(state).
|
|
48
|
+
const resolvers = getWgpuRenderStateRuntime(state).registries.textureResolvers;
|
|
48
49
|
for (let i = 0; i < usage.textureSourceKinds.length; i++) {
|
|
49
50
|
const kind = usage.textureSourceKinds[i];
|
|
50
|
-
if (resolvers
|
|
51
|
-
out?.push({
|
|
51
|
+
if (resolvers.entries.get(kind)?.state === RegistryEntryState.Bound) {
|
|
52
|
+
out?.push({
|
|
53
|
+
coverage: SceneCoverage.Satisfied,
|
|
54
|
+
facet: RequirementFacet.SceneTextureSourceKind,
|
|
55
|
+
kind,
|
|
56
|
+
registry: RenderRegistry.TextureResolver,
|
|
57
|
+
});
|
|
52
58
|
continue;
|
|
53
59
|
}
|
|
54
60
|
found = true;
|
|
55
61
|
if (stopAtFirst)
|
|
56
62
|
return true;
|
|
57
|
-
out?.push(
|
|
63
|
+
out?.push(createShortfallEntry(catalog, false, RequirementFacet.SceneTextureSourceKind, kind, RenderRegistry.TextureResolver));
|
|
58
64
|
}
|
|
59
65
|
// The shaded compiler assembles base + ordered modifiers into ONE program, so an unregistered snippet
|
|
60
66
|
// does not fail a single lookup — it fails the whole material. A modifier kind is therefore always
|
|
61
|
-
//
|
|
62
|
-
const snippets =
|
|
67
|
+
// a total absence, never a fallback.
|
|
68
|
+
const snippets = getWgpuRenderStateRuntime(state).registries.modifierSnippets.entries;
|
|
63
69
|
for (let i = 0; i < usage.modifierKinds.length; i++) {
|
|
64
70
|
const kind = usage.modifierKinds[i];
|
|
65
|
-
if (snippets
|
|
66
|
-
out?.push({
|
|
71
|
+
if (snippets.get(kind)?.state === RegistryEntryState.Bound) {
|
|
72
|
+
out?.push({
|
|
73
|
+
coverage: SceneCoverage.Satisfied,
|
|
74
|
+
facet: RequirementFacet.SceneModifierKind,
|
|
75
|
+
kind,
|
|
76
|
+
registry: RenderRegistry.ModifierSnippet,
|
|
77
|
+
});
|
|
67
78
|
continue;
|
|
68
79
|
}
|
|
69
80
|
found = true;
|
|
70
81
|
if (stopAtFirst)
|
|
71
82
|
return true;
|
|
72
|
-
out?.push(
|
|
83
|
+
out?.push(createShortfallEntry(catalog, false, RequirementFacet.SceneModifierKind, kind, RenderRegistry.ModifierSnippet));
|
|
73
84
|
}
|
|
74
85
|
// usage.nodeKinds is deliberately NOT checked. The 3D pipeline collects meshes structurally
|
|
75
86
|
// (`geometry != null` in collectVisibleMeshes) rather than through the node-renderer registry, so no
|
|
@@ -78,4 +89,29 @@ function collectWgpuScene3DCoverageGaps(out, state, usage, stopAtFirst) {
|
|
|
78
89
|
// need nothing is this layer's call, not the scene's.
|
|
79
90
|
return found;
|
|
80
91
|
}
|
|
92
|
+
function createShortfallEntry(catalog, fallback, facet, kind, registry) {
|
|
93
|
+
const registration = findCatalogRegistration(catalog, kind, registry);
|
|
94
|
+
const base = { facet, kind, registry };
|
|
95
|
+
if (registration === null) {
|
|
96
|
+
return {
|
|
97
|
+
...base,
|
|
98
|
+
coverage: fallback ? SceneCoverage.FallbackUnavailable : SceneCoverage.Unavailable,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
...base,
|
|
103
|
+
coverage: fallback ? SceneCoverage.FallbackRemediable : SceneCoverage.Unregistered,
|
|
104
|
+
module: registration.module,
|
|
105
|
+
registrar: registration.registrar,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function findCatalogRegistration(catalog, kind, registry) {
|
|
109
|
+
if (catalog === null)
|
|
110
|
+
return null;
|
|
111
|
+
for (const entry of catalog) {
|
|
112
|
+
if (entry.kind === kind && entry.registry === registry)
|
|
113
|
+
return entry.registrations[0] ?? null;
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
81
117
|
//# sourceMappingURL=explainWgpuScene3DCoverage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainWgpuScene3DCoverage.js","sourceRoot":"","sources":["../src/explainWgpuScene3DCoverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"explainWgpuScene3DCoverage.js","sourceRoot":"","sources":["../src/explainWgpuScene3DCoverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getWgpuColorAdjustmentMaterialFeature } from '@flighthq/render-wgpu/contract';
|
|
2
2
|
import { WGPU_MESH_FRAGMENT_TAIL } from './wgpuMeshFragmentTail';
|
|
3
3
|
import { createWgpuMeshPipeline, ensureWgpuPerMapMaterialBinding, ensureWgpuScene3DPipeline, ensureWgpuShadowSampleLayout, getWgpuMeshPreludeWgsl, getWgpuMaterialSampler, resolveWgpuMaterialTextureView, spliceWgpuColorAdjustmentPrelude, stashWgpuUvTransform, WGPU_DIRECTIONAL_SHADOW_WGSL, } from './wgpuMeshPipeline';
|
|
4
4
|
import { getWgpuScene3DRuntime, getWgpuSkinningAdapter } from './wgpuScene3DRuntime';
|
|
@@ -90,7 +90,7 @@ export function ensureWgpuClassicPipeline(state, key, format) {
|
|
|
90
90
|
hasColorAdjustment: getWgpuScene3DRuntime(state).activeColorAdjustmentRun,
|
|
91
91
|
hasColorMatrix: getWgpuScene3DRuntime(state).activeColorMatrixRun,
|
|
92
92
|
};
|
|
93
|
-
return ensureWgpuScene3DPipeline(state, `classic:${format}|${buildWgpuClassicDefineKey(fullKey)}`, (blended, skinned) => compileWgpuClassicPipeline(state, fullKey, format, blended, skinned,
|
|
93
|
+
return ensureWgpuScene3DPipeline(state, `classic:${format}|${buildWgpuClassicDefineKey(fullKey)}`, (blended, skinned) => compileWgpuClassicPipeline(state, fullKey, format, blended, skinned, getWgpuColorAdjustmentMaterialFeature(state)));
|
|
94
94
|
}
|
|
95
95
|
// The full WGSL module source for a define key: the const-flag block (lighting model first) + the
|
|
96
96
|
// shared mesh prelude (Frame/Draw/vs_main) + the classic material block + fs_main.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuClassicPrelude.js","sourceRoot":"","sources":["../src/wgpuClassicPrelude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuClassicPrelude.js","sourceRoot":"","sources":["../src/wgpuClassicPrelude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,gCAAgC,CAAC;AAWvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACrF,uGAAuG;AACvG,oGAAoG;AACpG,mGAAmG;AACnG,oGAAoG;AACpG,YAAY;AACZ,MAAM,UAAU,sBAAsB,CACpC,KAAsB,EACtB,QAAuC,EACvC,WAAmB,EACnB,OAA8B,EAC9B,QAA+B,EAC/B,SAAiB,EACjB,WAAmB,EACnB,UAAoC,EACpC,WAAqC,EACrC,SAAmC,EACnC,QAAkC;IAElC,+FAA+F;IAC/F,uGAAuG;IACvG,qGAAqG;IACrG,qGAAqG;IACrG,eAAe,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/D,eAAe,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAChE,eAAe,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9D,eAAe,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,YAAY,CAAC,CAAC,CAAC,GAAG,8BAA8B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACpE,YAAY,CAAC,CAAC,CAAC,GAAG,8BAA8B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrE,YAAY,CAAC,CAAC,CAAC,GAAG,8BAA8B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnE,YAAY,CAAC,CAAC,CAAC,GAAG,8BAA8B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,+BAA+B,CAC7C,KAAK,EACL,WAAW,EACX,QAAQ,CAAC,uBAAuB,EAChC,qBAAqB,EACrB,eAAe,EACf,YAAY,CACb,CAAC;IAEF,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC7F,8FAA8F;IAC9F,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC,SAAS,CAAC;AAC3B,CAAC;AAED,qGAAqG;AACrG,uGAAuG;AACvG,oGAAoG;AACpG,oDAAoD;AACpD,MAAM,UAAU,yBAAyB,CAAC,GAAmC;IAC3E,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACnG,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAC9G,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAC7B,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjI,CAAC;AAED,kGAAkG;AAClG,wFAAwF;AACxF,gFAAgF;AAChF,6BAA6B;AAC7B,MAAM,UAAU,0BAA0B,CACxC,KAAsB,EACtB,GAAmC,EACnC,MAAwB,EACxB,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EACf,yBAA8E,IAAI;IAElF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACvC,IAAI,EAAE,gCAAgC,CAAC,GAAG,EAAE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC;KAC5G,CAAC,CAAC;IACH,MAAM,uBAAuB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC3D,OAAO,EAAE;YACP,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YAChF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YACnF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YACnF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YACnF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YACnF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;YACrF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;YACrF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;YACrF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;SACtF;KACF,CAAC,CAAC;IACH,uGAAuG;IACvG,wGAAwG;IACxG,sGAAsG;IACtG,OAAO,sBAAsB,CAAC,KAAK,EAAE;QACnC,OAAO;QACP,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM;QACN,uBAAuB;QACvB,MAAM;QACN,qBAAqB,EAAE,4BAA4B,CAAC,KAAK,CAAC;QAC1D,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,uGAAuG;AACvG,iGAAiG;AACjG,oFAAoF;AACpF,MAAM,UAAU,yBAAyB,CACvC,KAAsB,EACtB,GAAmC,EACnC,MAAwB;IAExB,MAAM,OAAO,GAAyB;QACpC,GAAG,GAAG;QACN,kBAAkB,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,wBAAwB;QACzE,cAAc,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,oBAAoB;KAClE,CAAC;IACF,OAAO,yBAAyB,CAC9B,KAAK,EACL,WAAW,MAAM,IAAI,yBAAyB,CAAC,OAAO,CAAC,EAAE,EACzD,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CACnB,0BAA0B,CACxB,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,qCAAqC,CAAC,KAAK,CAAC,CAC7C,CACJ,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,mFAAmF;AACnF,MAAM,UAAU,gCAAgC,CAC9C,GAAmC,EACnC,OAAO,GAAG,KAAK,EACf,WAAiD,IAAI,EACrD,yBAA8E,IAAI;IAElF,IAAI,MAAM,GAAG,+BAA+B,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACxF,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,sBAAsB,KAAK,IAAI,EAAE,CAAC;QACtF,MAAM,GAAG,gCAAgC,CAAC,MAAM,EAAE,sBAAsB,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CACnG,oHAAoH,EACpH;kBAEF,GAAG,CAAC,cAAc;YAChB,CAAC,CAAC,uKAAuK;YACzK,CAAC,CAAC,sFACN;;iDAE+C,CAC5C,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qGAAqG;AACrG,wGAAwG;AACxG,uGAAuG;AACvG,kFAAkF;AAClF,MAAM,UAAU,6CAA6C,CAC3D,GAAmC,EACnC,OAAO,GAAG,KAAK,EACf,WAAiD,IAAI;IAErD,OAAO,+BAA+B,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,gCAAgC,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,+BAA+B,CACtC,GAAmC,EACnC,OAAgB,EAChB,QAA8C,EAC9C,IAAY;IAEZ,OAAO,CACL,iCAAiC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK;QACtF,sCAAsC,GAAG,CAAC,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK;QAChG,6BAA6B,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK;QACzE,+BAA+B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK;QACtE,kCAAkC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK;QAC3E,mCAAmC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK;QAC7E,iCAAiC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK;QACzE,gCAAgC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK;QACvE,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC;QACzC,IAAI,CACL,CAAC;AACJ,CAAC;AAED,sGAAsG;AACtG,2DAA2D;AAC3D,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,uBAAuB;;;;;;;;;;;;;;;;;EAiB7D,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmI7B,CAAC;AAEF,MAAM,gCAAgC,GAAG,iBAAiB,CAAC,OAAO,CAChE;;;;;;;0DAOwD,EACxD;;;;0DAIwD,CACzD;KACE,UAAU,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;KAC/C,UAAU,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;KAChD,UAAU,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAC9C,UAAU,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAEjD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,eAAe,GAAG,IAAI,KAAK,CAAa,CAAC,CAAC,CAAC;AACjD,qGAAqG;AACrG,wGAAwG;AACxG,MAAM,YAAY,GAAG,IAAI,KAAK,CAAiB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuMeshMaterialRegistry.d.ts","sourceRoot":"","sources":["../src/wgpuMeshMaterialRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuMeshMaterialRegistry.d.ts","sourceRoot":"","sources":["../src/wgpuMeshMaterialRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAM1G,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,wBAAwB,GAAG,IAAI,CAG/G;AAMD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,wBAAwB,GACjC,IAAI,CAON;AAMD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,GAClC,wBAAwB,GAAG,IAAI,CAQjC"}
|
|
@@ -1,29 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { withRegistryTableEntry } from '@flighthq/registry/contract';
|
|
2
|
+
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
3
|
+
import { RegistryEntryState, StandardMaterialKind } from '@flighthq/types/contract';
|
|
3
4
|
// Returns the 3D mesh-material renderer registered for a kind on this state, or null. The 3D scene
|
|
4
|
-
// analog of getWgpuMaterialRenderer; reads scene-wgpu's own per-state registry
|
|
5
|
-
//
|
|
5
|
+
// analog of getWgpuMaterialRenderer; reads scene-wgpu's own per-state persistent registry table,
|
|
6
|
+
// distinct from the 2D material-renderer table.
|
|
6
7
|
export function getWgpuMeshMaterialRenderer(state, kind) {
|
|
7
|
-
|
|
8
|
+
const entry = getWgpuRenderStateRuntime(state).registries.meshMaterialRenderers.entries.get(kind);
|
|
9
|
+
return entry?.state === RegistryEntryState.Bound ? entry.value : null;
|
|
8
10
|
}
|
|
9
11
|
// Registers a 3D mesh-material renderer against a material kind on this state. Opt-in: drawScene3D only
|
|
10
12
|
// draws subsets whose material kind (or StandardMaterialKind) has a renderer here. Call
|
|
11
13
|
// registerWgpuStandardPbrMaterial for the built-in StandardPbr path. Mirrors registerWgpuMaterialRenderer
|
|
12
14
|
// but writes scene-wgpu's separate 3D registry.
|
|
13
15
|
export function registerWgpuMeshMaterialRenderer(state, kind, renderer) {
|
|
14
|
-
|
|
16
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
17
|
+
runtime.registries.meshMaterialRenderers = withRegistryTableEntry(runtime.registries.meshMaterialRenderers, kind, renderer);
|
|
15
18
|
}
|
|
16
19
|
// Resolves a mesh subset's material to its registered 3D renderer: by the material's kind, else the
|
|
17
20
|
// renderer registered for StandardMaterialKind, else null. drawScene3D skips a subset whose material
|
|
18
21
|
// resolves to null (no built-in fallback — every material, including the default, enters only through
|
|
19
22
|
// registration). Mirrors resolveWgpuMaterialRenderer over the 3D registry.
|
|
20
23
|
export function resolveWgpuMeshMaterialRenderer(state, material) {
|
|
21
|
-
const
|
|
24
|
+
const entries = getWgpuRenderStateRuntime(state).registries.meshMaterialRenderers.entries;
|
|
22
25
|
if (material !== null) {
|
|
23
|
-
const
|
|
24
|
-
if (
|
|
25
|
-
return
|
|
26
|
+
const entry = entries.get(material.kind);
|
|
27
|
+
if (entry?.state === RegistryEntryState.Bound)
|
|
28
|
+
return entry.value;
|
|
26
29
|
}
|
|
27
|
-
|
|
30
|
+
const fallback = entries.get(StandardMaterialKind);
|
|
31
|
+
return fallback?.state === RegistryEntryState.Bound ? fallback.value : null;
|
|
28
32
|
}
|
|
29
33
|
//# sourceMappingURL=wgpuMeshMaterialRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuMeshMaterialRegistry.js","sourceRoot":"","sources":["../src/wgpuMeshMaterialRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuMeshMaterialRegistry.js","sourceRoot":"","sources":["../src/wgpuMeshMaterialRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEpF,mGAAmG;AACnG,iGAAiG;AACjG,gDAAgD;AAChD,MAAM,UAAU,2BAA2B,CAAC,KAAsB,EAAE,IAAU;IAC5E,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClG,OAAO,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,wGAAwG;AACxG,wFAAwF;AACxF,0GAA0G;AAC1G,gDAAgD;AAChD,MAAM,UAAU,gCAAgC,CAC9C,KAAsB,EACtB,IAAU,EACV,QAAkC;IAElC,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,qBAAqB,GAAG,sBAAsB,CAC/D,OAAO,CAAC,UAAU,CAAC,qBAAqB,EACxC,IAAI,EACJ,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,qGAAqG;AACrG,sGAAsG;AACtG,2EAA2E;AAC3E,MAAM,UAAU,+BAA+B,CAC7C,KAAsB,EACtB,QAAmC;IAEnC,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC;IAC1F,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC;IACpE,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnD,OAAO,QAAQ,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC"}
|
|
@@ -39,7 +39,7 @@ export declare function stashWgpuUvTransform(state: WgpuRenderState, texture: Re
|
|
|
39
39
|
export declare function wgpuPerMapMaterialBindGroupNeedsRebuild(binding: Readonly<WgpuMaterialBinding>, samplers: readonly GPUSampler[], views: readonly GPUTextureView[]): boolean;
|
|
40
40
|
export declare function writeWgpuDrawUniform(state: WgpuRenderState, proxy: Readonly<Scene3DRenderProxy>): GPUBindGroup;
|
|
41
41
|
export declare const WGPU_MESH_PRELUDE_WGSL = "\nconst PI : f32 = 3.14159265359;\nconst MAX_FORWARD_LIGHTS : u32 = 4u;\n\nstruct Frame {\n viewProjection : mat4x4f,\n cameraPosition : vec4f,\n lightDirection : vec4f, // xyz = directional light travel direction; w = directionalCount\n directionalRadiance : vec4f, // rgb = linear premultiplied radiance\n ambientRadiance : vec4f, // rgb = linear premultiplied radiance; w = ambientCount\n view : mat4x4f, // camera view matrix; rotates world normals into view space (matcap)\n // Punctual light arrays \u2014 layout mirrors Scene3DLightBlock.data (packScene3DLightBlock).\n // point[i] = pointLights[i*2+0]={pos.xyz,range}, [i*2+1]={radiance.rgb,invSqrRange}\n // spot[i] = spotLights[i*4+0..1] as point, [i*4+2]={dir.xyz,_}, [i*4+3]={cosInner,cosOuter,_,_}\n // hemisphere[i] = hemisphereLights[i*3+0]={sky.rgb,_}, [i*3+1]={ground.rgb,_}, [i*3+2]={up.xyz,_}\n pointLights : array<vec4f, 8>, // MAX_FORWARD_LIGHTS * 2\n spotLights : array<vec4f, 16>, // MAX_FORWARD_LIGHTS * 4\n hemisphereLights : array<vec4f, 12>, // MAX_FORWARD_LIGHTS * 3\n punctualCounts : vec4f, // x = pointCount, y = spotCount, z = hemisphereCount\n};\n\nstruct Draw {\n world : mat4x4f,\n normalMatrix : mat3x3f,\n uvTransform : mat3x3f, // KHR_texture_transform of the material's primary map (identity when unused)\n params : vec4f, // x = resolved object alpha, y = alpha-is-coverage flag\n};\n\n@group(0) @binding(0) var<uniform> frame : Frame;\n@group(1) @binding(0) var<uniform> draw : Draw;\n\nstruct VertexOutput {\n @builtin(position) clipPosition : vec4f,\n @location(0) worldPosition : vec3f,\n @location(1) worldNormal : vec3f,\n @location(2) worldTangent : vec4f,\n @location(3) uv : vec2f,\n @location(4) @interpolate(flat) objectAlpha : f32,\n};\n\n@vertex fn vs_main(\n @location(0) position : vec3f,\n @location(1) normal : vec3f,\n @location(2) tangent : vec4f,\n @location(3) uv : vec2f,\n) -> VertexOutput {\n var out : VertexOutput;\n var localPosition = vec4f(position, 1.0);\n var localNormal = normal;\n var localTangent = tangent.xyz;\n let world = draw.world * localPosition;\n out.worldPosition = world.xyz;\n out.clipPosition = frame.viewProjection * world;\n out.worldNormal = draw.normalMatrix * localNormal;\n out.worldTangent = vec4f(draw.normalMatrix * localTangent, tangent.w);\n // Apply the material's KHR_texture_transform to the uv. draw.uvTransform is identity for an untiled\n // material (writeWgpuDrawUniform's default), so this is a no-op there \u2014 applied unconditionally rather\n // than behind a pipeline const because this vs_main is shared by every family (classic/unlit/toon/\n // matcap/debug/wireframe) and a const would have to thread through all of them; a per-vertex mat3\n // multiply is negligible. The scene-gl mirror gates the equivalent branch via its #ifdef variant.\n out.uv = (draw.uvTransform * vec3f(uv, 1.0)).xy;\n out.objectAlpha = draw.params.x;\n return out;\n}\n\n";
|
|
42
|
-
export declare function writeWgpuFrameUniform(state: WgpuRenderState, camera: Readonly<Camera3D>, lights: Readonly<Scene3DLightBlock>):
|
|
42
|
+
export declare function writeWgpuFrameUniform(state: WgpuRenderState, camera: Readonly<Camera3D>, lights: Readonly<Scene3DLightBlock>): boolean;
|
|
43
43
|
export declare const SHADOW_DEPTH_FORMAT: GPUTextureFormat;
|
|
44
44
|
export declare const WGPU_DIRECTIONAL_SHADOW_WGSL = "\nconst MAX_DIRECTIONAL_SHADOW_PCF_RADIUS : i32 = 2;\n\nstruct Shadow {\n matrix : mat4x4f,\n params : vec4f,\n};\n\n@group(3) @binding(0) var<uniform> shadow : Shadow;\n@group(3) @binding(1) var shadowMap : texture_depth_2d;\n@group(3) @binding(2) var shadowSampler : sampler_comparison;\n\n// Directional shadow factor at a world position. The compile-time radius cap bounds fragment cost;\n// radius 0 and 1 take dedicated one-tap and 3x3 paths, while radius 2 takes the bounded 5x5 path.\n// Outside the frustum / disabled = lit.\nfn compareDirectionalShadow(uv : vec2f, depthRef : f32) -> f32 {\n return textureSampleCompareLevel(shadowMap, shadowSampler, uv, depthRef);\n}\n\nfn sampleDirectionalShadow(worldPos : vec3f, geometricNormal : vec3f) -> f32 {\n if (shadow.params.x < 0.5) {\n return 1.0;\n }\n let biasedWorldPos = worldPos + geometricNormal * shadow.params.w;\n let clip = shadow.matrix * vec4f(biasedWorldPos, 1.0);\n let ndc = clip.xyz / clip.w;\n let uv = vec2f(ndc.x * 0.5 + 0.5, 1.0 - (ndc.y * 0.5 + 0.5));\n let depthRef = ndc.z * 0.5 + 0.5 - shadow.params.z;\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0 || depthRef > 1.0) {\n return 1.0;\n }\n let radius = clamp(i32(shadow.params.y), 0, MAX_DIRECTIONAL_SHADOW_PCF_RADIUS);\n let texel = 1.0 / vec2f(textureDimensions(shadowMap, 0));\n if (radius == 0) {\n return compareDirectionalShadow(uv, depthRef);\n }\n\n var sum = 0.0;\n if (radius == 1) {\n for (var x = -1; x <= 1; x = x + 1) {\n for (var y = -1; y <= 1; y = y + 1) {\n let offset = vec2f(f32(x), f32(y)) * texel;\n sum = sum + compareDirectionalShadow(uv + offset, depthRef);\n }\n }\n return sum / 9.0;\n }\n for (var x = -MAX_DIRECTIONAL_SHADOW_PCF_RADIUS; x <= MAX_DIRECTIONAL_SHADOW_PCF_RADIUS; x = x + 1) {\n for (var y = -MAX_DIRECTIONAL_SHADOW_PCF_RADIUS; y <= MAX_DIRECTIONAL_SHADOW_PCF_RADIUS; y = y + 1) {\n let offset = vec2f(f32(x), f32(y)) * texel;\n sum = sum + compareDirectionalShadow(uv + offset, depthRef);\n }\n }\n let diameter = f32(MAX_DIRECTIONAL_SHADOW_PCF_RADIUS * 2 + 1);\n return sum / (diameter * diameter);\n}\n";
|
|
45
45
|
//# sourceMappingURL=wgpuMeshPipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuMeshPipeline.d.ts","sourceRoot":"","sources":["../src/wgpuMeshPipeline.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAGV,mBAAmB,EACnB,gBAAgB,EAChB,kCAAkC,EAClC,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAYlC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAOpE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAoBpG;AAKD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,YAAY,CAOd;AAKD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,YAAY,CAMd;AAUD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C,MAAM,EAAE,gBAAgB,CAAC;IACzB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,uBAAuB,EAAE,kBAAkB,CAAC;IAC5C,MAAM,EAAE,eAAe,CAAC;IACxB,wBAAwB,CAAC,EAAE,kBAAkB,CAAC;IAC9C,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC,GACD,gBAAgB,CAuDlB;AAaD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACnC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuMeshPipeline.d.ts","sourceRoot":"","sources":["../src/wgpuMeshPipeline.ts"],"names":[],"mappings":"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"}
|