@zephyr3d/scene 0.9.22 → 0.9.23
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/animation/joint_dynamics/collision.js +1 -7
- package/dist/animation/joint_dynamics/collision.js.map +1 -1
- package/dist/animation/joint_dynamics/constraints.js +2 -17
- package/dist/animation/joint_dynamics/constraints.js.map +1 -1
- package/dist/animation/joint_dynamics/controller.js +2 -20
- package/dist/animation/joint_dynamics/controller.js.map +1 -1
- package/dist/animation/joint_dynamics/joint_dynamics_system.js +1 -3
- package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
- package/dist/animation/joint_dynamics/solver.js +14 -60
- package/dist/animation/joint_dynamics/solver.js.map +1 -1
- package/dist/animation/joint_dynamics/types.js +3 -3
- package/dist/animation/joint_dynamics/types.js.map +1 -1
- package/dist/app/app.js +23 -0
- package/dist/app/app.js.map +1 -1
- package/dist/app/scriptregistry.js +16 -53
- package/dist/app/scriptregistry.js.map +1 -1
- package/dist/asset/assetmanager.js +2 -0
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/model.js +22 -0
- package/dist/asset/model.js.map +1 -1
- package/dist/blitter/bilateralblur.js +3 -1
- package/dist/blitter/bilateralblur.js.map +1 -1
- package/dist/blitter/blitter.js +3 -3
- package/dist/blitter/blitter.js.map +1 -1
- package/dist/camera/camera.js +398 -45
- package/dist/camera/camera.js.map +1 -1
- package/dist/camera/perspectivecamera.js +69 -2
- package/dist/camera/perspectivecamera.js.map +1 -1
- package/dist/index.d.ts +9113 -8734
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/material/blinn.js +1 -1
- package/dist/material/blinn.js.map +1 -1
- package/dist/material/lambert.js +3 -3
- package/dist/material/lambert.js.map +1 -1
- package/dist/material/material.js +8 -5
- package/dist/material/material.js.map +1 -1
- package/dist/material/meshmaterial.js +17 -10
- package/dist/material/meshmaterial.js.map +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
- package/dist/material/mixins/lightmodel/lambert.js +1 -1
- package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +21 -6
- package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +1 -1
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js +1 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
- package/dist/material/mixins/lit.js +33 -11
- package/dist/material/mixins/lit.js.map +1 -1
- package/dist/material/mixins/pbr/brdf.js +44 -12
- package/dist/material/mixins/pbr/brdf.js.map +1 -1
- package/dist/material/mixins/pbr/common.js +149 -14
- package/dist/material/mixins/pbr/common.js.map +1 -1
- package/dist/material/mtoon.js +7 -4
- package/dist/material/mtoon.js.map +1 -1
- package/dist/material/pbrblueprint.js +5 -1
- package/dist/material/pbrblueprint.js.map +1 -1
- package/dist/material/pbrmr.js +1 -1
- package/dist/material/pbrmr.js.map +1 -1
- package/dist/material/pbrsg.js +1 -1
- package/dist/material/pbrsg.js.map +1 -1
- package/dist/material/shader/helper.js +186 -11
- package/dist/material/shader/helper.js.map +1 -1
- package/dist/material/skin.js +2 -2
- package/dist/material/skin.js.map +1 -1
- package/dist/material/terrain-cm.js +5 -5
- package/dist/material/terrain-cm.js.map +1 -1
- package/dist/material/water.js +6 -4
- package/dist/material/water.js.map +1 -1
- package/dist/posteffect/bloom.js +54 -4
- package/dist/posteffect/bloom.js.map +1 -1
- package/dist/posteffect/compositor.js +41 -0
- package/dist/posteffect/compositor.js.map +1 -1
- package/dist/posteffect/posteffect.js +35 -0
- package/dist/posteffect/posteffect.js.map +1 -1
- package/dist/posteffect/sao.js +7 -6
- package/dist/posteffect/sao.js.map +1 -1
- package/dist/posteffect/skinsss.js +3 -3
- package/dist/posteffect/skinsss.js.map +1 -1
- package/dist/posteffect/ssgi.js +988 -436
- package/dist/posteffect/ssgi.js.map +1 -1
- package/dist/posteffect/ssr.js +83 -45
- package/dist/posteffect/ssr.js.map +1 -1
- package/dist/posteffect/sss.js +18 -15
- package/dist/posteffect/sss.js.map +1 -1
- package/dist/posteffect/taa.js +5 -4
- package/dist/posteffect/taa.js.map +1 -1
- package/dist/posteffect/tonemap.js +15 -3
- package/dist/posteffect/tonemap.js.map +1 -1
- package/dist/render/abuffer_oit.js +2 -2
- package/dist/render/abuffer_oit.js.map +1 -1
- package/dist/render/cluster_light.js +12 -6
- package/dist/render/cluster_light.js.map +1 -1
- package/dist/render/drawable_mixin.js +8 -5
- package/dist/render/drawable_mixin.js.map +1 -1
- package/dist/render/dualdepthpeeling_oit.js +10 -5
- package/dist/render/dualdepthpeeling_oit.js.map +1 -1
- package/dist/render/envlight.js +298 -5
- package/dist/render/envlight.js.map +1 -1
- package/dist/render/gpu_picking.js +7 -5
- package/dist/render/gpu_picking.js.map +1 -1
- package/dist/render/hzb.js +28 -19
- package/dist/render/hzb.js.map +1 -1
- package/dist/render/lightpass.js +18 -4
- package/dist/render/lightpass.js.map +1 -1
- package/dist/render/render_queue.js +37 -4
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/renderer.js +8 -3
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/rendergraph/blackboard.js +20 -48
- package/dist/render/rendergraph/blackboard.js.map +1 -1
- package/dist/render/rendergraph/device_pool_allocator.js +18 -58
- package/dist/render/rendergraph/device_pool_allocator.js.map +1 -1
- package/dist/render/rendergraph/executor.js +89 -115
- package/dist/render/rendergraph/executor.js.map +1 -1
- package/dist/render/rendergraph/forward_plus_builder.js +1003 -715
- package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
- package/dist/render/rendergraph/frame_graph_context.js +1 -1
- package/dist/render/rendergraph/frame_graph_context.js.map +1 -1
- package/dist/render/rendergraph/frame_resource_requirements.js +14 -0
- package/dist/render/rendergraph/frame_resource_requirements.js.map +1 -0
- package/dist/render/rendergraph/history_resource_manager.js +74 -140
- package/dist/render/rendergraph/history_resource_manager.js.map +1 -1
- package/dist/render/rendergraph/history_resources.js +7 -5
- package/dist/render/rendergraph/history_resources.js.map +1 -1
- package/dist/render/rendergraph/render_context.js +19 -0
- package/dist/render/rendergraph/render_context.js.map +1 -0
- package/dist/render/rendergraph/render_pipeline.js +315 -0
- package/dist/render/rendergraph/render_pipeline.js.map +1 -0
- package/dist/render/rendergraph/rendergraph.js +158 -141
- package/dist/render/rendergraph/rendergraph.js.map +1 -1
- package/dist/render/rendergraph/scene_render_context.js +267 -0
- package/dist/render/rendergraph/scene_render_context.js.map +1 -0
- package/dist/render/rendergraph/texture_affinity_cache.js +19 -0
- package/dist/render/rendergraph/texture_affinity_cache.js.map +1 -0
- package/dist/render/rendergraph/types.js +19 -31
- package/dist/render/rendergraph/types.js.map +1 -1
- package/dist/render/renderpass.js +3 -3
- package/dist/render/renderpass.js.map +1 -1
- package/dist/render/shadow_mask_pass.js +7 -6
- package/dist/render/shadow_mask_pass.js.map +1 -1
- package/dist/render/sky.js +197 -35
- package/dist/render/sky.js.map +1 -1
- package/dist/render/weightedblended_oit.js +4 -3
- package/dist/render/weightedblended_oit.js.map +1 -1
- package/dist/scene/basesprite.js +2 -0
- package/dist/scene/basesprite.js.map +1 -1
- package/dist/scene/batchgroup.js +10 -0
- package/dist/scene/batchgroup.js.map +1 -1
- package/dist/scene/environment.js +61 -2
- package/dist/scene/environment.js.map +1 -1
- package/dist/scene/light.js +178 -10
- package/dist/scene/light.js.map +1 -1
- package/dist/scene/meshdrawable.js +89 -2
- package/dist/scene/meshdrawable.js.map +1 -1
- package/dist/scene/msdftext.js +2 -0
- package/dist/scene/msdftext.js.map +1 -1
- package/dist/scene/msdftextsprite.js +2 -0
- package/dist/scene/msdftextsprite.js.map +1 -1
- package/dist/scene/particlesys.js +2 -0
- package/dist/scene/particlesys.js.map +1 -1
- package/dist/scene/scene.js +34 -1
- package/dist/scene/scene.js.map +1 -1
- package/dist/scene/terrain-cm/grass.js +2 -1
- package/dist/scene/terrain-cm/grass.js.map +1 -1
- package/dist/scene/terrain-cm/terrain-cm.js +2 -0
- package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
- package/dist/scene/water.js +2 -0
- package/dist/scene/water.js.map +1 -1
- package/dist/shaders/atmosphere.js +5 -4
- package/dist/shaders/atmosphere.js.map +1 -1
- package/dist/shaders/fog.js +10 -3
- package/dist/shaders/fog.js.map +1 -1
- package/dist/shaders/shadow.js +96 -29
- package/dist/shaders/shadow.js.map +1 -1
- package/dist/shaders/ssgi_reprojection.js +118 -0
- package/dist/shaders/ssgi_reprojection.js.map +1 -0
- package/dist/shaders/ssr.js +322 -154
- package/dist/shaders/ssr.js.map +1 -1
- package/dist/shadow/esm.js +10 -7
- package/dist/shadow/esm.js.map +1 -1
- package/dist/shadow/pcf_opt.js +12 -12
- package/dist/shadow/pcf_opt.js.map +1 -1
- package/dist/shadow/pcf_pd.js +12 -12
- package/dist/shadow/pcf_pd.js.map +1 -1
- package/dist/shadow/pcss.js +15 -11
- package/dist/shadow/pcss.js.map +1 -1
- package/dist/shadow/shadow_impl.js +20 -2
- package/dist/shadow/shadow_impl.js.map +1 -1
- package/dist/shadow/shadowmapper.js +5 -2
- package/dist/shadow/shadowmapper.js.map +1 -1
- package/dist/shadow/ssm.js +13 -13
- package/dist/shadow/ssm.js.map +1 -1
- package/dist/shadow/vsm.js +7 -7
- package/dist/shadow/vsm.js.map +1 -1
- package/dist/utility/physical.js +74 -0
- package/dist/utility/physical.js.map +1 -0
- package/dist/utility/rendermipmap.js +2 -2
- package/dist/utility/rendermipmap.js.map +1 -1
- package/dist/utility/serialization/manager.js +3 -1
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +3 -1
- package/dist/utility/serialization/scene/animation.js.map +1 -1
- package/dist/utility/serialization/scene/batch.js +3 -1
- package/dist/utility/serialization/scene/batch.js.map +1 -1
- package/dist/utility/serialization/scene/camera.js +598 -2
- package/dist/utility/serialization/scene/camera.js.map +1 -1
- package/dist/utility/serialization/scene/light.js +180 -9
- package/dist/utility/serialization/scene/light.js.map +1 -1
- package/dist/utility/serialization/scene/material.js +43 -3
- package/dist/utility/serialization/scene/material.js.map +1 -1
- package/dist/utility/serialization/scene/mesh.js +3 -1
- package/dist/utility/serialization/scene/mesh.js.map +1 -1
- package/dist/utility/serialization/scene/node.js +3 -1
- package/dist/utility/serialization/scene/node.js.map +1 -1
- package/dist/utility/serialization/scene/particle.js +3 -1
- package/dist/utility/serialization/scene/particle.js.map +1 -1
- package/dist/utility/serialization/scene/primitive.js +2 -0
- package/dist/utility/serialization/scene/primitive.js.map +1 -1
- package/dist/utility/serialization/scene/scene.js +70 -0
- package/dist/utility/serialization/scene/scene.js.map +1 -1
- package/dist/utility/serialization/scene/sprite.js +3 -1
- package/dist/utility/serialization/scene/sprite.js.map +1 -1
- package/dist/utility/serialization/scene/terrain.js +3 -1
- package/dist/utility/serialization/scene/terrain.js.map +1 -1
- package/dist/utility/serialization/scene/text.js +3 -0
- package/dist/utility/serialization/scene/text.js.map +1 -1
- package/dist/utility/serialization/scene/water.js +3 -1
- package/dist/utility/serialization/scene/water.js.map +1 -1
- package/dist/values.js +2 -3
- package/dist/values.js.map +1 -1
- package/package.json +3 -3
package/dist/posteffect/sss.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Vector2, Vector4, Matrix4x4 } from '@zephyr3d/base';
|
|
1
|
+
import { Vector2, Vector4, Matrix4x4, DEPTH_COMPARE_FARTHER, DEPTH_FARTHEST } from '@zephyr3d/base';
|
|
2
2
|
import { ShaderHelper } from '../material/shader/helper.js';
|
|
3
3
|
import '../material/lambert.js';
|
|
4
4
|
import '../material/blinn.js';
|
|
@@ -112,6 +112,9 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
112
112
|
requireDepthAttachment() {
|
|
113
113
|
return true;
|
|
114
114
|
}
|
|
115
|
+
requireSceneNormalTexture() {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
115
118
|
requireShadowMask(ctx) {
|
|
116
119
|
// Runs at graph-build time, before shadowMapInfo is populated (that happens
|
|
117
120
|
// during the ShadowMaps pass execute), so it cannot inspect the combine
|
|
@@ -161,8 +164,8 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
161
164
|
}
|
|
162
165
|
blur(ctx, inputColorTexture, sceneDepthTexture, profileLUT, targetWidth, targetHeight, kernelRadius, horizontal, sssSettings) {
|
|
163
166
|
const device = ctx.device;
|
|
164
|
-
const sssNormalTexture = ctx.
|
|
165
|
-
const hasNormalTexture = !!ctx.
|
|
167
|
+
const sssNormalTexture = ctx.SceneNormalTexture ?? ctx.SSSParamTexture;
|
|
168
|
+
const hasNormalTexture = !!ctx.SceneNormalTexture;
|
|
166
169
|
const key = `${horizontal ? 'h' : 'v'}:${kernelRadius}`;
|
|
167
170
|
let program = SSS._blurPrograms[key];
|
|
168
171
|
if (!program) {
|
|
@@ -195,10 +198,10 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
195
198
|
}
|
|
196
199
|
combine(ctx, inputColorTexture, blurredTexture, sceneDepthTexture, profileLUT, srgbOutput) {
|
|
197
200
|
const device = ctx.device;
|
|
198
|
-
const sssRoughnessTexture = ctx.
|
|
199
|
-
const sssNormalTexture = ctx.
|
|
200
|
-
const hasRoughnessTexture = !!ctx.
|
|
201
|
-
const hasNormalTexture = !!ctx.
|
|
201
|
+
const sssRoughnessTexture = ctx.SceneRoughnessTexture ?? ctx.SSSParamTexture;
|
|
202
|
+
const sssNormalTexture = ctx.SceneNormalTexture ?? ctx.SSSParamTexture;
|
|
203
|
+
const hasRoughnessTexture = !!ctx.SceneRoughnessTexture;
|
|
204
|
+
const hasNormalTexture = !!ctx.SceneNormalTexture;
|
|
202
205
|
const shadowLight = this.getCombineShadowLight(ctx);
|
|
203
206
|
const programKey = this.getCombineProgramKey(ctx, shadowLight);
|
|
204
207
|
let program = SSS._combinePrograms[programKey];
|
|
@@ -218,7 +221,7 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
218
221
|
y: 0,
|
|
219
222
|
z: 1
|
|
220
223
|
};
|
|
221
|
-
const sunColorIntensity = mainTransmissionLight ? mainTransmissionLight
|
|
224
|
+
const sunColorIntensity = mainTransmissionLight ? ShaderHelper.getPreExposedColorIntensity(mainTransmissionLight, ctx) : {
|
|
222
225
|
x: 1,
|
|
223
226
|
y: 1,
|
|
224
227
|
z: 1,
|
|
@@ -317,13 +320,13 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
317
320
|
sunDir.y,
|
|
318
321
|
sunDir.z
|
|
319
322
|
]),
|
|
320
|
-
envLightStrength: ctx
|
|
323
|
+
envLightStrength: ShaderHelper.getEnvLightLuminance(ctx),
|
|
321
324
|
envLightSpecularStrength: ctx.env?.light.specularStrength ?? 1,
|
|
322
325
|
shadowStrength: shadowLight.shadow.shadowStrength,
|
|
323
326
|
shadowCascades: shadowMapParams.numShadowCascades,
|
|
324
327
|
positionAndRange: shadowLight.positionAndRange,
|
|
325
328
|
directionAndCutoff: shadowLight.directionAndCutoff,
|
|
326
|
-
diffuseAndIntensity: shadowLight
|
|
329
|
+
diffuseAndIntensity: ShaderHelper.getPreExposedColorIntensity(shadowLight, ctx),
|
|
327
330
|
extraParams: shadowLight.extraParams,
|
|
328
331
|
implParams: shadowMapParams.impl.getParams(),
|
|
329
332
|
cascadeDistances: shadowMapParams.cascadeDistances,
|
|
@@ -337,7 +340,7 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
337
340
|
}
|
|
338
341
|
device.setProgram(program);
|
|
339
342
|
device.setBindGroup(0, bindGroup);
|
|
340
|
-
this.drawFullscreenQuad(AbstractPostEffect.getDefaultRenderState(ctx,
|
|
343
|
+
this.drawFullscreenQuad(AbstractPostEffect.getDefaultRenderState(ctx, DEPTH_COMPARE_FARTHER));
|
|
341
344
|
}
|
|
342
345
|
createBlurProgram(ctx, kernelRadius, horizontal) {
|
|
343
346
|
const sampleCount = Math.max(1, Math.ceil(kernelRadius / 2));
|
|
@@ -347,7 +350,7 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
347
350
|
this.$inputs.pos = pb.vec2().attrib('position');
|
|
348
351
|
this.$outputs.uv = pb.vec2();
|
|
349
352
|
pb.main(function() {
|
|
350
|
-
this.$builtins.position = pb.vec4(this.$inputs.pos,
|
|
353
|
+
this.$builtins.position = pb.vec4(this.$inputs.pos, DEPTH_FARTHEST, 1);
|
|
351
354
|
this.$outputs.uv = pb.add(pb.mul(this.$inputs.pos.xy, 0.5), pb.vec2(0.5));
|
|
352
355
|
this.$if(pb.notEqual(this.flip, 0), function() {
|
|
353
356
|
this.$builtins.position.y = pb.neg(this.$builtins.position.y);
|
|
@@ -551,7 +554,7 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
551
554
|
this.$inputs.pos = pb.vec2().attrib('position');
|
|
552
555
|
this.$outputs.uv = pb.vec2();
|
|
553
556
|
pb.main(function() {
|
|
554
|
-
this.$builtins.position = pb.vec4(this.$inputs.pos,
|
|
557
|
+
this.$builtins.position = pb.vec4(this.$inputs.pos, DEPTH_FARTHEST, 1);
|
|
555
558
|
this.$outputs.uv = pb.add(pb.mul(this.$inputs.pos.xy, 0.5), pb.vec2(0.5));
|
|
556
559
|
this.$if(pb.notEqual(this.flip, 0), function() {
|
|
557
560
|
this.$builtins.position.y = pb.neg(this.$builtins.position.y);
|
|
@@ -741,8 +744,8 @@ import { AbstractPostEffect, PostEffectLayer } from './posteffect.js';
|
|
|
741
744
|
pb.float('linearDepth')
|
|
742
745
|
], function() {
|
|
743
746
|
this.$l.viewDepth = pb.max(pb.mul(this.linearDepth, this.cameraNearFar.y), 1e-5);
|
|
744
|
-
this.$l.nonLinearDepth =
|
|
745
|
-
this.$l.clipPos = pb.vec4(pb.sub(pb.mul(this.uv, 2), pb.vec2(1)),
|
|
747
|
+
this.$l.nonLinearDepth = ShaderHelper.linearDepthToNonLinear(this, this.viewDepth, this.cameraNearFar);
|
|
748
|
+
this.$l.clipPos = pb.vec4(pb.sub(pb.mul(this.uv, 2), pb.vec2(1)), ShaderHelper.deviceDepthToClipZ(this, pb.clamp(this.nonLinearDepth, 0, 1)), 1);
|
|
746
749
|
this.$l.viewPos = pb.mul(this.invProjMatrix, this.clipPos);
|
|
747
750
|
this.$return(pb.div(this.viewPos.xyz, pb.max(this.viewPos.w, 1e-5)));
|
|
748
751
|
});
|