@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/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 && !this._isIndependentCanvasEnabled()) {
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
- var viewport = camera.viewport, scene = camera.scene, pixelViewport = camera.pixelViewport;
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, viewport, material, 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, viewport, material, 1, offsetX);
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, viewport, material, 1, offsetY);
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
- Blitter.blitTexture(camera.engine, srcTexture, destTarget, 0, camera.viewport, this._uberMaterial, undefined);
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 rendererUpdateFlag = context.rendererUpdateFlag, camera = context.camera;
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.rendererUpdateFlag |= ContextRendererUpdateFlag.viewProjectionMatrix;
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
- context.rendererUpdateFlag = ContextRendererUpdateFlag.All;
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
- context.rendererUpdateFlag |= ContextRendererUpdateFlag.viewProjectionMatrix;
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
- context.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
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
- renderContext.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
25994
+ uiRenderQueue.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
25985
25995
  uiCanvas._prepareRender(renderContext);
25986
25996
  uiRenderQueue.pushRenderElement(uiCanvas._renderElement);
25987
25997
  uiRenderQueue.batch(batcherManager);