@woosh/meep-engine 3.42.0 → 3.43.0
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/package.json +91 -96
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/playground/vgeo_runtime/README.md +5 -4
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +6 -5
- package/src/shade/renderer/atmosphere/GPUSky.d.ts +12 -0
- package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/GPUSky.js +162 -147
- package/src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.d.ts.map +1 -1
- package/src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.js +10 -3
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/particles/DESIGN.md +13 -9
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +3 -2
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +3 -2
- package/src/shade/renderer/scene/GPUSceneContext.d.ts +9 -1
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +23 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +4 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +74 -3
- package/src/shade/renderer/volumetrics/NOTES.md +1023 -957
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts +5 -4
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.js +5 -4
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts +1 -1
- package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +1 -1
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts +1 -1
- package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +1 -1
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts +41 -0
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +112 -0
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +9 -23
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +18 -126
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts +22 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts.map +1 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.js +228 -0
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +0 -53
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +4 -3
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +17 -7
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +69 -23
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +13 -5
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +29 -8
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +155 -30
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +6 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +157 -39
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +91 -21
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/shader_water_particles.js +442 -70
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +11 -3
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +3 -0
package/package.json
CHANGED
|
@@ -1,96 +1,91 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@woosh/meep-engine",
|
|
3
|
-
"license": "SEE LICENSE IN LICENSE",
|
|
4
|
-
"productName": "Meep",
|
|
5
|
-
"homepage": "https://meep.company-named.com/",
|
|
6
|
-
"description": "Advanced 3D game engine",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"author": "Alexander Goldring",
|
|
9
|
-
"version": "3.
|
|
10
|
-
"exports": {
|
|
11
|
-
"./build/*": "./build/*",
|
|
12
|
-
"./src/*": "./src/*",
|
|
13
|
-
"./editor/*": "./editor/*",
|
|
14
|
-
"./samples/*": "./samples/*",
|
|
15
|
-
"./*.md": "./*.md",
|
|
16
|
-
"./package.json": "./package.json"
|
|
17
|
-
},
|
|
18
|
-
"sideEffects": [
|
|
19
|
-
"**/*.css",
|
|
20
|
-
"**/*.scss"
|
|
21
|
-
],
|
|
22
|
-
"scripts": {
|
|
23
|
-
"test:ci": "node scripts/check-types.mjs && vitest run --coverage --reporter=default --reporter=junit --outputFile=junit.xml",
|
|
24
|
-
"build-module": "rollup -c rollup.config.js",
|
|
25
|
-
"publish-npm": "npm publish",
|
|
26
|
-
"generate-types": "tsc --project tsconfig.types.json",
|
|
27
|
-
"check-types": "node scripts/check-types.mjs",
|
|
28
|
-
"test": "vitest run",
|
|
29
|
-
"test:extended": "vitest run --mode extended",
|
|
30
|
-
"test:all": "vitest run --mode all",
|
|
31
|
-
"dev": "vite"
|
|
32
|
-
},
|
|
33
|
-
"browserslist": [
|
|
34
|
-
"last 2 chrome version",
|
|
35
|
-
"last 2 firefox version",
|
|
36
|
-
"last 2 safari version"
|
|
37
|
-
],
|
|
38
|
-
"files": [
|
|
39
|
-
"build",
|
|
40
|
-
"src",
|
|
41
|
-
"editor",
|
|
42
|
-
"samples",
|
|
43
|
-
"package.json",
|
|
44
|
-
"README.md"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"@
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
],
|
|
93
|
-
"engines": {
|
|
94
|
-
"node": ">=24"
|
|
95
|
-
}
|
|
96
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@woosh/meep-engine",
|
|
3
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
4
|
+
"productName": "Meep",
|
|
5
|
+
"homepage": "https://meep.company-named.com/",
|
|
6
|
+
"description": "Advanced 3D game engine",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"author": "Alexander Goldring",
|
|
9
|
+
"version": "3.43.0",
|
|
10
|
+
"exports": {
|
|
11
|
+
"./build/*": "./build/*",
|
|
12
|
+
"./src/*": "./src/*",
|
|
13
|
+
"./editor/*": "./editor/*",
|
|
14
|
+
"./samples/*": "./samples/*",
|
|
15
|
+
"./*.md": "./*.md",
|
|
16
|
+
"./package.json": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
"sideEffects": [
|
|
19
|
+
"**/*.css",
|
|
20
|
+
"**/*.scss"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"test:ci": "node scripts/check-types.mjs && vitest run --coverage --reporter=default --reporter=junit --outputFile=junit.xml",
|
|
24
|
+
"build-module": "rollup -c rollup.config.js",
|
|
25
|
+
"publish-npm": "npm publish",
|
|
26
|
+
"generate-types": "tsc --project tsconfig.types.json",
|
|
27
|
+
"check-types": "node scripts/check-types.mjs",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"test:extended": "vitest run --mode extended",
|
|
30
|
+
"test:all": "vitest run --mode all",
|
|
31
|
+
"dev": "vite"
|
|
32
|
+
},
|
|
33
|
+
"browserslist": [
|
|
34
|
+
"last 2 chrome version",
|
|
35
|
+
"last 2 firefox version",
|
|
36
|
+
"last 2 safari version"
|
|
37
|
+
],
|
|
38
|
+
"files": [
|
|
39
|
+
"build",
|
|
40
|
+
"src",
|
|
41
|
+
"editor",
|
|
42
|
+
"samples",
|
|
43
|
+
"package.json",
|
|
44
|
+
"README.md"
|
|
45
|
+
],
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"opentype.js": "1.3.4",
|
|
48
|
+
"robust-predicates": "3.0.3"
|
|
49
|
+
},
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"dat.gui": ">=0.7.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@rollup/plugin-commonjs": "29.0.3",
|
|
55
|
+
"@rollup/plugin-node-resolve": "16.0.3",
|
|
56
|
+
"@rollup/plugin-strip": "3.0.4",
|
|
57
|
+
"@rollup/plugin-terser": "1.0.0",
|
|
58
|
+
"@vitest/coverage-v8": "^5.0.0",
|
|
59
|
+
"@webgpu/types": "0.1.72",
|
|
60
|
+
"jsdom": "^30.0.1",
|
|
61
|
+
"rollup": "4.63.1",
|
|
62
|
+
"typescript": "5.4.5",
|
|
63
|
+
"vite": "^8.2.2",
|
|
64
|
+
"vitest": "^5.0.0",
|
|
65
|
+
"web-tree-sitter": "^0.27.0"
|
|
66
|
+
},
|
|
67
|
+
"keywords": [
|
|
68
|
+
"game-engine",
|
|
69
|
+
"gamedev",
|
|
70
|
+
"ecs",
|
|
71
|
+
"entity-component-system",
|
|
72
|
+
"data-oriented",
|
|
73
|
+
"zero-allocation",
|
|
74
|
+
"modular",
|
|
75
|
+
"tree-shaking",
|
|
76
|
+
"3d",
|
|
77
|
+
"webgpu",
|
|
78
|
+
"webaudio",
|
|
79
|
+
"particles",
|
|
80
|
+
"bvh",
|
|
81
|
+
"behavior-tree",
|
|
82
|
+
"inverse-kinematics",
|
|
83
|
+
"fabrik",
|
|
84
|
+
"clustered-lighting",
|
|
85
|
+
"color-management",
|
|
86
|
+
"typescript"
|
|
87
|
+
],
|
|
88
|
+
"engines": {
|
|
89
|
+
"node": ">=24"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -66,11 +66,11 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
66
66
|
/**
|
|
67
67
|
* @param {FluidComponent} fluid
|
|
68
68
|
*/
|
|
69
|
-
static "__#
|
|
69
|
+
static "__#430@#refresh_masks"(fluid: FluidComponent): void;
|
|
70
70
|
/**
|
|
71
71
|
* @param {FluidComponent} fluid
|
|
72
72
|
*/
|
|
73
|
-
static "__#
|
|
73
|
+
static "__#430@#clear_field"(fluid: FluidComponent): void;
|
|
74
74
|
/**
|
|
75
75
|
* Mark every cell of `fluid` whose centre lies within `inflation` of the
|
|
76
76
|
* posed shape as solid. Iteration is clipped to the shape's world AABB
|
|
@@ -82,7 +82,7 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
82
82
|
* @param {number} inflation world-units SDF threshold
|
|
83
83
|
* @param {Float64Array} point length-3 scratch
|
|
84
84
|
*/
|
|
85
|
-
static "__#
|
|
85
|
+
static "__#430@#voxelize"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array): void;
|
|
86
86
|
/**
|
|
87
87
|
* Write the obstacle's translation velocity onto every face of every cell
|
|
88
88
|
* it voxelized — the moving-wall boundary condition. Runs AFTER the mask
|
|
@@ -102,7 +102,7 @@ export class FluidObstacleSystem extends System<any> {
|
|
|
102
102
|
* @param {number} wvy
|
|
103
103
|
* @param {number} wvz
|
|
104
104
|
*/
|
|
105
|
-
static "__#
|
|
105
|
+
static "__#430@#stamp_wall_velocity"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array, wvx: number, wvy: number, wvz: number): void;
|
|
106
106
|
constructor();
|
|
107
107
|
dependencies: (typeof FluidObstacle)[];
|
|
108
108
|
components_used: (ResourceAccessSpecification<typeof Transform64> | ResourceAccessSpecification<typeof RigidBody> | ResourceAccessSpecification<typeof Collider> | ResourceAccessSpecification<typeof FluidComponent> | ResourceAccessSpecification<typeof FluidObstacle>)[];
|
|
@@ -46,10 +46,11 @@ and drawn, and its sub-pixel jitter does not move the cut: the τ table below is
|
|
|
46
46
|
and off. The environment is not awaited — `test_assets/` is gitignored, so a checkout without it
|
|
47
47
|
gets the sun alone and still draws every triangle the cut selected.
|
|
48
48
|
|
|
49
|
-
**Not the GPU sky, and that is worth writing down.** `
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
**Not the GPU sky, and that is worth writing down.** `view/GPUViewSkyContext.js` would be the
|
|
50
|
+
natural source for this and is **not reachable**: nothing in the engine constructs it, and `Renderer`
|
|
51
|
+
does not mention the atmosphere. (`GPUSceneContext.sky` is real now -- the scene's `GPUSky`, whose
|
|
52
|
+
transmittance and multiple-scattering LUTs the volumetrics read -- but those are look-up tables, not
|
|
53
|
+
the convolved environment this would need.) Reviving the sky as a light source is not a playground's
|
|
53
54
|
change — the sky produces an already-convolved GPU texture with `SPHERE_PROBE_MIPMAP_LEVELS` mips,
|
|
54
55
|
while `GPULightCollection` builds its environment privately from a CPU `ShadeTexture` and convolves
|
|
55
56
|
a full mip chain itself, so the two do not meet without a new way to hand that class a GPU-side
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../../src/shade/renderer/Renderer.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../../src/shade/renderer/Renderer.js"],"names":[],"mappings":"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"}
|
|
@@ -2514,11 +2514,12 @@ export class Renderer {
|
|
|
2514
2514
|
resolution: view_ctx.resolution,
|
|
2515
2515
|
});
|
|
2516
2516
|
|
|
2517
|
-
//
|
|
2518
|
-
// ray-marched integration)
|
|
2519
|
-
//
|
|
2520
|
-
//
|
|
2521
|
-
//
|
|
2517
|
+
// The view's volumetrics: the fog every surface is seen through (participating media ->
|
|
2518
|
+
// per-froxel lighting -> ray-marched integration), and the froxel irradiance lit particles
|
|
2519
|
+
// are lit by. Both need the light clusters and shadow atlas. A scene with no volumes records
|
|
2520
|
+
// no fog and hands the transparency pass a constant LUT that reads as none (transmittance 1,
|
|
2521
|
+
// in-scatter 0); the irradiance is built only when something reads it. The opaque composite
|
|
2522
|
+
// below is skipped on the same fact.
|
|
2522
2523
|
const has_volumetrics = view_ctx.scene.volumetrics.source.volumes.length > 0;
|
|
2523
2524
|
|
|
2524
2525
|
const volumetrics = view_ctx.volumetrics.graph_update({
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../GraphicsContext.js").GraphicsContext} GraphicsContext
|
|
3
|
+
*/
|
|
1
4
|
export class GPUSky {
|
|
2
5
|
/**
|
|
3
6
|
*
|
|
@@ -14,6 +17,14 @@ export class GPUSky {
|
|
|
14
17
|
* @returns {GPUTextureContext}
|
|
15
18
|
*/
|
|
16
19
|
get lut_multiple_scattering(): GPUTextureContext;
|
|
20
|
+
/**
|
|
21
|
+
* Whether the LUTs still hold nothing a reader could use: true until the first {@link update}.
|
|
22
|
+
* What reads {@link lut_transmittance} or {@link lut_multiple_scattering} has to see this false,
|
|
23
|
+
* as a texture nobody wrote reads as zero rather than failing.
|
|
24
|
+
*
|
|
25
|
+
* @returns {boolean}
|
|
26
|
+
*/
|
|
27
|
+
get needs_update(): boolean;
|
|
17
28
|
destroy(): void;
|
|
18
29
|
debug(): void;
|
|
19
30
|
/**
|
|
@@ -22,5 +33,6 @@ export class GPUSky {
|
|
|
22
33
|
update(): void;
|
|
23
34
|
#private;
|
|
24
35
|
}
|
|
36
|
+
export type GraphicsContext = import("../GraphicsContext.js").GraphicsContext;
|
|
25
37
|
import { GPUTextureContext } from "../texture/GPUTextureContext.js";
|
|
26
38
|
//# sourceMappingURL=GPUSky.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUSky.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/GPUSky.js"],"names":[],"mappings":"AAUA;
|
|
1
|
+
{"version":3,"file":"GPUSky.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/GPUSky.js"],"names":[],"mappings":"AAUA;;GAEG;AAEH;IAkDI;;;OAGG;IACH,sBAFW,eAAe,EAqBzB;IA7DD;;;OAGG;IACH,2CAEC;IAOD;;;OAGG;IACH,iDAEC;IAQD;;;;;;OAMG;IACH,4BAEC;IA2BD,gBAGC;IAED,cAYC;IAED;;OAEG;IACH,eAiDC;;CAEJ;8BAvJY,OAAO,uBAAuB,EAAE,eAAe;kCAL1B,iCAAiC"}
|
|
@@ -1,148 +1,163 @@
|
|
|
1
|
-
import { FrameGraph } from "../../../engine/graphics/render/frame_graph/FrameGraph.js";
|
|
2
|
-
import { TextureResourceDescriptor } from "../../device/graph/TextureResourceDescriptor.js";
|
|
3
|
-
import { ShadeGPUCommandContext } from "../../device/ShadeGPUCommandContext.js";
|
|
4
|
-
import { graph_compute_pass } from "../shader/graph/compute/graph_compute_pass.js";
|
|
5
|
-
import { graph_image_pass } from "../shader/graph/graph_image_pass.js";
|
|
6
|
-
import { debug_draw_texture } from "../texture/debug_draw_texture.js";
|
|
7
|
-
import { GPUTextureContext } from "../texture/GPUTextureContext.js";
|
|
8
|
-
import { shader_multiscatter_lut } from "./shader_multiscatter_lut.js";
|
|
9
|
-
import { shader_transmittance_lut } from "./shader_transmittance_lut.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
this.#
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
this.#
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this.#lut_transmittance.
|
|
77
|
-
this.#
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
1
|
+
import { FrameGraph } from "../../../engine/graphics/render/frame_graph/FrameGraph.js";
|
|
2
|
+
import { TextureResourceDescriptor } from "../../device/graph/TextureResourceDescriptor.js";
|
|
3
|
+
import { ShadeGPUCommandContext } from "../../device/ShadeGPUCommandContext.js";
|
|
4
|
+
import { graph_compute_pass } from "../shader/graph/compute/graph_compute_pass.js";
|
|
5
|
+
import { graph_image_pass } from "../shader/graph/graph_image_pass.js";
|
|
6
|
+
import { debug_draw_texture } from "../texture/debug_draw_texture.js";
|
|
7
|
+
import { GPUTextureContext } from "../texture/GPUTextureContext.js";
|
|
8
|
+
import { shader_multiscatter_lut } from "./shader_multiscatter_lut.js";
|
|
9
|
+
import { shader_transmittance_lut } from "./shader_transmittance_lut.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {import("../GraphicsContext.js").GraphicsContext} GraphicsContext
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
export class GPUSky {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @type {GraphicsContext}
|
|
19
|
+
*/
|
|
20
|
+
#graphics;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @type {GPUTextureContext}
|
|
24
|
+
*/
|
|
25
|
+
#lut_transmittance;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @returns {GPUTextureContext}
|
|
30
|
+
*/
|
|
31
|
+
get lut_transmittance() {
|
|
32
|
+
return this.#lut_transmittance;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @type {GPUTextureContext}
|
|
37
|
+
*/
|
|
38
|
+
#lut_multiple_scattering;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* @returns {GPUTextureContext}
|
|
43
|
+
*/
|
|
44
|
+
get lut_multiple_scattering() {
|
|
45
|
+
return this.#lut_multiple_scattering;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
* @type {boolean}
|
|
51
|
+
*/
|
|
52
|
+
#needs_update = true;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Whether the LUTs still hold nothing a reader could use: true until the first {@link update}.
|
|
56
|
+
* What reads {@link lut_transmittance} or {@link lut_multiple_scattering} has to see this false,
|
|
57
|
+
* as a texture nobody wrote reads as zero rather than failing.
|
|
58
|
+
*
|
|
59
|
+
* @returns {boolean}
|
|
60
|
+
*/
|
|
61
|
+
get needs_update() {
|
|
62
|
+
return this.#needs_update;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* @param {GraphicsContext} graphics
|
|
68
|
+
*/
|
|
69
|
+
constructor(graphics) {
|
|
70
|
+
this.#graphics = graphics;
|
|
71
|
+
|
|
72
|
+
const device = graphics.device;
|
|
73
|
+
|
|
74
|
+
this.#lut_transmittance = new GPUTextureContext(device);
|
|
75
|
+
this.#lut_transmittance.descriptor.label = "Sky / Transmittance LUT";
|
|
76
|
+
this.#lut_transmittance.descriptor.format = "rgba16float";
|
|
77
|
+
this.#lut_transmittance.descriptor.usage = GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC;
|
|
78
|
+
this.#lut_transmittance.resize(256, 64);
|
|
79
|
+
|
|
80
|
+
this.#lut_multiple_scattering = new GPUTextureContext(device);
|
|
81
|
+
this.#lut_multiple_scattering.descriptor.label = "Sky / Multiple Scattering LUT";
|
|
82
|
+
this.#lut_multiple_scattering.descriptor.format = "rgba16float";
|
|
83
|
+
// written by a compute shader, so STORAGE_BINDING rather than RENDER_ATTACHMENT
|
|
84
|
+
this.#lut_multiple_scattering.descriptor.usage = GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC;
|
|
85
|
+
this.#lut_multiple_scattering.resize(32, 32);
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
destroy() {
|
|
91
|
+
this.#lut_transmittance.destroy();
|
|
92
|
+
this.#lut_multiple_scattering.destroy();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
debug() {
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
let y = 50;
|
|
99
|
+
debug_draw_texture({ texture: this.#lut_transmittance, x: 50, y: y });
|
|
100
|
+
|
|
101
|
+
y += this.#lut_transmittance.size[1] + 50;
|
|
102
|
+
|
|
103
|
+
debug_draw_texture({ texture: this.#lut_multiple_scattering, x: 50, y: y });
|
|
104
|
+
|
|
105
|
+
y += this.#lut_multiple_scattering.size[1] + 50;
|
|
106
|
+
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
*
|
|
111
|
+
*/
|
|
112
|
+
update() {
|
|
113
|
+
if (!this.#needs_update) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const graph = new FrameGraph("sky update");
|
|
118
|
+
|
|
119
|
+
const command_ctx = ShadeGPUCommandContext.create(
|
|
120
|
+
this.#graphics,
|
|
121
|
+
"Renderer/main"
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
const gr_transmittance = graph.import_resource("transmittance", TextureResourceDescriptor.fromTexture(this.#lut_transmittance.gpu_texture), this.#lut_transmittance);
|
|
125
|
+
const gr_multiscatter = graph.import_resource("multiscatter", TextureResourceDescriptor.fromTexture(this.#lut_multiple_scattering.gpu_texture), this.#lut_multiple_scattering);
|
|
126
|
+
|
|
127
|
+
// the handle the write produced, not the one imported: binding the pre-write version below
|
|
128
|
+
// is a superseded read, which is exactly what `validate()` rejects
|
|
129
|
+
const [gr_transmittance_written] = graph_image_pass({
|
|
130
|
+
graph,
|
|
131
|
+
shader: shader_transmittance_lut,
|
|
132
|
+
inputs: {
|
|
133
|
+
settings: {
|
|
134
|
+
steps: 40,
|
|
135
|
+
// read off the texture rather than restated, so the two cannot disagree
|
|
136
|
+
resolution: [this.#lut_transmittance.width, this.#lut_transmittance.height],
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
output: [gr_transmittance]
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
graph_compute_pass({
|
|
144
|
+
graph,
|
|
145
|
+
shader: shader_multiscatter_lut,
|
|
146
|
+
// one workgroup per LUT texel, counted off the texture being written so the
|
|
147
|
+
// dispatch cannot cover a different area than the shader stores into
|
|
148
|
+
group_count: [this.#lut_multiple_scattering.width, this.#lut_multiple_scattering.height, 1],
|
|
149
|
+
bindings: {
|
|
150
|
+
tSkyLutTransmittance: gr_transmittance_written,
|
|
151
|
+
tSkyLutMultiscatterOut: gr_multiscatter
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
command_ctx.encodeGraph(graph);
|
|
156
|
+
|
|
157
|
+
command_ctx.finish();
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
this.#needs_update = false;
|
|
161
|
+
}
|
|
162
|
+
|
|
148
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader_lightmap_denoise_sh.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.js"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,2CAFU,SAAS,
|
|
1
|
+
{"version":3,"file":"shader_lightmap_denoise_sh.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.js"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,2CAFU,SAAS,CAyCjB;AAyHF,qDAOE;0BA9LwB,oCAAoC;4BAClC,6BAA6B"}
|