David Catuhe преди 8 години
родител
ревизия
f66b680888

BIN
tests/validation/ReferenceImages/advancedShadows.png


BIN
tests/validation/ReferenceImages/displacementMap.png


BIN
tests/validation/ReferenceImages/instancedBones.png


BIN
tests/validation/ReferenceImages/instances.png


BIN
tests/validation/ReferenceImages/lod.png


BIN
tests/validation/ReferenceImages/procedural.png


BIN
tests/validation/ReferenceImages/selfShadowing.png


BIN
tests/validation/ReferenceImages/waterMaterial.png


+ 64 - 0
tests/validation/config.json

@@ -128,12 +128,76 @@
       "replace": "Dude.babylon, dude.babylon"
     },
     {
+      "title": "LOD",
+      "renderCount": 10,
+      "scriptToRun": "/Demos/LOD/lod.js",
+      "functionToCall": "CreateLODTestScene",
+      "referenceImage": "lod.png"
+    },
+    {
       "title": "Lens",
       "scriptToRun": "/Demos/Lens/lensFlares.js",
       "functionToCall": "CreateLensFlaresTestScene",
       "referenceImage": "lens.png",
       "rootPath": "/Demos/Lens/",
       "replaceUrl": "lens4.png, lens5.png"
+    },
+    {
+      "title": "Self shadowing",
+      "renderCount": 10,
+      "scriptToRun": "/Demos/SelfShadowing/shadows.js",
+      "functionToCall": "CreateShadowsTestScene",
+      "referenceImage": "selfShadowing.png"
+    },
+    {
+      "title": "Advanced shadows",
+      "renderCount": 10,
+      "scriptToRun": "/Demos/AdvancedShadows/advancedShadows.js",
+      "functionToCall": "CreateAdvancedShadowsTestScene",
+      "referenceImage": "advancedShadows.png",
+      "replace": "/ground, /Ground"
+    },
+    {
+      "title": "Displacement map",
+      "scriptToRun": "/Demos/DisplacementMap/displacementMap.js",
+      "functionToCall": "CreateDisplacementTestScene",
+      "referenceImage": "displacementMap.png",
+      "replace": "/Scenes/Customs/skybox/, https://cdn.rawgit.com/BabylonJS/Website/06ecbea7/Assets/skybox/"
+    },
+    {
+      "title": "Water material (only visual check)",
+      "renderCount": 10,
+      "scriptToRun": "/Demos/WaterMaterial/water.js",
+      "functionToCall": "CreateWaterTestScene",
+      "referenceImage": "waterMaterial.png",
+      "onlyVisual": true 
+    },
+    {
+      "title": "Instances (only visual check)",
+      "renderCount": 10,
+      "scriptToRun": "/Demos/Instances/instances.js",
+      "functionToCall": "CreateInstancesTestScene",
+      "referenceImage": "instances.png",
+      "replace": "ground., Ground.",
+      "onlyVisual": true
+    },
+    {
+      "title": "Procedural textures (only visual check)",
+      "renderCount": 10,
+      "scriptToRun": "/Demos/Procedural/proceduralTexture.js",
+      "functionToCall": "CreateProceduralTextureTestScene",
+      "referenceImage": "procedural.png",
+      "replace": "./land, https://cdn.rawgit.com/BabylonJS/Website/06ecbea7/Demos/Procedural/land",
+      "onlyVisual": true
+    },
+    {
+      "title": "Instanced Bones (only visual check)",
+      "renderCount": 10,
+      "scriptToRun": "/Demos/InstancedBones/bones2.js",
+      "functionToCall": "CreateBones2TestScene",
+      "referenceImage": "instancedBones.png",
+      "replace": "Dude.babylon, dude.babylon",
+      "onlyVisual": true
     }
   ]
 }

+ 15 - 12
tests/validation/validation.js

@@ -72,18 +72,19 @@ function saveRenderImage(data, canvas) {
     return screenshotCanvas.toDataURL();
 }
 
-function evaluate(resultCanvas, result, renderImage, index, waitRing) {
+function evaluate(test, resultCanvas, result, renderImage, index, waitRing) {
     var renderData = getRenderData(canvas, engine);
-
-    if (compare(renderData, resultCanvas) !== 0) {
-        result.classList.add("failed");
-        result.innerHTML = "×";
-        console.log("failed");
-    } else {
-        result.innerHTML = "✔";
-        console.log("validated");
+    if (!test.onlyVisual) {
+
+        if (compare(renderData, resultCanvas) !== 0) {
+            result.classList.add("failed");
+            result.innerHTML = "×";
+            console.log("failed");
+        } else {
+            result.innerHTML = "✔";
+            console.log("validated");
+        }
     }
-
     waitRing.classList.add("hidden");
 
     renderImage.src = saveRenderImage(renderData, canvas);
@@ -103,7 +104,7 @@ function processCurrentScene(test, resultCanvas, result, renderImage, index, wai
 
             if (renderCount === 0) {
                 engine.stopRenderLoop();
-                evaluate(resultCanvas, result, renderImage, index, waitRing);
+                evaluate(test, resultCanvas, result, renderImage, index, waitRing);
             }
         });
 
@@ -181,7 +182,9 @@ function runTest(index) {
                 request.onreadystatechange = null; 
 
                 var scriptToRun = request.responseText.replace(/..\/..\/assets\//g, config.root + "/Assets/");
-                var scriptToRun = scriptToRun.replace(/..\/..\/Assets\//g, config.root + "/Assets/");
+                scriptToRun = scriptToRun.replace(/..\/..\/Assets\//g, config.root + "/Assets/");
+                scriptToRun = scriptToRun.replace(/\/assets\//g, config.root + "/Assets/");
+                scriptToRun = scriptToRun.replace(/\/Assets\//g, config.root + "/Assets/");
 
                 if (test.replace) {
                     var split = test.replace.split(",");