@forgeax/engine-render 0.1.24 → 0.1.25
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/README.md +100 -1
- package/dist/assembly/factory.d.ts +1 -1
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/material/surface-projection.d.ts +24 -0
- package/dist/assembly/material/surface-projection.d.ts.map +1 -0
- package/dist/assembly/material-shader-policy.d.ts +20 -0
- package/dist/assembly/material-shader-policy.d.ts.map +1 -1
- package/dist/assembly/webgpu-ready.d.ts.map +1 -1
- package/dist/assembly/webgpu-renderer.d.ts +1 -1
- package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
- package/dist/assembly/webgpu-vertex-layouts.d.ts +89 -0
- package/dist/assembly/webgpu-vertex-layouts.d.ts.map +1 -0
- package/dist/assets/asset-decoders.d.ts.map +1 -1
- package/dist/authoring.mjs +1 -1
- package/dist/{chunk-Q752SHI5.mjs → chunk-ADHHVYLW.mjs} +3 -3
- package/dist/chunk-ADHHVYLW.mjs.map +1 -0
- package/dist/{chunk-TFH5I7JJ.mjs → chunk-E34VL5VI.mjs} +3 -3
- package/dist/{chunk-TFH5I7JJ.mjs.map → chunk-E34VL5VI.mjs.map} +1 -1
- package/dist/{chunk-KZFTK6DO.mjs → chunk-HKXTW355.mjs} +7 -4
- package/dist/chunk-HKXTW355.mjs.map +1 -0
- package/dist/{chunk-YKB5DQV7.mjs → chunk-JSEDTZYS.mjs} +87 -19
- package/dist/chunk-JSEDTZYS.mjs.map +1 -0
- package/dist/{chunk-UQYS7FRM.mjs → chunk-KM2NOX2I.mjs} +4 -4
- package/dist/{chunk-UQYS7FRM.mjs.map → chunk-KM2NOX2I.mjs.map} +1 -1
- package/dist/{chunk-Z3YYH2MB.mjs → chunk-N3RT2EUR.mjs} +94 -41
- package/dist/chunk-N3RT2EUR.mjs.map +1 -0
- package/dist/{chunk-YRUYGA4A.mjs → chunk-TCLDX7SZ.mjs} +559 -138
- package/dist/chunk-TCLDX7SZ.mjs.map +1 -0
- package/dist/{chunk-RR5L4SRS.mjs → chunk-ZZ4YQ474.mjs} +2 -2
- package/dist/{chunk-RR5L4SRS.mjs.map → chunk-ZZ4YQ474.mjs.map} +1 -1
- package/dist/components/instances.d.ts +13 -31
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +865 -142
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +6 -1
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +4 -0
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +27 -9
- package/dist/index.mjs.map +1 -1
- package/dist/instance-buffer-cache.d.ts +7 -1
- package/dist/instance-buffer-cache.d.ts.map +1 -1
- package/dist/instances.d.ts +101 -0
- package/dist/instances.d.ts.map +1 -0
- package/dist/internal.mjs +5 -5
- package/dist/materials.d.ts +63 -2
- package/dist/materials.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +13 -2
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +22 -3
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +2 -1
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts +11 -1
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/recovery/render-system-candidate.d.ts +1 -1
- package/dist/recovery/render-system-candidate.d.ts.map +1 -1
- package/dist/render-contract.d.ts +4 -0
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts +4 -0
- package/dist/render-system-extract-tail.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +25 -1
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +4 -1
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene-types.d.ts +2 -0
- package/dist/scene/render-scene-types.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +12 -1
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/systems/skin-palette-allocator.d.ts +6 -0
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/temporal/index.mjs +5 -5
- package/package.json +20 -20
- package/src/__tests__/gpu-scene.unit.test.ts +38 -2
- package/src/__tests__/instances-store.unit.test.ts +46 -0
- package/src/__tests__/instances-world-ownership.integration.test.ts +62 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +5 -13
- package/src/__tests__/material-pass-policy.unit.test.ts +69 -0
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +69 -0
- package/src/__tests__/material-surface-authoring.test-d.ts +62 -0
- package/src/__tests__/materials-transmission-validation.unit.test.ts +24 -0
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +0 -4
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +42 -0
- package/src/__tests__/skin-motion-regression.unit.test.ts +33 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +30 -2
- package/src/__tests__/surface-adjacent-regressions.integration.test.ts +60 -0
- package/src/__tests__/surface-standard-pipeline.browser.test.ts +20 -0
- package/src/__tests__/surface-standard-pipeline.dawn.test.ts +20 -0
- package/src/__tests__/surface-standard-pipeline.fixture.ts +132 -0
- package/src/__tests__/surface-variant-provenance.integration.test.ts +33 -0
- package/src/__tests__/volumetric-fog-budget-recovery.integration.test.ts +1 -1
- package/src/assembly/factory.ts +2 -0
- package/src/assembly/material/__tests__/standard-layer-plan-projection.integration.test.ts +18 -0
- package/src/assembly/material/__tests__/surface-pass-projection.integration.test.ts +62 -0
- package/src/assembly/material/surface-projection.ts +90 -0
- package/src/assembly/material-shader-policy.ts +88 -10
- package/src/assembly/recovery/renderer-recover.ts +1 -1
- package/src/assembly/webgpu-ready.ts +3 -16
- package/src/assembly/webgpu-renderer.ts +90 -158
- package/src/assembly/webgpu-vertex-layouts.ts +132 -0
- package/src/assets/asset-decoders.ts +27 -4
- package/src/components/instances.ts +14 -197
- package/src/gpu-driven/production-raster.ts +34 -1
- package/src/gpu-scene.ts +84 -29
- package/src/index.ts +1 -0
- package/src/instance-buffer-cache.ts +14 -1
- package/src/instances.ts +288 -0
- package/src/materials.ts +107 -12
- package/src/pipeline-builder.ts +14 -10
- package/src/pipeline-spec.ts +6 -14
- package/src/record/frame-snapshot.ts +19 -2
- package/src/record/frame.ts +31 -2
- package/src/record/main-pass-geometry.ts +498 -59
- package/src/record/main-pass-sprite-draws.ts +1 -1
- package/src/record/render-context.ts +4 -0
- package/src/record/shadow-pass.ts +46 -99
- package/src/recovery/render-system-candidate.ts +41 -4
- package/src/render-contract.ts +4 -0
- package/src/render-system-extract-tail.ts +107 -51
- package/src/render-system-extract.ts +53 -26
- package/src/render-system.ts +40 -5
- package/src/scene/render-scene-types.ts +2 -0
- package/src/scene/render-scene.ts +579 -36
- package/src/systems/skin-palette-allocator.ts +129 -7
- package/src/transmission/__tests__/surface-compatibility.integration.test.ts +32 -0
- package/dist/chunk-KZFTK6DO.mjs.map +0 -1
- package/dist/chunk-Q752SHI5.mjs.map +0 -1
- package/dist/chunk-YKB5DQV7.mjs.map +0 -1
- package/dist/chunk-YRUYGA4A.mjs.map +0 -1
- package/dist/chunk-Z3YYH2MB.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -652,6 +652,57 @@ infer state from URLs, or repair a producer failure. Aggregate counts are
|
|
|
652
652
|
derived from the observations, so an AI can inspect first, repair or recook the
|
|
653
653
|
producer, and retry without guessing at hidden renderer state.
|
|
654
654
|
|
|
655
|
+
### Large Instances ownership
|
|
656
|
+
|
|
657
|
+
> [!IMPORTANT]
|
|
658
|
+
> World owns `Instances.transforms`. Create, replace and read instance matrices
|
|
659
|
+
> through ECS without constructing a Renderer. A scene remains usable by another
|
|
660
|
+
> Renderer after the first is disposed; glTF SceneAssets retain their matrices.
|
|
661
|
+
|
|
662
|
+
| Data | Owner |
|
|
663
|
+
|:--|:--|
|
|
664
|
+
| Instance matrices and entity lifecycle | World component storage |
|
|
665
|
+
| Detached instance snapshot and content revision | Per-renderer projection |
|
|
666
|
+
| GPU allocation, binding-sized chunks and uploaded revision | Existing renderer device generation |
|
|
667
|
+
|
|
668
|
+
Small managed arrays keep the existing BufferPool size classes. Arrays larger
|
|
669
|
+
than the largest pooled class use dedicated allocations and are released instead
|
|
670
|
+
of retained in a large free bucket. The same authoring path supports 1,500,
|
|
671
|
+
10,000 and 20,000 instances without application chunking.
|
|
672
|
+
|
|
673
|
+
Each renderer compares complete extracted matrices against its own prior
|
|
674
|
+
projection. Identical input retains the projection revision; a changed input
|
|
675
|
+
publishes a complete new snapshot. Upload completion belongs to each GPU
|
|
676
|
+
resident, not to a shared authoring dirty-range or a snapshot read. Stable
|
|
677
|
+
residents skip upload; changed or new residents upload the complete applicable
|
|
678
|
+
binding chunk. A renderer that skips frames still receives every latest value.
|
|
679
|
+
|
|
680
|
+
`renderer.inspect().instanceCollections` reports derived projection identity,
|
|
681
|
+
count, revision and upload/residency facts. These IDs never appear in components
|
|
682
|
+
or SceneAssets and cannot be used to author a scene. Residency here describes
|
|
683
|
+
the direct/chunked instance buffers; GPU-driven primary rendering is reported
|
|
684
|
+
by `inspect().renderScene` and does not retain those unused buffers.
|
|
685
|
+
|
|
686
|
+
Device loss uses the existing `renderer.recover()` candidate-generation protocol.
|
|
687
|
+
The World stays authoritative; candidate preparation initializes replacement
|
|
688
|
+
instance buffers from the complete snapshot before publication. Main and shadow
|
|
689
|
+
passes share these residents, so the first recovered frame performs no cold
|
|
690
|
+
instance upload for the prepared visible workset. Instances
|
|
691
|
+
introduce no additional recovery API or lifecycle.
|
|
692
|
+
|
|
693
|
+
Shader preparation, layouts and uploads all consume `RhiDevice.caps.storageBuffer`.
|
|
694
|
+
Material boot variants include only axes declared by the material manifest.
|
|
695
|
+
The Dawn gate restricts the advertised capability on a real WebGPU device and
|
|
696
|
+
verifies uniform bindings below and above 128 instances with material pixels,
|
|
697
|
+
GPU validation and stable-upload receipts.
|
|
698
|
+
|
|
699
|
+
Population checks use the same World component route:
|
|
700
|
+
|
|
701
|
+
```bash
|
|
702
|
+
pnpm exec vitest run --config vitest.browser.config.ts --project=browser apps/parity/instancing-static/src/__tests__/instances.browser.test.ts
|
|
703
|
+
INSTANCE_COUNT=20000 SMOKE_MIN_FRAMES=600 SMOKE_DURATION_MS=0 pnpm --filter @forgeax/parity-instancing-static smoke
|
|
704
|
+
```
|
|
705
|
+
|
|
655
706
|
### Instances CPU bounds contract
|
|
656
707
|
|
|
657
708
|
`Instances` remains author data containing only packed local transforms. The
|
|
@@ -728,7 +779,7 @@ for `Points`; indexed and non-indexed paired `line-list` meshes are valid for
|
|
|
728
779
|
| `Lines` + paired `line-list` + finite positive `widthPx` + unlit forward material | supported | each pair is one line segment |
|
|
729
780
|
| `line-strip`, triangle topology, mixed submeshes, or an odd line-list tail | refused | topology cannot be inferred or admitted atomically |
|
|
730
781
|
| both `Points` and `Lines` on one candidate | refused | one entity has one style lane |
|
|
731
|
-
| `Materials.standard`, shadow-caster, deferred, or another shader module | refused | M1
|
|
782
|
+
| `Materials.standard`, shadow-caster, deferred, or another shader module | refused for this Points/Lines lane | M1 admits only one engine-owned unlit forward pass here |
|
|
732
783
|
| candidate count over `maxPoints` or `maxSegments` | refused | bounded admission prevents partial publication |
|
|
733
784
|
|
|
734
785
|
When admission refuses a candidate, consume the structured result rather than
|
|
@@ -771,6 +822,54 @@ M1 intentionally refuses strip expansion, joins, caps, dashes, picking, and
|
|
|
771
822
|
visible point/line draw preparation. Those are later implementation lanes, not
|
|
772
823
|
implicit fallbacks in authoring code.
|
|
773
824
|
|
|
825
|
+
## Standard Surface authoring
|
|
826
|
+
|
|
827
|
+
`Materials.standard` is the import-first material entry for lit content. A
|
|
828
|
+
default call uses the built-in Surface; a custom call names one imported WGSL
|
|
829
|
+
Surface and provides only its root parameter contract:
|
|
830
|
+
|
|
831
|
+
```ts
|
|
832
|
+
import { Materials } from '@forgeax/engine-render';
|
|
833
|
+
|
|
834
|
+
const material = Materials.standard({
|
|
835
|
+
surfaceModule: 'game_3d::rusted_iron_surface',
|
|
836
|
+
parameters: [
|
|
837
|
+
{ name: 'ironColor', type: 'color' },
|
|
838
|
+
{ name: 'rustDark', type: 'color' },
|
|
839
|
+
{ name: 'rustBright', type: 'color' },
|
|
840
|
+
{ name: 'noiseScale', type: 'f32', default: 1.85 },
|
|
841
|
+
],
|
|
842
|
+
values: {
|
|
843
|
+
ironColor: [0.4, 0.45, 0.47, 1],
|
|
844
|
+
rustDark: [0.42, 0.085, 0.018, 1],
|
|
845
|
+
rustBright: [0.95, 0.34, 0.055, 1],
|
|
846
|
+
noiseScale: 1.85,
|
|
847
|
+
},
|
|
848
|
+
});
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
The custom WGSL implements only `evaluate_surface`; it does not declare
|
|
852
|
+
stages, bindings, lighting, or output code. The Engine composes the result
|
|
853
|
+
with its Standard shader and derives the pass family: opaque base-only
|
|
854
|
+
materials receive Forward, Deferred, and ShadowCaster; a physical second
|
|
855
|
+
layer or transmission receives Forward and ShadowCaster; blending follows the
|
|
856
|
+
same forward-only policy. This section is about the Standard lane, not the
|
|
857
|
+
separate Points/Lines admission rule above. See the
|
|
858
|
+
[`shader Surface contract`](../shader/README.md#standard-surface-contract) and
|
|
859
|
+
the [`game-3d` import example](../../templates/game-3d/README.md#import-first-surface-material-example)
|
|
860
|
+
for the source and Pack route.
|
|
861
|
+
|
|
862
|
+
The compiler and renderer share one pure `StandardLayerPlan`:
|
|
863
|
+
`deriveStandardLayerPlan(effectiveParameters)`. It is the only derivation used
|
|
864
|
+
for the composed source closure, pass projection, and program identity, so a
|
|
865
|
+
consumer never re-infers physical layers from `SurfaceData`.
|
|
866
|
+
|
|
867
|
+
| Root contract | `StandardLayerPlan` result | Render projection |
|
|
868
|
+
|:--|:--|:--|
|
|
869
|
+
| base-only Standard | no second physical layer | Deferred plus Forward and ShadowCaster |
|
|
870
|
+
| Standard with a physical layer | physical layer present | Forward plus ShadowCaster |
|
|
871
|
+
| full-custom escape hatch | no Standard plan | authored custom pass contract |
|
|
872
|
+
|
|
774
873
|
## Points and Lines runtime contract
|
|
775
874
|
|
|
776
875
|
The complete public closure is `MeshAsset` topology, one `Points` or `Lines`
|
|
@@ -4,7 +4,7 @@ import type { BundlerOptions } from './bundler-contract';
|
|
|
4
4
|
import type { RendererAssemblyImplementation } from './host-contract';
|
|
5
5
|
export type { BundlerOptions } from './bundler-contract';
|
|
6
6
|
export type { LayoutKind, MaterialShaderBindingContract, MaterialShaderManifestEntry, MaterialShaderVertexInputContract, MeshSsboBufferWrapper, MeshSsboGrowController, MeshSsboGrowControllerInit, MeshSsboGrowDevice, MeshSsboGrowErrorRegistry, MeshSsboGrowResult, MeshSsboState, } from './webgpu-renderer';
|
|
7
|
-
export { allowsUnlitPreparedFallback, assembleMaterialProjection, createMeshSsboGrowController, deriveStorageBufferCeiling, exposeRenderer, isSharedMaterialUserRegionCompatible, normalizeMaterialShaderVariantSet, projectMaterialPipeline, resolveMaterialShaderBindingContract, resolveMaterialShaderVariantSet, resolveMaterialShaderVertexInputContract, routeMaterialPipeline, selectHdrpPbrPrewarmVariants, selectNoColorPbrVariant, selectPipelineLayoutForVariant, selectProbePrewarmVariants, selectSkinPrewarmVariants, selectStandardPbrTransmissionPrewarmVariants, shouldDeferMissingPreparedMaterialShader, updateMaterialRuntimeValues, } from './webgpu-renderer';
|
|
7
|
+
export { allowsUnlitPreparedFallback, assembleMaterialProjection, createMeshSsboGrowController, deriveStorageBufferCeiling, exposeRenderer, isSharedMaterialUserRegionCompatible, normalizeMaterialShaderVariantSet, projectMaterialPipeline, resolveMaterialShaderBackendArtifactKey, resolveMaterialShaderBindingContract, resolveMaterialShaderUvSetCount, resolveMaterialShaderVariantSet, resolveMaterialShaderVertexInputContract, routeMaterialPipeline, selectHdrpPbrPrewarmVariants, selectNoColorPbrVariant, selectPipelineLayoutForVariant, selectProbePrewarmVariants, selectSkinPrewarmVariants, selectStandardPbrTransmissionPrewarmVariants, shouldDeferMissingPreparedMaterialShader, updateMaterialRuntimeValues, } from './webgpu-renderer';
|
|
8
8
|
/** Build a renderer after selecting the host-supplied backend pack. */
|
|
9
9
|
export declare function createRenderer(canvas: unknown, options?: RendererOptions, bundler?: BundlerOptions, backend?: RhiBackendPack): Promise<RendererAssemblyImplementation>;
|
|
10
10
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/assembly/factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAqCtE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EACV,UAAU,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,cAAc,EACd,oCAAoC,EACpC,iCAAiC,EACjC,uBAAuB,EACvB,oCAAoC,EACpC,+BAA+B,EAC/B,wCAAwC,EACxC,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,4CAA4C,EAC5C,wCAAwC,EACxC,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAqD3B,uEAAuE;AACvE,wBAAsB,cAAc,CAClC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,8BAA8B,CAAC,CAqBzC"}
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/assembly/factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAqCtE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EACV,UAAU,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,cAAc,EACd,oCAAoC,EACpC,iCAAiC,EACjC,uBAAuB,EACvB,uCAAuC,EACvC,oCAAoC,EACpC,+BAA+B,EAC/B,+BAA+B,EAC/B,wCAAwC,EACxC,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,4CAA4C,EAC5C,wCAAwC,EACxC,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAqD3B,uEAAuE;AACvE,wBAAsB,cAAc,CAClC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,8BAA8B,CAAC,CAqBzC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DEFAULT_STANDARD_SURFACE_MODULE } from '@forgeax/engine-shader';
|
|
2
|
+
import type { MaterialPass, MaterialRenderState, MaterialValue, StandardLayerPlan } from '@forgeax/engine-types';
|
|
3
|
+
export declare const STANDARD_MATERIAL_MODULE = "forgeax_material::standard";
|
|
4
|
+
export { DEFAULT_STANDARD_SURFACE_MODULE };
|
|
5
|
+
export type StandardSurfacePassName = 'forward' | 'deferred' | 'shadow-caster';
|
|
6
|
+
export type StandardSurfaceGeometryVariant = 'rigid' | 'skinned' | 'instanced';
|
|
7
|
+
export type StandardSurfaceLightingLane = 'direct' | 'clustered';
|
|
8
|
+
export type StandardSurfaceKind = 'standard' | 'full-custom';
|
|
9
|
+
export interface StandardSurfaceProjectionOptions {
|
|
10
|
+
readonly surfaceModule: string;
|
|
11
|
+
readonly values: Readonly<Record<string, MaterialValue | null>>;
|
|
12
|
+
readonly renderState?: MaterialRenderState;
|
|
13
|
+
readonly castShadow?: boolean;
|
|
14
|
+
readonly queue?: number;
|
|
15
|
+
readonly geometryVariant?: StandardSurfaceGeometryVariant;
|
|
16
|
+
readonly lightingLane?: StandardSurfaceLightingLane;
|
|
17
|
+
readonly alphaClip?: boolean;
|
|
18
|
+
readonly surfaceKind?: StandardSurfaceKind;
|
|
19
|
+
readonly declaredPasses?: readonly StandardSurfacePassName[];
|
|
20
|
+
readonly layerPlan?: StandardLayerPlan;
|
|
21
|
+
}
|
|
22
|
+
/** Project one custom or default Surface into the existing Standard pass family. */
|
|
23
|
+
export declare function projectStandardSurfacePasses(options: StandardSurfaceProjectionOptions): [MaterialPass, ...MaterialPass[]];
|
|
24
|
+
//# sourceMappingURL=surface-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-projection.d.ts","sourceRoot":"","sources":["../../../src/assembly/material/surface-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAE3C,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;AAC/E,MAAM,MAAM,8BAA8B,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAC/E,MAAM,MAAM,2BAA2B,GAAG,QAAQ,GAAG,WAAW,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,aAAa,CAAC;AAE7D,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,8BAA8B,CAAC;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,2BAA2B,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;CACxC;AAsCD,oFAAoF;AACpF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gCAAgC,GACxC,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC,CAoBnC"}
|
|
@@ -130,6 +130,26 @@ export type MaterialShaderBindingContract = RenderFeatureMaterialShaderBindingCo
|
|
|
130
130
|
export type MaterialShaderVertexInputContract = 'none' | 'render-material';
|
|
131
131
|
export declare function resolveMaterialShaderBindingContract(source: string): MaterialShaderBindingContract;
|
|
132
132
|
export declare function resolveMaterialShaderVertexInputContract(source: string): MaterialShaderVertexInputContract;
|
|
133
|
+
/**
|
|
134
|
+
* Resolve the number of UV sets declared by one material artifact.
|
|
135
|
+
*
|
|
136
|
+
* Runtime-published Surface programs do not necessarily have a manifest
|
|
137
|
+
* reflection row, so the authored vertex input is the fallback source of
|
|
138
|
+
* truth. The renderer then feeds this count into the geometry alias
|
|
139
|
+
* projection, which clamps missing mesh UV sets to the last available set.
|
|
140
|
+
*/
|
|
141
|
+
export declare function resolveMaterialShaderUvSetCount(source: string | undefined, reflectedCount?: number): number | undefined;
|
|
142
|
+
/**
|
|
143
|
+
* Select a published material artifact that matches a downlevel backend.
|
|
144
|
+
*
|
|
145
|
+
* Cooked Surface publications carry immutable backend variants in their
|
|
146
|
+
* metadata. WebGL2 must select the uniform-fallback specialization before
|
|
147
|
+
* pipeline construction so its shader, bind-group layout, and cache key stay
|
|
148
|
+
* capability-consistent.
|
|
149
|
+
*/
|
|
150
|
+
export declare function resolveMaterialShaderBackendArtifactKey(materialShaderId: string, backendKind: 'webgpu' | 'wgpu-native' | 'wgpu-webgl2' | 'null', artifact: {
|
|
151
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
152
|
+
} | undefined): string;
|
|
133
153
|
export declare function allowsUnlitPreparedFallback(depthFormatOverride: GPUTextureFormat | null | undefined, vertexLayout: string | undefined, materialShaderId?: string): boolean;
|
|
134
154
|
/**
|
|
135
155
|
* Prepared VFX draws own their vertex inputs and bind groups. A missing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material-shader-policy.d.ts","sourceRoot":"","sources":["../../src/assembly/material-shader-policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAW,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,KAAK,2BAA2B,EAChC,KAAK,aAAa,EAClB,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"material-shader-policy.d.ts","sourceRoot":"","sources":["../../src/assembly/material-shader-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-ready.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-ready.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAKV,cAAc,EACd,MAAM,EACN,SAAS,EAET,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAM,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI9E,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAwBjF,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"webgpu-ready.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-ready.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAKV,cAAc,EACd,MAAM,EACN,SAAS,EAET,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAM,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI9E,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAwBjF,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAIL,KAAK,sBAAsB,EAE5B,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAkB1B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,WAAW,EAC1B,SAAS,EAAE,MAAM,aAAa,EAC9B,QAAQ,EAAE,iBAAiB,EAC3B,uBAAuB,EACnB,CAAC,CACC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAC/C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,GAC7C,SAAS,EACb,aAAa,EAAE,wBAAwB;AACvC;;;;GAIG;AACH,uBAAuB,EAAE,SAAS,MAAM,EAAE;AAC1C,8EAA8E;AAC9E,+BAA+B,EAAE,SAAS;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,EAAE,EAUH,mBAAmB,EAAE,CACnB,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,kBAAkB,EACjD,KAAK,EAAE,aAAa,KACjB,IAAI,EAQT,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,EAQ/D,+BAA+B,EAAE,CAC/B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,sBAAsB,KACnC,IAAI,EAST,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;AAChD,sEAAsE;AACtE,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAC7C,oCAAoC,EAAE,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,KAAK,IAAI;AACV,yFAAyF;AACzF,6BAA6B,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAC3E,OAAO,CAAC,aAAa,CAAC,CAwwHxB"}
|
|
@@ -16,7 +16,7 @@ export type { BundlerOptions } from './bundler-contract';
|
|
|
16
16
|
export { assembleMaterialProjection } from './material/assembly';
|
|
17
17
|
export { projectMaterialPipeline, routeMaterialPipeline, updateMaterialRuntimeValues, } from './material/pipeline-projection';
|
|
18
18
|
export type { LayoutKind, MaterialShaderBindingContract, MaterialShaderVertexInputContract, } from './material-shader-policy';
|
|
19
|
-
export { allowsUnlitPreparedFallback, isSharedMaterialUserRegionCompatible, normalizeMaterialShaderVariantSet, resolveMaterialShaderBindingContract, resolveMaterialShaderVariantSet, resolveMaterialShaderVertexInputContract, selectNoColorPbrVariant, selectPipelineLayoutForVariant, shouldDeferMissingPreparedMaterialShader, } from './material-shader-policy';
|
|
19
|
+
export { allowsUnlitPreparedFallback, isSharedMaterialUserRegionCompatible, normalizeMaterialShaderVariantSet, resolveMaterialShaderBackendArtifactKey, resolveMaterialShaderBindingContract, resolveMaterialShaderUvSetCount, resolveMaterialShaderVariantSet, resolveMaterialShaderVertexInputContract, selectNoColorPbrVariant, selectPipelineLayoutForVariant, shouldDeferMissingPreparedMaterialShader, } from './material-shader-policy';
|
|
20
20
|
export type { MeshSsboBufferWrapper, MeshSsboGrowController, MeshSsboGrowControllerInit, MeshSsboGrowDevice, MeshSsboGrowErrorRegistry, MeshSsboGrowResult, MeshSsboState, } from './mesh-ssbo-grow';
|
|
21
21
|
export { createMeshSsboGrowController, deriveStorageBufferCeiling, INITIAL_MESH_SSBO_SLOT_COUNT, requireMeshSsboBuffer, } from './mesh-ssbo-grow';
|
|
22
22
|
export { exposeRenderer } from './renderer-facade';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-renderer.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgpu-renderer.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { GpuVertexBufferLayoutEntry } from '@forgeax/engine-geometry';
|
|
2
|
+
import type { VertexAttributeMap } from '@forgeax/engine-types';
|
|
3
|
+
export declare const PBR_SKIN_SENTINEL_ATTR_BUFFER: ArrayBuffer;
|
|
4
|
+
/** Default 4-attribute vertex layout used as fallback when meshAttributes is undefined. */
|
|
5
|
+
export declare const DEFAULT_VERTEX_ATTRS: VertexAttributeMap;
|
|
6
|
+
export declare const PREPARED_INSTANCE_VERTEX_ATTRS: VertexAttributeMap;
|
|
7
|
+
export declare const PREPARED_MATERIAL_INSTANCE_VERTEX_ATTRS: VertexAttributeMap;
|
|
8
|
+
export declare const POSITION_SIZE_COLOR_INSTANCE_VERTEX_BUFFERS: {
|
|
9
|
+
arrayStride: number;
|
|
10
|
+
stepMode: "instance";
|
|
11
|
+
attributes: ({
|
|
12
|
+
shaderLocation: number;
|
|
13
|
+
offset: number;
|
|
14
|
+
format: "float32x3";
|
|
15
|
+
} | {
|
|
16
|
+
shaderLocation: number;
|
|
17
|
+
offset: number;
|
|
18
|
+
format: "float32x2";
|
|
19
|
+
} | {
|
|
20
|
+
shaderLocation: number;
|
|
21
|
+
offset: number;
|
|
22
|
+
format: "float32x4";
|
|
23
|
+
})[];
|
|
24
|
+
}[];
|
|
25
|
+
export declare const BILLBOARD_MATERIAL_INSTANCE_VERTEX_BUFFERS: {
|
|
26
|
+
arrayStride: number;
|
|
27
|
+
stepMode: "instance";
|
|
28
|
+
attributes: ({
|
|
29
|
+
shaderLocation: number;
|
|
30
|
+
offset: number;
|
|
31
|
+
format: "float32x3";
|
|
32
|
+
} | {
|
|
33
|
+
shaderLocation: number;
|
|
34
|
+
offset: number;
|
|
35
|
+
format: "float32x2";
|
|
36
|
+
} | {
|
|
37
|
+
shaderLocation: number;
|
|
38
|
+
offset: number;
|
|
39
|
+
format: "float32x4";
|
|
40
|
+
})[];
|
|
41
|
+
}[];
|
|
42
|
+
export declare const TOPOLOGY_SEGMENT_INSTANCE_VERTEX_BUFFERS: {
|
|
43
|
+
arrayStride: number;
|
|
44
|
+
stepMode: "instance";
|
|
45
|
+
attributes: ({
|
|
46
|
+
shaderLocation: number;
|
|
47
|
+
offset: number;
|
|
48
|
+
format: "float32x3";
|
|
49
|
+
} | {
|
|
50
|
+
shaderLocation: number;
|
|
51
|
+
offset: number;
|
|
52
|
+
format: "float32x4";
|
|
53
|
+
} | {
|
|
54
|
+
shaderLocation: number;
|
|
55
|
+
offset: number;
|
|
56
|
+
format: "float32x2";
|
|
57
|
+
})[];
|
|
58
|
+
}[];
|
|
59
|
+
export declare const MESH_GEOMETRY_MATERIAL_INSTANCE_VERTEX_BUFFERS: ({
|
|
60
|
+
arrayStride: number;
|
|
61
|
+
stepMode: "vertex";
|
|
62
|
+
attributes: ({
|
|
63
|
+
shaderLocation: number;
|
|
64
|
+
offset: number;
|
|
65
|
+
format: "float32x3";
|
|
66
|
+
} | {
|
|
67
|
+
shaderLocation: number;
|
|
68
|
+
offset: number;
|
|
69
|
+
format: "float32x2";
|
|
70
|
+
} | {
|
|
71
|
+
shaderLocation: number;
|
|
72
|
+
offset: number;
|
|
73
|
+
format: "float32x4";
|
|
74
|
+
})[];
|
|
75
|
+
} | {
|
|
76
|
+
arrayStride: number;
|
|
77
|
+
stepMode: "instance";
|
|
78
|
+
attributes: ({
|
|
79
|
+
shaderLocation: number;
|
|
80
|
+
offset: number;
|
|
81
|
+
format: "float32x3";
|
|
82
|
+
} | {
|
|
83
|
+
shaderLocation: number;
|
|
84
|
+
offset: number;
|
|
85
|
+
format: "float32x4";
|
|
86
|
+
})[];
|
|
87
|
+
})[];
|
|
88
|
+
export declare function toGpuVertexBufferLayouts(entries: readonly GpuVertexBufferLayoutEntry[]): readonly GPUVertexBufferLayout[];
|
|
89
|
+
//# sourceMappingURL=webgpu-vertex-layouts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-vertex-layouts.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-vertex-layouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAOhE,eAAO,MAAM,6BAA6B,aAAqB,CAAC;AAEhE,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,EAAE,kBAKlC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,kBAM5C,CAAC;AAEF,eAAO,MAAM,uCAAuC,EAAE,kBAOrD,CAAC;AAEF,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;GAUZ,CAAC;AAE7C,eAAO,MAAM,0CAA0C;;;;;;;;;;;;;;;;GAgBX,CAAC;AAE7C,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;GAWT,CAAC;AAE7C,eAAO,MAAM,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyBf,CAAC;AAgB7C,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,0BAA0B,EAAE,GAC7C,SAAS,qBAAqB,EAAE,CAUlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-decoders.d.ts","sourceRoot":"","sources":["../../src/assets/asset-decoders.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,wBAAwB,EAK7B,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"asset-decoders.d.ts","sourceRoot":"","sources":["../../src/assets/asset-decoders.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,wBAAwB,EAK7B,KAAK,aAAa,EAIlB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAwH/B,eAAO,MAAM,oBAAoB,EAAE,wBAAwB,CAAC,aAAa,EAAE,UAAU,CAepF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,CAAC,YAAY,EAAE,SAAS,CAUjF,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,wBAAwB,CAC/D,mBAAmB,EACnB,iBAAiB,CAgBlB,CAAC"}
|
package/dist/authoring.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { GlyphText, SpritePlayback, setActiveCamera, spritePlaybackModeFromU32 } from './chunk-FJ6P52EE.mjs';
|
|
2
2
|
export { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap, TilemapSort } from './chunk-JDWARUOI.mjs';
|
|
3
3
|
export { TransparentSort } from './chunk-RXZ3RGOU.mjs';
|
|
4
|
-
export { SPRITE_PREMULTIPLIED_ALPHA_BLEND } from './chunk-
|
|
4
|
+
export { SPRITE_PREMULTIPLIED_ALPHA_BLEND } from './chunk-JSEDTZYS.mjs';
|
|
5
5
|
import { ok } from '@forgeax/engine-types';
|
|
6
6
|
|
|
7
7
|
function createFullscreenRenderFeature(options) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RenderIntentInvalidError, ShadowInvalidConfigError, VolumeOwnerConflictError, VolumeDensityShapeMismatchError, VolumeInvalidBoundsError, VolumeInvalidParametersError } from './chunk-
|
|
1
|
+
import { RenderIntentInvalidError, ShadowInvalidConfigError, VolumeOwnerConflictError, VolumeDensityShapeMismatchError, VolumeInvalidBoundsError, VolumeInvalidParametersError } from './chunk-ZZ4YQ474.mjs';
|
|
2
2
|
import { defineComponent, Entity } from '@forgeax/engine-ecs';
|
|
3
3
|
import { TONEMAP_SHADER_MODE } from '@forgeax/engine-shader';
|
|
4
4
|
import { R_MIN, err, ok } from '@forgeax/engine-types';
|
|
@@ -1054,5 +1054,5 @@ function extractVolumetricFog(inputs) {
|
|
|
1054
1054
|
}
|
|
1055
1055
|
|
|
1056
1056
|
export { ANTIALIAS_FXAA, ANTIALIAS_MSAA, ANTIALIAS_NONE, ANTIALIAS_TAA, Atmosphere, BLOOM_DISABLED, BLOOM_ENABLED, CAMERA_PROJECTION_ORTHOGRAPHIC, CAMERA_PROJECTION_PERSPECTIVE, CUBE_CAMERA_FACE_ORDER, CUBE_CAMERA_UPDATE_CONTINUOUS, CUBE_CAMERA_UPDATE_ONCE, CUBE_CAMERA_UPDATE_ON_DEMAND, Camera, CubeCamera, DirectionalLight, DirectionalShadowFilterValue, Fog, Instances, Layer, LightProbe, Lines, MeshFilter, MeshRenderer, MotionBlur, PointLight, PointLightShadow, PointShapeValue, Points, PostProcessParams, REFLECTION_PROBE_UPDATE_CONTINUOUS, REFLECTION_PROBE_UPDATE_ONCE, REFLECTION_PROBE_UPDATE_ON_CHANGE, RectAreaLight, ReflectionProbe, SKYBOX_MODE_CUBEMAP, SceneInstance, SkyboxBackground, Skylight, SortKey, SpotLight, TONEMAP_ACES_FILMIC, TONEMAP_AGX, TONEMAP_CINEON, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TONEMAP_NONE, TONEMAP_REINHARD, TONEMAP_REINHARD_EXTENDED, Visibility, VisibilityStateValue, VolumetricFog, antialiasFromF32, bloomEnabledFromF32, cameraProjectionFromF32, computeInvRangeSquared, createVisibilityBudget, cubeCameraUpdateIntentFromF32, cubeCameraUpdateIntentToF32, degToCos, directionalShadowQualityFromF32, extractVolumetricFog, hasVolumetricFogCapability, orthographic, perspective, pointShapeFromU32, projectMeshMaterialBindingObservation, reflectionProbeUpdateIntentFromF32, reflectionProbeUpdateIntentToF32, resolveIntegratedVolumeConsumer, resolveMeshMaterialBindings, resolveSelectedVolumetricLight, resolveVisibility, resolveVolumetricFogLightPair, summarizeMeshMaterialBindings, tonemapFromF32, tonemapToU32, validateDirection, validateDirectionalLightData, validateLightProbeData, validatePointLightData, validatePointLightShadowData, validateRectAreaLightData, validateSpotLightData, validateVolumetricFog, visibilityStateFromU32 };
|
|
1057
|
-
//# sourceMappingURL=chunk-
|
|
1058
|
-
//# sourceMappingURL=chunk-
|
|
1057
|
+
//# sourceMappingURL=chunk-ADHHVYLW.mjs.map
|
|
1058
|
+
//# sourceMappingURL=chunk-ADHHVYLW.mjs.map
|