@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 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 && !this._isIndependentCanvasEnabled()) {
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
- var viewport = camera.viewport, scene = camera.scene, pixelViewport = camera.pixelViewport;
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, viewport, material, 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, viewport, material, 1, offsetX);
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, viewport, material, 1, offsetY);
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
- Blitter.blitTexture(camera.engine, srcTexture, destTarget, 0, camera.viewport, this._uberMaterial, undefined);
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 rendererUpdateFlag = context.rendererUpdateFlag, camera = context.camera;
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.rendererUpdateFlag |= ContextRendererUpdateFlag.viewProjectionMatrix;
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
- context.rendererUpdateFlag = ContextRendererUpdateFlag.All;
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
- context.rendererUpdateFlag |= ContextRendererUpdateFlag.viewProjectionMatrix;
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
- context.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
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
- renderContext.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
25998
+ uiRenderQueue.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
25989
25999
  uiCanvas._prepareRender(renderContext);
25990
26000
  uiRenderQueue.pushRenderElement(uiCanvas._renderElement);
25991
26001
  uiRenderQueue.batch(batcherManager);