@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/main.js
CHANGED
|
@@ -6882,7 +6882,6 @@ __decorate([
|
|
|
6882
6882
|
function RenderContext() {
|
|
6883
6883
|
this._projectionParams = new engineMath.Vector4();
|
|
6884
6884
|
this.flipProjection = false;
|
|
6885
|
-
this.rendererUpdateFlag = 0;
|
|
6886
6885
|
}
|
|
6887
6886
|
var _proto = RenderContext.prototype;
|
|
6888
6887
|
_proto.applyVirtualCamera = function applyVirtualCamera(virtualCamera, flipProjection) {
|
|
@@ -8722,7 +8721,7 @@ exports.Camera = /*#__PURE__*/ function(Component) {
|
|
|
8722
8721
|
Logger.error("mipLevel only take effect in WebGL2.0");
|
|
8723
8722
|
}
|
|
8724
8723
|
var ignoreClearFlags;
|
|
8725
|
-
if (this._cameraType !== CameraType.Normal && !this._renderTarget
|
|
8724
|
+
if (this._cameraType !== CameraType.Normal && !this._renderTarget) {
|
|
8726
8725
|
ignoreClearFlags = engine.xrManager._getCameraIgnoreClearFlags(this._cameraType);
|
|
8727
8726
|
}
|
|
8728
8727
|
this._renderPipeline.render(context, cubeFace, mipLevel, ignoreClearFlags);
|
|
@@ -8856,6 +8855,9 @@ exports.Camera = /*#__PURE__*/ function(Component) {
|
|
|
8856
8855
|
width = canvas.width;
|
|
8857
8856
|
height = canvas.height;
|
|
8858
8857
|
}
|
|
8858
|
+
this._adjustPixelViewport(width, height);
|
|
8859
|
+
};
|
|
8860
|
+
_proto._adjustPixelViewport = function _adjustPixelViewport(width, height) {
|
|
8859
8861
|
var viewport = this._viewport;
|
|
8860
8862
|
this._pixelViewport.set(viewport.x * width, viewport.y * height, viewport.z * width, viewport.w * height);
|
|
8861
8863
|
!this._customAspectRatio && this._dispatchModify(CameraModifyFlags.AspectRatio);
|
|
@@ -10869,7 +10871,7 @@ var scalableAmbientOcclusionFS = "// Ambient Occlusion, largely inspired from:\n
|
|
|
10869
10871
|
_proto.onRender = function onRender(context) {
|
|
10870
10872
|
var engine = this.engine;
|
|
10871
10873
|
var camera = context.camera;
|
|
10872
|
-
|
|
10874
|
+
camera.viewport; var scene = camera.scene, pixelViewport = camera.pixelViewport;
|
|
10873
10875
|
var ambientOcclusion = scene.ambientOcclusion;
|
|
10874
10876
|
var shaderData = this._material.shaderData;
|
|
10875
10877
|
var projectionMatrix = context.projectionMatrix;
|
|
@@ -10901,15 +10903,15 @@ var scalableAmbientOcclusionFS = "// Ambient Occlusion, largely inspired from:\n
|
|
|
10901
10903
|
var _this = this, saoTarget = _this._saoRenderTarget, material = _this._material;
|
|
10902
10904
|
// Draw ambient occlusion texture
|
|
10903
10905
|
var sourceTexture = this._depthRenderTarget.depthTexture;
|
|
10904
|
-
Blitter.blitTexture(engine, sourceTexture, saoTarget, 0,
|
|
10906
|
+
Blitter.blitTexture(engine, sourceTexture, saoTarget, 0, undefined, material, 0);
|
|
10905
10907
|
// Horizontal blur, saoRenderTarget -> blurRenderTarget
|
|
10906
10908
|
var saoTexture = saoTarget.getColorTexture();
|
|
10907
10909
|
var offsetX = this._offsetX.set(1, 1, this._blurStepPixels / saoTexture.width, 0);
|
|
10908
|
-
Blitter.blitTexture(engine, saoTexture, this._blurRenderTarget, 0,
|
|
10910
|
+
Blitter.blitTexture(engine, saoTexture, this._blurRenderTarget, 0, undefined, material, 1, offsetX);
|
|
10909
10911
|
// Vertical blur, blurRenderTarget -> saoRenderTarget
|
|
10910
10912
|
var horizontalBlur = this._blurRenderTarget.getColorTexture();
|
|
10911
10913
|
var offsetY = this._offsetY.set(1, 1, 0, this._blurStepPixels / saoTexture.height);
|
|
10912
|
-
Blitter.blitTexture(engine, horizontalBlur, saoTarget, 0,
|
|
10914
|
+
Blitter.blitTexture(engine, horizontalBlur, saoTarget, 0, undefined, material, 1, offsetY);
|
|
10913
10915
|
// Set the SAO texture
|
|
10914
10916
|
camera.shaderData.setTexture(exports.Camera._cameraAOTextureProperty, saoTexture);
|
|
10915
10917
|
};
|
|
@@ -14423,7 +14425,8 @@ var PostProcessUberPass = /*#__PURE__*/ function(PostProcessPass) {
|
|
|
14423
14425
|
} else {
|
|
14424
14426
|
uberShaderData.disableMacro(TonemappingEffect._enableMacro);
|
|
14425
14427
|
}
|
|
14426
|
-
|
|
14428
|
+
var viewport = destTarget === camera.renderTarget ? camera.viewport : undefined;
|
|
14429
|
+
Blitter.blitTexture(camera.engine, srcTexture, destTarget, 0, viewport, this._uberMaterial, undefined);
|
|
14427
14430
|
};
|
|
14428
14431
|
/**
|
|
14429
14432
|
* @inheritdoc
|
|
@@ -14461,7 +14464,7 @@ var PostProcessUberPass = /*#__PURE__*/ function(PostProcessPass) {
|
|
|
14461
14464
|
uberShaderData.disableMacro(BloomEffect._hqMacro);
|
|
14462
14465
|
}
|
|
14463
14466
|
uberShaderData.setTexture(BloomEffect._dirtTextureProp, dirtTexture.value);
|
|
14464
|
-
if (dirtTexture) {
|
|
14467
|
+
if (dirtTexture.value) {
|
|
14465
14468
|
uberShaderData.enableMacro(BloomEffect._dirtMacro);
|
|
14466
14469
|
} else {
|
|
14467
14470
|
uberShaderData.disableMacro(BloomEffect._dirtMacro);
|
|
@@ -14598,11 +14601,12 @@ var FXAA3_11 = "//--------------------------------------------------------------
|
|
|
14598
14601
|
var enableFXAA = camera.antiAliasing === AntiAliasing.FXAA;
|
|
14599
14602
|
// Should convert to sRGB when FXAA is enabled or camera's render target is not set
|
|
14600
14603
|
var sourceTexture = this._inputRenderTarget.getColorTexture();
|
|
14601
|
-
var outputRenderTarget = enableFXAA ? this._srgbRenderTarget : renderTarget;
|
|
14602
|
-
Blitter.blitTexture(engine, sourceTexture, outputRenderTarget, 0, viewport, this._sRGBmaterial);
|
|
14603
14604
|
if (enableFXAA) {
|
|
14605
|
+
Blitter.blitTexture(engine, sourceTexture, this._srgbRenderTarget, 0, undefined, this._sRGBmaterial);
|
|
14604
14606
|
var sRGBTexture = this._srgbRenderTarget.getColorTexture();
|
|
14605
14607
|
Blitter.blitTexture(engine, sRGBTexture, renderTarget, 0, viewport, this._antiAliasingMaterial);
|
|
14608
|
+
} else {
|
|
14609
|
+
Blitter.blitTexture(engine, sourceTexture, renderTarget, 0, viewport, this._sRGBmaterial);
|
|
14606
14610
|
}
|
|
14607
14611
|
};
|
|
14608
14612
|
_proto.release = function release() {
|
|
@@ -14640,6 +14644,7 @@ Shader.create("FinalAntiAliasing", blitVs, FinalAntiAliasingFS);
|
|
|
14640
14644
|
this.renderQueueType = renderQueueType;
|
|
14641
14645
|
this.elements = new Array();
|
|
14642
14646
|
this.batchedSubElements = new Array();
|
|
14647
|
+
this.rendererUpdateFlag = ContextRendererUpdateFlag.None;
|
|
14643
14648
|
}
|
|
14644
14649
|
var _proto = RenderQueue.prototype;
|
|
14645
14650
|
_proto.pushRenderElement = function pushRenderElement(element) {
|
|
@@ -14659,8 +14664,7 @@ Shader.create("FinalAntiAliasing", blitVs, FinalAntiAliasingFS);
|
|
|
14659
14664
|
if (length === 0) {
|
|
14660
14665
|
return;
|
|
14661
14666
|
}
|
|
14662
|
-
var
|
|
14663
|
-
var engine = camera.engine, scene = camera.scene, cameraId = camera.instanceId, cameraData = camera.shaderData;
|
|
14667
|
+
var _context_camera = context.camera, engine = _context_camera.engine, scene = _context_camera.scene, cameraId = _context_camera.instanceId, cameraData = _context_camera.shaderData;
|
|
14664
14668
|
var sceneId = scene.instanceId, sceneData = scene.shaderData, maskManager = scene._maskManager;
|
|
14665
14669
|
var renderCount = engine._renderCount;
|
|
14666
14670
|
var rhi = engine._hardwareRenderer;
|
|
@@ -14670,11 +14674,11 @@ Shader.create("FinalAntiAliasing", blitVs, FinalAntiAliasingFS);
|
|
|
14670
14674
|
var subElement = batchedSubElements[i];
|
|
14671
14675
|
var renderer = subElement.component, batched = subElement.batched, material = subElement.material;
|
|
14672
14676
|
// @todo: Can optimize update view projection matrix updated
|
|
14673
|
-
if (rendererUpdateFlag & ContextRendererUpdateFlag.WorldViewMatrix || renderer._batchedTransformShaderData != batched) {
|
|
14677
|
+
if (this.rendererUpdateFlag & ContextRendererUpdateFlag.WorldViewMatrix || renderer._batchedTransformShaderData != batched) {
|
|
14674
14678
|
// Update world matrix and view matrix and model matrix
|
|
14675
14679
|
renderer._updateTransformShaderData(context, false, batched);
|
|
14676
14680
|
renderer._batchedTransformShaderData = batched;
|
|
14677
|
-
} else if (rendererUpdateFlag & ContextRendererUpdateFlag.ProjectionMatrix) {
|
|
14681
|
+
} else if (this.rendererUpdateFlag & ContextRendererUpdateFlag.ProjectionMatrix) {
|
|
14678
14682
|
// Only projection matrix need updated
|
|
14679
14683
|
renderer._updateTransformShaderData(context, true, batched);
|
|
14680
14684
|
}
|
|
@@ -14778,6 +14782,7 @@ Shader.create("FinalAntiAliasing", blitVs, FinalAntiAliasingFS);
|
|
|
14778
14782
|
rhi.drawPrimitive(primitive, subElement.subPrimitive, program);
|
|
14779
14783
|
}
|
|
14780
14784
|
}
|
|
14785
|
+
this.rendererUpdateFlag = ContextRendererUpdateFlag.None;
|
|
14781
14786
|
};
|
|
14782
14787
|
_proto.clear = function clear() {
|
|
14783
14788
|
this.elements.length = 0;
|
|
@@ -15575,7 +15580,9 @@ ShadowUtils.atlasBorderSize = 4.0;
|
|
|
15575
15580
|
sceneShaderData.setVector2(CascadedShadowCasterPass._lightShadowBiasProperty, this._shadowBias);
|
|
15576
15581
|
sceneShaderData.setVector3(CascadedShadowCasterPass._lightDirectionProperty, light.direction);
|
|
15577
15582
|
// Every light use self virtual camera
|
|
15578
|
-
context.
|
|
15583
|
+
var _context_camera__renderPipeline__cullingResults = context.camera._renderPipeline._cullingResults, opaqueQueue = _context_camera__renderPipeline__cullingResults.opaqueQueue, alphaTestQueue = _context_camera__renderPipeline__cullingResults.alphaTestQueue;
|
|
15584
|
+
opaqueQueue.rendererUpdateFlag |= ContextRendererUpdateFlag.viewProjectionMatrix;
|
|
15585
|
+
alphaTestQueue.rendererUpdateFlag |= ContextRendererUpdateFlag.viewProjectionMatrix;
|
|
15579
15586
|
context.applyVirtualCamera(virtualCamera, true);
|
|
15580
15587
|
};
|
|
15581
15588
|
return CascadedShadowCasterPass;
|
|
@@ -15614,6 +15621,11 @@ CascadedShadowCasterPass._tempMatrix0 = new engineMath.Matrix();
|
|
|
15614
15621
|
this.alphaTestQueue.sortBatch(RenderQueue.compareForOpaque, batcherManager);
|
|
15615
15622
|
this.transparentQueue.sortBatch(RenderQueue.compareForTransparent, batcherManager);
|
|
15616
15623
|
};
|
|
15624
|
+
_proto.setRenderUpdateFlagTrue = function setRenderUpdateFlagTrue(rendererUpdateFlag) {
|
|
15625
|
+
this.opaqueQueue.rendererUpdateFlag |= rendererUpdateFlag;
|
|
15626
|
+
this.transparentQueue.rendererUpdateFlag |= rendererUpdateFlag;
|
|
15627
|
+
this.alphaTestQueue.rendererUpdateFlag |= rendererUpdateFlag;
|
|
15628
|
+
};
|
|
15617
15629
|
_proto.destroy = function destroy() {
|
|
15618
15630
|
this.opaqueQueue.destroy();
|
|
15619
15631
|
this.transparentQueue.destroy();
|
|
@@ -15720,7 +15732,7 @@ CascadedShadowCasterPass._tempMatrix0 = new engineMath.Matrix();
|
|
|
15720
15732
|
* @param mipLevel - Set mip level the data want to write
|
|
15721
15733
|
* @param ignoreClear - Ignore clear flag
|
|
15722
15734
|
*/ _proto.render = function render(context, cubeFace, mipLevel, ignoreClear) {
|
|
15723
|
-
|
|
15735
|
+
this._cullingResults.setRenderUpdateFlagTrue(ContextRendererUpdateFlag.All);
|
|
15724
15736
|
var camera = this._camera;
|
|
15725
15737
|
var scene = camera.scene, engine = camera.engine, renderTarget = camera.renderTarget;
|
|
15726
15738
|
var independentCanvasEnabled = camera._isIndependentCanvasEnabled();
|
|
@@ -15745,12 +15757,11 @@ CascadedShadowCasterPass._tempMatrix0 = new engineMath.Matrix();
|
|
|
15745
15757
|
this._shouldCopyBackgroundColor = independentCanvasEnabled && !(finalClearFlags & CameraClearFlags.Color) && (!this._canUseBlitFrameBuffer || isSRGBBackground);
|
|
15746
15758
|
if (scene.castShadows && sunlight && sunlight.shadowType !== ShadowType.None) {
|
|
15747
15759
|
this._cascadedShadowCasterPass.onRender(context);
|
|
15748
|
-
context.rendererUpdateFlag = ContextRendererUpdateFlag.None;
|
|
15749
15760
|
}
|
|
15750
15761
|
var batcherManager = engine._batcherManager;
|
|
15751
15762
|
cullingResults.reset();
|
|
15752
15763
|
// Depth use camera's view and projection matrix
|
|
15753
|
-
|
|
15764
|
+
this._cullingResults.setRenderUpdateFlagTrue(ContextRendererUpdateFlag.viewProjectionMatrix);
|
|
15754
15765
|
context.applyVirtualCamera(camera._virtualCamera, depthPassEnabled);
|
|
15755
15766
|
this._prepareRender(context);
|
|
15756
15767
|
cullingResults.sortBatch(batcherManager);
|
|
@@ -15758,7 +15769,6 @@ CascadedShadowCasterPass._tempMatrix0 = new engineMath.Matrix();
|
|
|
15758
15769
|
if (depthPassEnabled) {
|
|
15759
15770
|
depthOnlyPass.onConfig(camera);
|
|
15760
15771
|
depthOnlyPass.onRender(context, cullingResults);
|
|
15761
|
-
context.rendererUpdateFlag = ContextRendererUpdateFlag.None;
|
|
15762
15772
|
} else {
|
|
15763
15773
|
depthOnlyPass.release();
|
|
15764
15774
|
camera.shaderData.setTexture(exports.Camera._cameraDepthTextureProperty, engine._basicResources.whiteTexture2D);
|
|
@@ -15824,7 +15834,7 @@ CascadedShadowCasterPass._tempMatrix0 = new engineMath.Matrix();
|
|
|
15824
15834
|
var needFlipProjection = !!internalColorTarget || camera.renderTarget && cubeFace == undefined;
|
|
15825
15835
|
if (context.flipProjection !== needFlipProjection) {
|
|
15826
15836
|
// Just add projection matrix update type is enough
|
|
15827
|
-
|
|
15837
|
+
cullingResults.setRenderUpdateFlagTrue(ContextRendererUpdateFlag.ProjectionMatrix);
|
|
15828
15838
|
context.applyVirtualCamera(camera._virtualCamera, needFlipProjection);
|
|
15829
15839
|
}
|
|
15830
15840
|
context.setRenderTarget(colorTarget, colorViewport, mipLevel, cubeFace);
|
|
@@ -25985,7 +25995,7 @@ var UIUtils = /*#__PURE__*/ function() {
|
|
|
25985
25995
|
viewE[12] = -position.x, viewE[13] = -position.y;
|
|
25986
25996
|
engineMath.Matrix.multiply(virtualCamera.projectionMatrix, virtualCamera.viewMatrix, virtualCamera.viewProjectionMatrix);
|
|
25987
25997
|
renderContext.applyVirtualCamera(virtualCamera, false);
|
|
25988
|
-
|
|
25998
|
+
uiRenderQueue.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
|
|
25989
25999
|
uiCanvas._prepareRender(renderContext);
|
|
25990
26000
|
uiRenderQueue.pushRenderElement(uiCanvas._renderElement);
|
|
25991
26001
|
uiRenderQueue.batch(batcherManager);
|