@galacean/engine-core 1.6.2 → 1.6.4
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/main.js +31 -21
- package/dist/main.js.map +1 -1
- package/dist/module.js +31 -21
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/Camera.d.ts +1 -0
- package/types/postProcess/PostProcessUberPass.d.ts +1 -1
package/dist/module.js
CHANGED
|
@@ -6878,7 +6878,6 @@ __decorate([
|
|
|
6878
6878
|
function RenderContext() {
|
|
6879
6879
|
this._projectionParams = new Vector4();
|
|
6880
6880
|
this.flipProjection = false;
|
|
6881
|
-
this.rendererUpdateFlag = 0;
|
|
6882
6881
|
}
|
|
6883
6882
|
var _proto = RenderContext.prototype;
|
|
6884
6883
|
_proto.applyVirtualCamera = function applyVirtualCamera(virtualCamera, flipProjection) {
|
|
@@ -8718,7 +8717,7 @@ var Camera = /*#__PURE__*/ function(Component) {
|
|
|
8718
8717
|
Logger.error("mipLevel only take effect in WebGL2.0");
|
|
8719
8718
|
}
|
|
8720
8719
|
var ignoreClearFlags;
|
|
8721
|
-
if (this._cameraType !== CameraType.Normal && !this._renderTarget
|
|
8720
|
+
if (this._cameraType !== CameraType.Normal && !this._renderTarget) {
|
|
8722
8721
|
ignoreClearFlags = engine.xrManager._getCameraIgnoreClearFlags(this._cameraType);
|
|
8723
8722
|
}
|
|
8724
8723
|
this._renderPipeline.render(context, cubeFace, mipLevel, ignoreClearFlags);
|
|
@@ -8852,6 +8851,9 @@ var Camera = /*#__PURE__*/ function(Component) {
|
|
|
8852
8851
|
width = canvas.width;
|
|
8853
8852
|
height = canvas.height;
|
|
8854
8853
|
}
|
|
8854
|
+
this._adjustPixelViewport(width, height);
|
|
8855
|
+
};
|
|
8856
|
+
_proto._adjustPixelViewport = function _adjustPixelViewport(width, height) {
|
|
8855
8857
|
var viewport = this._viewport;
|
|
8856
8858
|
this._pixelViewport.set(viewport.x * width, viewport.y * height, viewport.z * width, viewport.w * height);
|
|
8857
8859
|
!this._customAspectRatio && this._dispatchModify(CameraModifyFlags.AspectRatio);
|
|
@@ -10865,7 +10867,7 @@ var scalableAmbientOcclusionFS = "// Ambient Occlusion, largely inspired from:\n
|
|
|
10865
10867
|
_proto.onRender = function onRender(context) {
|
|
10866
10868
|
var engine = this.engine;
|
|
10867
10869
|
var camera = context.camera;
|
|
10868
|
-
|
|
10870
|
+
camera.viewport; var scene = camera.scene, pixelViewport = camera.pixelViewport;
|
|
10869
10871
|
var ambientOcclusion = scene.ambientOcclusion;
|
|
10870
10872
|
var shaderData = this._material.shaderData;
|
|
10871
10873
|
var projectionMatrix = context.projectionMatrix;
|
|
@@ -10897,15 +10899,15 @@ var scalableAmbientOcclusionFS = "// Ambient Occlusion, largely inspired from:\n
|
|
|
10897
10899
|
var _this = this, saoTarget = _this._saoRenderTarget, material = _this._material;
|
|
10898
10900
|
// Draw ambient occlusion texture
|
|
10899
10901
|
var sourceTexture = this._depthRenderTarget.depthTexture;
|
|
10900
|
-
Blitter.blitTexture(engine, sourceTexture, saoTarget, 0,
|
|
10902
|
+
Blitter.blitTexture(engine, sourceTexture, saoTarget, 0, undefined, material, 0);
|
|
10901
10903
|
// Horizontal blur, saoRenderTarget -> blurRenderTarget
|
|
10902
10904
|
var saoTexture = saoTarget.getColorTexture();
|
|
10903
10905
|
var offsetX = this._offsetX.set(1, 1, this._blurStepPixels / saoTexture.width, 0);
|
|
10904
|
-
Blitter.blitTexture(engine, saoTexture, this._blurRenderTarget, 0,
|
|
10906
|
+
Blitter.blitTexture(engine, saoTexture, this._blurRenderTarget, 0, undefined, material, 1, offsetX);
|
|
10905
10907
|
// Vertical blur, blurRenderTarget -> saoRenderTarget
|
|
10906
10908
|
var horizontalBlur = this._blurRenderTarget.getColorTexture();
|
|
10907
10909
|
var offsetY = this._offsetY.set(1, 1, 0, this._blurStepPixels / saoTexture.height);
|
|
10908
|
-
Blitter.blitTexture(engine, horizontalBlur, saoTarget, 0,
|
|
10910
|
+
Blitter.blitTexture(engine, horizontalBlur, saoTarget, 0, undefined, material, 1, offsetY);
|
|
10909
10911
|
// Set the SAO texture
|
|
10910
10912
|
camera.shaderData.setTexture(Camera._cameraAOTextureProperty, saoTexture);
|
|
10911
10913
|
};
|
|
@@ -14419,7 +14421,8 @@ var PostProcessUberPass = /*#__PURE__*/ function(PostProcessPass) {
|
|
|
14419
14421
|
} else {
|
|
14420
14422
|
uberShaderData.disableMacro(TonemappingEffect._enableMacro);
|
|
14421
14423
|
}
|
|
14422
|
-
|
|
14424
|
+
var viewport = destTarget === camera.renderTarget ? camera.viewport : undefined;
|
|
14425
|
+
Blitter.blitTexture(camera.engine, srcTexture, destTarget, 0, viewport, this._uberMaterial, undefined);
|
|
14423
14426
|
};
|
|
14424
14427
|
/**
|
|
14425
14428
|
* @inheritdoc
|
|
@@ -14457,7 +14460,7 @@ var PostProcessUberPass = /*#__PURE__*/ function(PostProcessPass) {
|
|
|
14457
14460
|
uberShaderData.disableMacro(BloomEffect._hqMacro);
|
|
14458
14461
|
}
|
|
14459
14462
|
uberShaderData.setTexture(BloomEffect._dirtTextureProp, dirtTexture.value);
|
|
14460
|
-
if (dirtTexture) {
|
|
14463
|
+
if (dirtTexture.value) {
|
|
14461
14464
|
uberShaderData.enableMacro(BloomEffect._dirtMacro);
|
|
14462
14465
|
} else {
|
|
14463
14466
|
uberShaderData.disableMacro(BloomEffect._dirtMacro);
|
|
@@ -14594,11 +14597,12 @@ var FXAA3_11 = "//--------------------------------------------------------------
|
|
|
14594
14597
|
var enableFXAA = camera.antiAliasing === AntiAliasing.FXAA;
|
|
14595
14598
|
// Should convert to sRGB when FXAA is enabled or camera's render target is not set
|
|
14596
14599
|
var sourceTexture = this._inputRenderTarget.getColorTexture();
|
|
14597
|
-
var outputRenderTarget = enableFXAA ? this._srgbRenderTarget : renderTarget;
|
|
14598
|
-
Blitter.blitTexture(engine, sourceTexture, outputRenderTarget, 0, viewport, this._sRGBmaterial);
|
|
14599
14600
|
if (enableFXAA) {
|
|
14601
|
+
Blitter.blitTexture(engine, sourceTexture, this._srgbRenderTarget, 0, undefined, this._sRGBmaterial);
|
|
14600
14602
|
var sRGBTexture = this._srgbRenderTarget.getColorTexture();
|
|
14601
14603
|
Blitter.blitTexture(engine, sRGBTexture, renderTarget, 0, viewport, this._antiAliasingMaterial);
|
|
14604
|
+
} else {
|
|
14605
|
+
Blitter.blitTexture(engine, sourceTexture, renderTarget, 0, viewport, this._sRGBmaterial);
|
|
14602
14606
|
}
|
|
14603
14607
|
};
|
|
14604
14608
|
_proto.release = function release() {
|
|
@@ -14636,6 +14640,7 @@ Shader.create("FinalAntiAliasing", blitVs, FinalAntiAliasingFS);
|
|
|
14636
14640
|
this.renderQueueType = renderQueueType;
|
|
14637
14641
|
this.elements = new Array();
|
|
14638
14642
|
this.batchedSubElements = new Array();
|
|
14643
|
+
this.rendererUpdateFlag = ContextRendererUpdateFlag.None;
|
|
14639
14644
|
}
|
|
14640
14645
|
var _proto = RenderQueue.prototype;
|
|
14641
14646
|
_proto.pushRenderElement = function pushRenderElement(element) {
|
|
@@ -14655,8 +14660,7 @@ Shader.create("FinalAntiAliasing", blitVs, FinalAntiAliasingFS);
|
|
|
14655
14660
|
if (length === 0) {
|
|
14656
14661
|
return;
|
|
14657
14662
|
}
|
|
14658
|
-
var
|
|
14659
|
-
var engine = camera.engine, scene = camera.scene, cameraId = camera.instanceId, cameraData = camera.shaderData;
|
|
14663
|
+
var _context_camera = context.camera, engine = _context_camera.engine, scene = _context_camera.scene, cameraId = _context_camera.instanceId, cameraData = _context_camera.shaderData;
|
|
14660
14664
|
var sceneId = scene.instanceId, sceneData = scene.shaderData, maskManager = scene._maskManager;
|
|
14661
14665
|
var renderCount = engine._renderCount;
|
|
14662
14666
|
var rhi = engine._hardwareRenderer;
|
|
@@ -14666,11 +14670,11 @@ Shader.create("FinalAntiAliasing", blitVs, FinalAntiAliasingFS);
|
|
|
14666
14670
|
var subElement = batchedSubElements[i];
|
|
14667
14671
|
var renderer = subElement.component, batched = subElement.batched, material = subElement.material;
|
|
14668
14672
|
// @todo: Can optimize update view projection matrix updated
|
|
14669
|
-
if (rendererUpdateFlag & ContextRendererUpdateFlag.WorldViewMatrix || renderer._batchedTransformShaderData != batched) {
|
|
14673
|
+
if (this.rendererUpdateFlag & ContextRendererUpdateFlag.WorldViewMatrix || renderer._batchedTransformShaderData != batched) {
|
|
14670
14674
|
// Update world matrix and view matrix and model matrix
|
|
14671
14675
|
renderer._updateTransformShaderData(context, false, batched);
|
|
14672
14676
|
renderer._batchedTransformShaderData = batched;
|
|
14673
|
-
} else if (rendererUpdateFlag & ContextRendererUpdateFlag.ProjectionMatrix) {
|
|
14677
|
+
} else if (this.rendererUpdateFlag & ContextRendererUpdateFlag.ProjectionMatrix) {
|
|
14674
14678
|
// Only projection matrix need updated
|
|
14675
14679
|
renderer._updateTransformShaderData(context, true, batched);
|
|
14676
14680
|
}
|
|
@@ -14774,6 +14778,7 @@ Shader.create("FinalAntiAliasing", blitVs, FinalAntiAliasingFS);
|
|
|
14774
14778
|
rhi.drawPrimitive(primitive, subElement.subPrimitive, program);
|
|
14775
14779
|
}
|
|
14776
14780
|
}
|
|
14781
|
+
this.rendererUpdateFlag = ContextRendererUpdateFlag.None;
|
|
14777
14782
|
};
|
|
14778
14783
|
_proto.clear = function clear() {
|
|
14779
14784
|
this.elements.length = 0;
|
|
@@ -15571,7 +15576,9 @@ ShadowUtils.atlasBorderSize = 4.0;
|
|
|
15571
15576
|
sceneShaderData.setVector2(CascadedShadowCasterPass._lightShadowBiasProperty, this._shadowBias);
|
|
15572
15577
|
sceneShaderData.setVector3(CascadedShadowCasterPass._lightDirectionProperty, light.direction);
|
|
15573
15578
|
// Every light use self virtual camera
|
|
15574
|
-
context.
|
|
15579
|
+
var _context_camera__renderPipeline__cullingResults = context.camera._renderPipeline._cullingResults, opaqueQueue = _context_camera__renderPipeline__cullingResults.opaqueQueue, alphaTestQueue = _context_camera__renderPipeline__cullingResults.alphaTestQueue;
|
|
15580
|
+
opaqueQueue.rendererUpdateFlag |= ContextRendererUpdateFlag.viewProjectionMatrix;
|
|
15581
|
+
alphaTestQueue.rendererUpdateFlag |= ContextRendererUpdateFlag.viewProjectionMatrix;
|
|
15575
15582
|
context.applyVirtualCamera(virtualCamera, true);
|
|
15576
15583
|
};
|
|
15577
15584
|
return CascadedShadowCasterPass;
|
|
@@ -15610,6 +15617,11 @@ CascadedShadowCasterPass._tempMatrix0 = new Matrix();
|
|
|
15610
15617
|
this.alphaTestQueue.sortBatch(RenderQueue.compareForOpaque, batcherManager);
|
|
15611
15618
|
this.transparentQueue.sortBatch(RenderQueue.compareForTransparent, batcherManager);
|
|
15612
15619
|
};
|
|
15620
|
+
_proto.setRenderUpdateFlagTrue = function setRenderUpdateFlagTrue(rendererUpdateFlag) {
|
|
15621
|
+
this.opaqueQueue.rendererUpdateFlag |= rendererUpdateFlag;
|
|
15622
|
+
this.transparentQueue.rendererUpdateFlag |= rendererUpdateFlag;
|
|
15623
|
+
this.alphaTestQueue.rendererUpdateFlag |= rendererUpdateFlag;
|
|
15624
|
+
};
|
|
15613
15625
|
_proto.destroy = function destroy() {
|
|
15614
15626
|
this.opaqueQueue.destroy();
|
|
15615
15627
|
this.transparentQueue.destroy();
|
|
@@ -15716,7 +15728,7 @@ CascadedShadowCasterPass._tempMatrix0 = new Matrix();
|
|
|
15716
15728
|
* @param mipLevel - Set mip level the data want to write
|
|
15717
15729
|
* @param ignoreClear - Ignore clear flag
|
|
15718
15730
|
*/ _proto.render = function render(context, cubeFace, mipLevel, ignoreClear) {
|
|
15719
|
-
|
|
15731
|
+
this._cullingResults.setRenderUpdateFlagTrue(ContextRendererUpdateFlag.All);
|
|
15720
15732
|
var camera = this._camera;
|
|
15721
15733
|
var scene = camera.scene, engine = camera.engine, renderTarget = camera.renderTarget;
|
|
15722
15734
|
var independentCanvasEnabled = camera._isIndependentCanvasEnabled();
|
|
@@ -15741,12 +15753,11 @@ CascadedShadowCasterPass._tempMatrix0 = new Matrix();
|
|
|
15741
15753
|
this._shouldCopyBackgroundColor = independentCanvasEnabled && !(finalClearFlags & CameraClearFlags.Color) && (!this._canUseBlitFrameBuffer || isSRGBBackground);
|
|
15742
15754
|
if (scene.castShadows && sunlight && sunlight.shadowType !== ShadowType.None) {
|
|
15743
15755
|
this._cascadedShadowCasterPass.onRender(context);
|
|
15744
|
-
context.rendererUpdateFlag = ContextRendererUpdateFlag.None;
|
|
15745
15756
|
}
|
|
15746
15757
|
var batcherManager = engine._batcherManager;
|
|
15747
15758
|
cullingResults.reset();
|
|
15748
15759
|
// Depth use camera's view and projection matrix
|
|
15749
|
-
|
|
15760
|
+
this._cullingResults.setRenderUpdateFlagTrue(ContextRendererUpdateFlag.viewProjectionMatrix);
|
|
15750
15761
|
context.applyVirtualCamera(camera._virtualCamera, depthPassEnabled);
|
|
15751
15762
|
this._prepareRender(context);
|
|
15752
15763
|
cullingResults.sortBatch(batcherManager);
|
|
@@ -15754,7 +15765,6 @@ CascadedShadowCasterPass._tempMatrix0 = new Matrix();
|
|
|
15754
15765
|
if (depthPassEnabled) {
|
|
15755
15766
|
depthOnlyPass.onConfig(camera);
|
|
15756
15767
|
depthOnlyPass.onRender(context, cullingResults);
|
|
15757
|
-
context.rendererUpdateFlag = ContextRendererUpdateFlag.None;
|
|
15758
15768
|
} else {
|
|
15759
15769
|
depthOnlyPass.release();
|
|
15760
15770
|
camera.shaderData.setTexture(Camera._cameraDepthTextureProperty, engine._basicResources.whiteTexture2D);
|
|
@@ -15820,7 +15830,7 @@ CascadedShadowCasterPass._tempMatrix0 = new Matrix();
|
|
|
15820
15830
|
var needFlipProjection = !!internalColorTarget || camera.renderTarget && cubeFace == undefined;
|
|
15821
15831
|
if (context.flipProjection !== needFlipProjection) {
|
|
15822
15832
|
// Just add projection matrix update type is enough
|
|
15823
|
-
|
|
15833
|
+
cullingResults.setRenderUpdateFlagTrue(ContextRendererUpdateFlag.ProjectionMatrix);
|
|
15824
15834
|
context.applyVirtualCamera(camera._virtualCamera, needFlipProjection);
|
|
15825
15835
|
}
|
|
15826
15836
|
context.setRenderTarget(colorTarget, colorViewport, mipLevel, cubeFace);
|
|
@@ -25981,7 +25991,7 @@ var UIUtils = /*#__PURE__*/ function() {
|
|
|
25981
25991
|
viewE[12] = -position.x, viewE[13] = -position.y;
|
|
25982
25992
|
Matrix.multiply(virtualCamera.projectionMatrix, virtualCamera.viewMatrix, virtualCamera.viewProjectionMatrix);
|
|
25983
25993
|
renderContext.applyVirtualCamera(virtualCamera, false);
|
|
25984
|
-
|
|
25994
|
+
uiRenderQueue.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
|
|
25985
25995
|
uiCanvas._prepareRender(renderContext);
|
|
25986
25996
|
uiRenderQueue.pushRenderElement(uiCanvas._renderElement);
|
|
25987
25997
|
uiRenderQueue.batch(batcherManager);
|