@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
|
@@ -1491,7 +1491,8 @@ function emitVariableUpdatingStatement(c, node) {
|
|
|
1491
1491
|
|| isScalarUnsigned(lhs_compiled.type)
|
|
1492
1492
|
|| isScalarUnsigned(rhs_compiled.type)
|
|
1493
1493
|
)) {
|
|
1494
|
-
c.out.add(emitWriteStatement(lhs_compiled,
|
|
1494
|
+
c.out.add(emitWriteStatement(lhs_compiled,
|
|
1495
|
+
`wgsl.${shiftHelperFor(bitwise_helper, lhs_compiled.type)}(${lhs_compiled.code}, ${rhs_compiled.code})`));
|
|
1495
1496
|
return;
|
|
1496
1497
|
}
|
|
1497
1498
|
c.out.add(`${lhs_compiled.code} ${op_text} ${rhs_compiled.code};`);
|
|
@@ -2155,14 +2156,15 @@ function compileBinaryExpression(c, node, op_type, mode) {
|
|
|
2155
2156
|
// bit set was negative too. The helpers normalise with `>>> 0`, which is what WGSL u32 means.
|
|
2156
2157
|
//
|
|
2157
2158
|
// Deliberately not extended to i32: `bit_and` and friends return an unsigned result, and a
|
|
2158
|
-
// signed operand is exactly the case raw JS already gets right.
|
|
2159
|
+
// signed operand is exactly the case raw JS already gets right. A shift is the exception: WGSL
|
|
2160
|
+
// makes its amount a u32 whatever it shifts, so an i32 shift lands here and takes the signed helper.
|
|
2159
2161
|
const bitwise_helper = BITWISE_HELPER[op_text];
|
|
2160
2162
|
if (bitwise_helper !== undefined) {
|
|
2161
2163
|
if (isContainerType(left.type) || isContainerType(right.type)
|
|
2162
2164
|
|| isScalarBool(left.type) || isScalarBool(right.type)
|
|
2163
2165
|
|| isScalarUnsigned(left.type) || isScalarUnsigned(right.type)) {
|
|
2164
2166
|
return {
|
|
2165
|
-
code: `wgsl.${bitwise_helper}(${left.code}, ${right.code})`,
|
|
2167
|
+
code: `wgsl.${shiftHelperFor(bitwise_helper, left.type)}(${left.code}, ${right.code})`,
|
|
2166
2168
|
type: inferRawBinaryResultType(left.type, right.type, op_text),
|
|
2167
2169
|
};
|
|
2168
2170
|
}
|
|
@@ -2193,6 +2195,12 @@ const BITWISE_HELPER = {
|
|
|
2193
2195
|
'>>': 'shr',
|
|
2194
2196
|
};
|
|
2195
2197
|
|
|
2198
|
+
/** The helper for a bitwise operator on a value of type `t`: a shift of an i32 (scalar or vector) keeps its sign. */
|
|
2199
|
+
function shiftHelperFor(helper, t) {
|
|
2200
|
+
if ((helper === 'shl' || helper === 'shr') && isIntegerType(t) && integerScalarName(t) === 'i32') { return `${helper}_i32`; }
|
|
2201
|
+
return helper;
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2196
2204
|
/** Map WGSL comparison operators to language-core element-wise helper names. */
|
|
2197
2205
|
const COMPARISON_HELPER = {
|
|
2198
2206
|
'==': 'eq',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WGSLLanguageCore.d.ts","sourceRoot":"","sources":["../../../../../src/shade/wgsl/emulator/WGSLLanguageCore.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"WGSLLanguageCore.d.ts","sourceRoot":"","sources":["../../../../../src/shade/wgsl/emulator/WGSLLanguageCore.js"],"names":[],"mappings":";IAy/CA;;;;;;;;;;;;;;OAcG;IACH,+DAmDC"}
|
|
@@ -586,6 +586,9 @@ export const WGSLLanguageCore = {
|
|
|
586
586
|
bit_xor: (a, b) => binop(a, b, (x, y) => typeof x === 'boolean' ? x !== y : (x ^ y) >>> 0),
|
|
587
587
|
shl: (a, b) => binop(a, b, (x, y) => (x << y) >>> 0),
|
|
588
588
|
shr: (a, b) => binop(a, b, (x, y) => x >>> y),
|
|
589
|
+
// The same on an i32, whose shift amount WGSL still makes a u32: `>>` sign-extends, and both stay signed.
|
|
590
|
+
shl_i32: (a, b) => binop(a, b, (x, y) => (x << y) | 0),
|
|
591
|
+
shr_i32: (a, b) => binop(a, b, (x, y) => x >> y),
|
|
589
592
|
|
|
590
593
|
neg: (a) => unop(a, x => -x),
|
|
591
594
|
not: (a) => unop(a, x => (~x) >>> 0),
|