Browse Source

Merge remote-tracking branch 'origin/master' into DDS

Sebastien Vandenberghe 8 năm trước cách đây
mục cha
commit
12bb62fcd0

+ 44 - 51
inspector/src/tabs/TextureTab.ts

@@ -95,58 +95,51 @@ module INSPECTOR {
             }
             else if (texture instanceof BABYLON.RenderTargetTexture) {
                 // RenderTarget textures
-                if(texture.activeCamera){
-                    BABYLON.Tools.CreateScreenshotUsingRenderTarget(this._inspector.scene.getEngine(), texture.activeCamera, { precision: 1 }, (data) => img.src = data);
-                }
-                else{
-                    let scene = this._inspector.scene;
-                    let engine = scene.getEngine();
-                    let size = texture.getSize();
+                let scene = this._inspector.scene;
+                let engine = scene.getEngine();
+                let size = texture.getSize();
                     
-                    // Clone the texture
-                    let screenShotTexture = texture.clone();
-                    screenShotTexture.activeCamera = texture.activeCamera;
-                    screenShotTexture.onBeforeRender = texture.onBeforeRender;
-                    screenShotTexture.onAfterRender = texture.onAfterRender;
-                    screenShotTexture.onBeforeRenderObservable = texture.onBeforeRenderObservable;
-                    screenShotTexture.onAfterUnbindObservable = texture.onAfterUnbindObservable;
-
-                    // To display the texture after rendering
-                    screenShotTexture.onAfterRenderObservable.add((faceIndex: number) => {
-                        let targetImg: HTMLImageElement;
-                        switch(faceIndex){
-                            case 0:
-                                targetImg = img;
-                                break;
-                            case 1:
-                                targetImg = img1;
-                                break;
-                            case 2:
-                                targetImg = img2;
-                                break;
-                            case 3:
-                                targetImg = img3;
-                                break;
-                            case 4:
-                                targetImg = img4;
-                                break;
-                            case 5:
-                                targetImg = img5;
-                                break;
-                            default:
-                                targetImg = img;
-                                break;
-
-                        }
-                        BABYLON.Tools.DumpFramebuffer(size.width, size.height, engine,  (data) => targetImg.src = data, "image/png");
-                    });
-
-                    // Render the texture
-                    scene.incrementRenderId();
-                    scene.resetCachedMaterial();
-                    screenShotTexture.render(true);
-                    screenShotTexture.dispose();
-                }
+                // Clone the texture
+                let screenShotTexture = texture.clone();
+                screenShotTexture.activeCamera = texture.activeCamera;
+                screenShotTexture.onBeforeRender = texture.onBeforeRender;
+                screenShotTexture.onAfterRender = texture.onAfterRender;
+                screenShotTexture.onBeforeRenderObservable = texture.onBeforeRenderObservable;
+                
+                // To display the texture after rendering
+                screenShotTexture.onAfterRenderObservable.add((faceIndex: number) => {
+                    let targetImg: HTMLImageElement;
+                    switch(faceIndex){
+                        case 0:
+                            targetImg = img;
+                            break;
+                        case 1:
+                            targetImg = img1;
+                            break;
+                        case 2:
+                            targetImg = img2;
+                            break;
+                        case 3:
+                            targetImg = img3;
+                            break;
+                        case 4:
+                            targetImg = img4;
+                            break;
+                        case 5:
+                            targetImg = img5;
+                            break;
+                        default:
+                            targetImg = img;
+                            break;
+                    }
+                    BABYLON.Tools.DumpFramebuffer(size.width, size.height, engine,  (data) => targetImg.src = data, "image/png");
+                });
+
+                // Render the texture
+                scene.incrementRenderId();
+                scene.resetCachedMaterial();
+                screenShotTexture.render();
+                screenShotTexture.dispose();
             } else if (texture.url) {
                 // If an url is present, the texture is an image
                 img.src = texture.url;

+ 1 - 3
inspector/test/index.js

@@ -260,9 +260,7 @@ var Test = (function () {
 
         // to test reflection prob texture handling
         var probe = new BABYLON.ReflectionProbe("probe", 512, scene);
-        for(let mesh of scene.meshes){
-            probe.renderList.push(mesh);
-        }
+        probe.renderList.push(sphere1);
 
         // gui
         var advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");

+ 2 - 2
src/Tools/babylon.dds.ts

@@ -461,7 +461,7 @@
                             dataLength = width * height * 4;
                             var floatArray: ArrayBufferView;
 
-                            if (engine.badOS || (!engine.getCaps().textureHalfFloat && !engine.getCaps().textureFloat)) { // Required because iOS has many issues with float and half float generation
+                            if (engine.badOS || engine.badDesktopOS || (!engine.getCaps().textureHalfFloat && !engine.getCaps().textureFloat)) { // Required because iOS has many issues with float and half float generation
                                 if (bpp === 128) {
                                     floatArray = DDSTools._GetFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, i);                                    
                                 }
@@ -476,7 +476,7 @@
                             else {
                                 if (bpp === 128) {
                                     floatArray = DDSTools._GetFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, i);
-                                } else if (bpp === 64 && (!engine.getCaps().textureHalfFloat || engine.badDesktopOS)) { // Let's fallback to full float if not half float or false report of it...
+                                } else if (bpp === 64 && !engine.getCaps().textureHalfFloat) {
                                     floatArray = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, i);
 
                                     info.textureType = Engine.TEXTURETYPE_FLOAT;

+ 1 - 1
src/babylon.engine.ts

@@ -876,7 +876,7 @@
             this._badOS = regexpBadOs.test(navigator.userAgent);
 
             //Detect if we are running on a faulty buggy OS.
-            var regexpBadDesktopOS = /AppleWebKit.*10.[\d] /
+            var regexpBadDesktopOS = /AppleWebKit.*10.[\d]/
             //ua sniffing is the tool of the devil.
             this._badDesktopOS = regexpBadDesktopOS.test(navigator.userAgent);
 

BIN
tests/validation/ReferenceImages/advancedShadows.png


BIN
tests/validation/ReferenceImages/highlights.png


BIN
tests/validation/ReferenceImages/pbrrough.png


+ 8 - 1
tests/validation/config.json

@@ -172,13 +172,20 @@
       "referenceImage": "displacementMap.png",
       "replace": "/Scenes/Customs/skybox/, https://cdn.rawgit.com/BabylonJS/Website/06ecbea7/Assets/skybox/"
     },
-    {
+     {
       "title": "PBR glossy",
       "scriptToRun": "/Demos/PBRGlossy/index.js",
       "functionToCall": "CreatePBRGlossyScene",
       "referenceImage": "pbrglossy.png"
     },
     {
+      "title": "PBR rough",
+      "renderCount": 10,
+      "scriptToRun": "/Demos/PBRRough/index.js",
+      "functionToCall": "CreatePBRRoughScene",
+      "referenceImage": "PBRRough.png"
+    },
+    {
       "title": "Water material (only visual check)",
       "renderCount": 10,
       "scriptToRun": "/Demos/WaterMaterial/water.js",