Browse Source

fixing error when presenting in multiview

Raanan Weber 5 năm trước cách đây
mục cha
commit
e002e782bc

+ 1 - 1
src/Engines/thinEngine.ts

@@ -3627,7 +3627,7 @@ export class ThinEngine {
         this._activeChannel = channel;
         const target = this._getTextureTarget(internalTexture);
         if (needToBind) {
-            this._bindTextureDirectly(target, internalTexture, isPartOfTextureArray);
+            this._bindTextureDirectly((internalTexture && internalTexture.isMultiview) ? this._gl.TEXTURE_2D_ARRAY : target, internalTexture, isPartOfTextureArray);
         }
 
         if (internalTexture && !internalTexture.isMultiview) {

+ 2 - 0
src/Materials/Textures/MultiviewRenderTarget.ts

@@ -1,6 +1,7 @@
 import { RenderTargetTexture } from '../Textures/renderTargetTexture';
 import { Scene } from '../../scene';
 import { InternalTextureSource } from '../Textures/internalTexture';
+import { Constants } from '../../Engines/constants';
 
 /**
  * Renders to multiple views with a single draw call
@@ -16,6 +17,7 @@ export class MultiviewRenderTarget extends RenderTargetTexture {
         super("multiview rtt", size, scene, false, true, InternalTextureSource.Unknown, false, undefined, false, false, true, undefined, true);
         var internalTexture = scene.getEngine().createMultiviewRenderTargetTexture(this.getRenderWidth(), this.getRenderHeight());
         internalTexture.isMultiview = true;
+        internalTexture.format = Constants.TEXTUREFORMAT_RGBA;
         this._texture = internalTexture;
         this.samples = this._engine.getCaps().maxSamples || this.samples;
     }