deltakosh il y a 12 ans
Parent
commit
42bf1c568a
100 fichiers modifiés avec 194 ajouts et 18 suppressions
  1. 143 15
      Babylon/Mesh/babylon.mesh.js
  2. 1 1
      Babylon/babylon.engine.js
  3. 5 0
      Babylon/babylon.scene.js
  4. BIN
      Samples/Assets/heightMap.png
  5. BIN
      Samples/Scenes/Customs/Ground.jpg
  6. BIN
      Samples/Scenes/Customs/heightMap.png
  7. 45 0
      Samples/Scenes/Customs/heightMap_test.js
  8. BIN
      Samples/Scenes/Espilit/Blanc.png
  9. BIN
      Samples/Scenes/Espilit/Booklet.png
  10. BIN
      Samples/Scenes/Espilit/BouteilleBlanc.png
  11. BIN
      Samples/Scenes/Espilit/BouteilleRouge.png
  12. BIN
      Samples/Scenes/Espilit/ChaisesLightingMap.png
  13. BIN
      Samples/Scenes/Espilit/ChaisesSpecMap.png
  14. BIN
      Samples/Scenes/Espilit/Chassis table CorbuLightingMap.png
  15. BIN
      Samples/Scenes/Espilit/Ciel.png
  16. BIN
      Samples/Scenes/Espilit/Cuir.png
  17. BIN
      Samples/Scenes/Espilit/Depliant.png
  18. BIN
      Samples/Scenes/Espilit/DepliantLightingMap.png
  19. BIN
      Samples/Scenes/Espilit/Expo1.png
  20. BIN
      Samples/Scenes/Espilit/Expo2.png
  21. BIN
      Samples/Scenes/Espilit/GravierDiff.png
  22. BIN
      Samples/Scenes/Espilit/Line01CompMap.png
  23. BIN
      Samples/Scenes/Espilit/Line01LightingMap.png
  24. BIN
      Samples/Scenes/Espilit/Metal NoirLightingMap.png
  25. BIN
      Samples/Scenes/Espilit/Murs pansLightingMap.png
  26. BIN
      Samples/Scenes/Espilit/MursLightingMap.png
  27. BIN
      Samples/Scenes/Espilit/Plaques Faux PlafondsLightingMap.png
  28. BIN
      Samples/Scenes/Espilit/PlaquesPlafond.png
  29. BIN
      Samples/Scenes/Espilit/Refcube_nx.jpg
  30. BIN
      Samples/Scenes/Espilit/Refcube_ny.jpg
  31. BIN
      Samples/Scenes/Espilit/Refcube_nz.jpg
  32. BIN
      Samples/Scenes/Espilit/Refcube_px.jpg
  33. BIN
      Samples/Scenes/Espilit/Refcube_py.jpg
  34. BIN
      Samples/Scenes/Espilit/Refcube_pz.jpg
  35. BIN
      Samples/Scenes/Espilit/Refcubenoire_nx.jpg
  36. BIN
      Samples/Scenes/Espilit/Refcubenoire_ny.jpg
  37. BIN
      Samples/Scenes/Espilit/Refcubenoire_nz.jpg
  38. BIN
      Samples/Scenes/Espilit/Refcubenoire_px.jpg
  39. BIN
      Samples/Scenes/Espilit/Refcubenoire_py.jpg
  40. BIN
      Samples/Scenes/Espilit/Refcubenoire_pz.jpg
  41. BIN
      Samples/Scenes/Espilit/Refsol.png
  42. BIN
      Samples/Scenes/Espilit/Rochers.png
  43. BIN
      Samples/Scenes/Espilit/Rouge.png
  44. BIN
      Samples/Scenes/Espilit/Sol.png
  45. BIN
      Samples/Scenes/Espilit/SolsLightingMap.png
  46. BIN
      Samples/Scenes/Espilit/Spec.png
  47. BIN
      Samples/Scenes/Espilit/T33LightingMap.png
  48. BIN
      Samples/Scenes/Espilit/TableauxDiffuseMap.png
  49. BIN
      Samples/Scenes/Espilit/Tables bonettoLightingMap.png
  50. BIN
      Samples/Scenes/Espilit/Tapis.png
  51. BIN
      Samples/Scenes/Espilit/Toile.png
  52. BIN
      Samples/Scenes/Espilit/Tree.png
  53. BIN
      Samples/Scenes/Espilit/VerreBump.png
  54. BIN
      Samples/Scenes/Espilit/arbresmassif.png
  55. BIN
      Samples/Scenes/Espilit/concrete3.png
  56. BIN
      Samples/Scenes/Espilit/concrete5.png
  57. 0 1
      Samples/Scenes/Espilit/espilit.babylon
  58. BIN
      Samples/Scenes/Espilit/herbe2.png
  59. BIN
      Samples/Scenes/Flat2009/1.png
  60. BIN
      Samples/Scenes/Flat2009/2.png
  61. BIN
      Samples/Scenes/Flat2009/3.png
  62. BIN
      Samples/Scenes/Flat2009/3602.png
  63. BIN
      Samples/Scenes/Flat2009/3602low.png
  64. BIN
      Samples/Scenes/Flat2009/4.png
  65. BIN
      Samples/Scenes/Flat2009/Affiches.png
  66. BIN
      Samples/Scenes/Flat2009/Affiches2.png
  67. BIN
      Samples/Scenes/Flat2009/AquariumLM.png
  68. BIN
      Samples/Scenes/Flat2009/BathTapis.png
  69. BIN
      Samples/Scenes/Flat2009/Betonmurs.png
  70. BIN
      Samples/Scenes/Flat2009/Bibelots.png
  71. BIN
      Samples/Scenes/Flat2009/Boisplandetravail.png
  72. BIN
      Samples/Scenes/Flat2009/Boisrouge.png
  73. BIN
      Samples/Scenes/Flat2009/Bruitverre.png
  74. BIN
      Samples/Scenes/Flat2009/Bulles.png
  75. BIN
      Samples/Scenes/Flat2009/Bumpcuir.png
  76. BIN
      Samples/Scenes/Flat2009/CarreauxVerreBump.png
  77. BIN
      Samples/Scenes/Flat2009/CarreauxVerreDiff.png
  78. BIN
      Samples/Scenes/Flat2009/CarreauxVerreNM.png
  79. BIN
      Samples/Scenes/Flat2009/ChassisboisLightingMap.png
  80. BIN
      Samples/Scenes/Flat2009/Clavier2.png
  81. BIN
      Samples/Scenes/Flat2009/CouverturesA.png
  82. BIN
      Samples/Scenes/Flat2009/Couvrante1.png
  83. BIN
      Samples/Scenes/Flat2009/Couvrante2.png
  84. BIN
      Samples/Scenes/Flat2009/Cuivre.png
  85. BIN
      Samples/Scenes/Flat2009/Eau.png
  86. BIN
      Samples/Scenes/Flat2009/EcranPC1.png
  87. BIN
      Samples/Scenes/Flat2009/Facade.png
  88. BIN
      Samples/Scenes/Flat2009/Faience.png
  89. 0 1
      Samples/Scenes/Flat2009/Flat2009.babylon
  90. BIN
      Samples/Scenes/Flat2009/GresNM.png
  91. BIN
      Samples/Scenes/Flat2009/Grille.png
  92. BIN
      Samples/Scenes/Flat2009/Grès.png
  93. BIN
      Samples/Scenes/Flat2009/GuitarSG.png
  94. BIN
      Samples/Scenes/Flat2009/GuitareExplo.png
  95. BIN
      Samples/Scenes/Flat2009/GuitareFV.png
  96. BIN
      Samples/Scenes/Flat2009/Halo.png
  97. BIN
      Samples/Scenes/Flat2009/Halogene.png
  98. BIN
      Samples/Scenes/Flat2009/Inter.png
  99. BIN
      Samples/Scenes/Flat2009/LakeRef_nx.jpg
  100. 0 0
      Samples/Scenes/Flat2009/LakeRef_ny.jpg

+ 143 - 15
Babylon/Mesh/babylon.mesh.js

@@ -51,6 +51,7 @@
     // Members    
     BABYLON.Mesh.prototype.material = null;
     BABYLON.Mesh.prototype.parent = null;
+    BABYLON.Mesh.prototype._isReady = true;
     BABYLON.Mesh.prototype._isEnabled = true;
     BABYLON.Mesh.prototype.isVisible = true;
     BABYLON.Mesh.prototype.isPickable = true;
@@ -124,9 +125,13 @@
 
         return true;
     };
+    
+    BABYLON.Mesh.prototype.isReady = function () {
+        return this._isReady;
+    };
 
     BABYLON.Mesh.prototype.isEnabled = function () {
-        if (!this._isEnabled) {
+        if (!this.isReady ()|| !this._isEnabled) {
             return false;
         }
 
@@ -746,7 +751,7 @@
 
         return plane;
     };
-    
+
     BABYLON.Mesh.CreateGround = function(name, width, height, subdivisions, scene, updatable) {
         var ground = new BABYLON.Mesh(name, [3, 3, 2], scene);
 
@@ -754,23 +759,19 @@
         var vertices = [];
         var row, col;
 
-        for (row = 0; row <= subdivisions; row++)
-        {
-            for (col = 0; col <= subdivisions; col++)
-            {
+        for (row = 0; row <= subdivisions; row++) {
+            for (col = 0; col <= subdivisions; col++) {
                 var position = new BABYLON.Vector3((col * width) / subdivisions - (width / 2.0), 0, ((subdivisions - row) * height) / subdivisions - (height / 2.0));
                 var normal = new BABYLON.Vector3(0, 1.0, 0);
 
-                vertices.push(  position.x, position.y, position.z, 
-                                normal.x, normal.y, normal.z,
-                                col / subdivisions, row / subdivisions);
+                vertices.push(position.x, position.y, position.z,
+                    normal.x, normal.y, normal.z,
+                    col / subdivisions, row / subdivisions);
             }
         }
 
-        for (row = 0; row < subdivisions; row++)
-        {
-            for (col = 0; col < subdivisions; col++)
-            {
+        for (row = 0; row < subdivisions; row++) {
+            for (col = 0; col < subdivisions; col++) {
                 indices.push(col + 1 + (row + 1) * (subdivisions + 1));
                 indices.push(col + 1 + row * (subdivisions + 1));
                 indices.push(col + row * (subdivisions + 1));
@@ -780,10 +781,137 @@
                 indices.push(col + row * (subdivisions + 1));
             }
         }
-        
+
         ground.setVertices(vertices, 1, updatable);
         ground.setIndices(indices);
 
         return ground;
-    }
+    };
+
+    BABYLON.Mesh.CreateGroundFromHeightMap = function(name, url, width, height, subdivisions, minHeight, maxHeight, scene, updatable) {
+        var ground = new BABYLON.Mesh(name, [3, 3, 2], scene);
+
+        var img = new Image();
+        img.onload = function() {
+            var indices = [];
+            var vertices = [];
+            var row, col;
+
+            // Getting height map data
+            var canvas = document.createElement("canvas");
+            var context = canvas.getContext("2d");
+            var heightMapWidth = img.width;
+            var heightMapHeight = img.height;
+            canvas.width = heightMapWidth;
+            canvas.height = heightMapHeight;
+
+            context.drawImage(img, 0, 0);
+
+            var buffer = context.getImageData(0, 0, heightMapWidth, heightMapHeight).data;
+
+            // Vertices
+            for (row = 0; row <= subdivisions; row++) {
+                for (col = 0; col <= subdivisions; col++) {
+                    var position = new BABYLON.Vector3((col * width) / subdivisions - (width / 2.0), 0, ((subdivisions - row) * height) / subdivisions - (height / 2.0));
+
+                    // Compute height
+                    var heightMapX = (((position.x + width / 2) / width) * (heightMapWidth - 1)) | 0;
+                    var heightMapY = (((position.z + height / 2) / height) * (heightMapHeight - 1)) | 0;
+
+                    var pos = (heightMapX + heightMapY * heightMapWidth) * 4;
+                    var r = buffer[pos] / 255.0;
+                    var g = buffer[pos + 1] / 255.0;
+                    var b = buffer[pos + 2] / 255.0;
+
+                    var gradient = r * 0.3 + g * 0.59 + b * 0.11;
+
+                    position.y = minHeight + (maxHeight - minHeight) * gradient;
+
+                    // Add  vertex
+                    vertices.push(position.x, position.y, position.z,
+                        0, 0, 0,
+                        col / subdivisions, row / subdivisions);
+                }
+            }
+
+            // Indices
+            for (row = 0; row < subdivisions; row++) {
+                for (col = 0; col < subdivisions; col++) {
+                    indices.push(col + 1 + (row + 1) * (subdivisions + 1));
+                    indices.push(col + 1 + row * (subdivisions + 1));
+                    indices.push(col + row * (subdivisions + 1));
+
+                    indices.push(col + (row + 1) * (subdivisions + 1));
+                    indices.push(col + 1 + (row + 1) * (subdivisions + 1));
+                    indices.push(col + row * (subdivisions + 1));
+                }
+            }
+
+            // Normals
+            BABYLON.Mesh.ComputeNormal(vertices, indices, ground.getFloatVertexStrideSize());
+
+            // Transfer
+            ground.setVertices(vertices, 1, updatable);
+            ground.setIndices(indices);
+
+            ground._isReady = true;
+        };
+
+        img.src = url;
+
+        ground._isReady = false;
+
+        return ground;
+    };
+    
+    // Tools
+    BABYLON.Mesh.ComputeNormal = function(vertices, indices, stride, normalOffset) {
+        var positions = [];
+        var facesOfVertices = [];
+        var index;
+
+        if (normalOffset === undefined) {
+            normalOffset = 3;
+        }
+
+        for (index = 0; index < vertices.length; index += stride) {
+            var position = new BABYLON.Vector3(vertices[index], vertices[index + 1], vertices[index + 2]);
+            positions.push(position);
+            facesOfVertices.push([]);
+        }
+        // Compute normals
+        var facesNormals = [];
+        for (index = 0; index < indices.length / 3; index++) {
+            var i1 = indices[index * 3];
+            var i2 = indices[index * 3 + 1];
+            var i3 = indices[index * 3 + 2];
+
+            var p1 = positions[i1];
+            var p2 = positions[i2];
+            var p3 = positions[i3];
+
+            var p1p2 = p1.subtract(p2);
+            var p3p2 = p3.subtract(p2);
+
+            facesNormals[index] = BABYLON.Vector3.Normalize(BABYLON.Vector3.Cross(p1p2, p3p2));
+            facesOfVertices[i1].push(index);
+            facesOfVertices[i2].push(index);
+            facesOfVertices[i3].push(index);
+        }
+
+        for (index = 0; index < positions.length; index++) {
+            var faces = facesOfVertices[index];
+
+            var normal = BABYLON.Vector3.Zero();
+            for (var faceIndex = 0; faceIndex < faces.length; faceIndex++) {
+                normal = normal.add(facesNormals[faces[faceIndex]]);
+            }
+
+            normal = BABYLON.Vector3.Normalize(normal.scale(1.0 / faces.length));
+
+            vertices[index * stride + normalOffset] = normal.x;
+            vertices[index * stride + normalOffset + 1] = normal.y;
+            vertices[index * stride + normalOffset + 2] = normal.z;
+        }
+    };
 })();

+ 1 - 1
Babylon/babylon.engine.js

@@ -27,7 +27,7 @@
         this._workingContext = this._workingCanvas.getContext("2d");
 
         // Viewport
-        this._hardwareScalingLevel = 1.0 / window.devicePixelRatio || 1.0
+        this._hardwareScalingLevel = 1.0 / window.devicePixelRatio || 1.0;
         this.resize();
 
         // Caps

+ 5 - 0
Babylon/babylon.scene.js

@@ -309,6 +309,11 @@
             var mesh = this.meshes[meshIndex];
 
             this._totalVertices += mesh.getTotalVertices();
+            
+            if (!mesh.isReady()) {
+                continue;
+            }
+
             mesh.computeWorldMatrix();
 
             if (mesh.isEnabled() && mesh.isVisible && mesh.visibility > 0 && mesh.isInFrustrum(frustumPlanes)) {

BIN
Samples/Assets/heightMap.png


BIN
Samples/Scenes/Customs/Ground.jpg


BIN
Samples/Scenes/Customs/heightMap.png


+ 45 - 0
Samples/Scenes/Customs/heightMap_test.js

@@ -0,0 +1,45 @@
+var CreateHeightMapTestScene = function (engine) {
+    var scene = new BABYLON.Scene(engine);
+    var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 10, BABYLON.Vector3.Zero(), scene);
+    var sun = new BABYLON.PointLight("Omni0", new BABYLON.Vector3(60, 100, 10), scene);
+
+    camera.setPosition(new BABYLON.Vector3(-20, 20, 0));
+    
+    // Skybox
+    var skybox = BABYLON.Mesh.CreateBox("skyBox", 100.0, scene);
+    var skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);
+    skyboxMaterial.backFaceCulling = false;
+    skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("Scenes/Customs/skybox/skybox", scene);
+    skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
+    skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);
+    skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
+    skybox.material = skyboxMaterial;
+    
+    // Ground
+    var ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "Scenes/Customs/heightMap.png", 100, 100, 100, 0, 10, scene, true);
+    var groundMaterial = new BABYLON.StandardMaterial("ground", scene);
+    groundMaterial.diffuseTexture = new BABYLON.Texture("Scenes/Customs/ground.jpg", scene);
+    groundMaterial.diffuseTexture.uScale = 6;
+    groundMaterial.diffuseTexture.vScale = 6;
+    groundMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
+    ground.position.y = -2.05;
+    ground.material = groundMaterial;
+
+    var beforeRenderFunction = function() {
+        // Camera
+        if (camera.beta < 0.1)
+            camera.beta = 0.1;
+        else if (camera.beta > (Math.PI / 2) * 0.9)
+            camera.beta = (Math.PI / 2) * 0.9;
+
+        if (camera.radius > 30)
+            camera.radius = 30;
+
+        if (camera.radius < 5)
+            camera.radius = 5;
+    };
+
+    scene.registerBeforeRender(beforeRenderFunction);
+
+    return scene;
+};

BIN
Samples/Scenes/Espilit/Blanc.png


BIN
Samples/Scenes/Espilit/Booklet.png


BIN
Samples/Scenes/Espilit/BouteilleBlanc.png


BIN
Samples/Scenes/Espilit/BouteilleRouge.png


BIN
Samples/Scenes/Espilit/ChaisesLightingMap.png


BIN
Samples/Scenes/Espilit/ChaisesSpecMap.png


BIN
Samples/Scenes/Espilit/Chassis table CorbuLightingMap.png


BIN
Samples/Scenes/Espilit/Ciel.png


BIN
Samples/Scenes/Espilit/Cuir.png


BIN
Samples/Scenes/Espilit/Depliant.png


BIN
Samples/Scenes/Espilit/DepliantLightingMap.png


BIN
Samples/Scenes/Espilit/Expo1.png


BIN
Samples/Scenes/Espilit/Expo2.png


BIN
Samples/Scenes/Espilit/GravierDiff.png


BIN
Samples/Scenes/Espilit/Line01CompMap.png


BIN
Samples/Scenes/Espilit/Line01LightingMap.png


BIN
Samples/Scenes/Espilit/Metal NoirLightingMap.png


BIN
Samples/Scenes/Espilit/Murs pansLightingMap.png


BIN
Samples/Scenes/Espilit/MursLightingMap.png


BIN
Samples/Scenes/Espilit/Plaques Faux PlafondsLightingMap.png


BIN
Samples/Scenes/Espilit/PlaquesPlafond.png


BIN
Samples/Scenes/Espilit/Refcube_nx.jpg


BIN
Samples/Scenes/Espilit/Refcube_ny.jpg


BIN
Samples/Scenes/Espilit/Refcube_nz.jpg


BIN
Samples/Scenes/Espilit/Refcube_px.jpg


BIN
Samples/Scenes/Espilit/Refcube_py.jpg


BIN
Samples/Scenes/Espilit/Refcube_pz.jpg


BIN
Samples/Scenes/Espilit/Refcubenoire_nx.jpg


BIN
Samples/Scenes/Espilit/Refcubenoire_ny.jpg


BIN
Samples/Scenes/Espilit/Refcubenoire_nz.jpg


BIN
Samples/Scenes/Espilit/Refcubenoire_px.jpg


BIN
Samples/Scenes/Espilit/Refcubenoire_py.jpg


BIN
Samples/Scenes/Espilit/Refcubenoire_pz.jpg


BIN
Samples/Scenes/Espilit/Refsol.png


BIN
Samples/Scenes/Espilit/Rochers.png


BIN
Samples/Scenes/Espilit/Rouge.png


BIN
Samples/Scenes/Espilit/Sol.png


BIN
Samples/Scenes/Espilit/SolsLightingMap.png


BIN
Samples/Scenes/Espilit/Spec.png


BIN
Samples/Scenes/Espilit/T33LightingMap.png


BIN
Samples/Scenes/Espilit/TableauxDiffuseMap.png


BIN
Samples/Scenes/Espilit/Tables bonettoLightingMap.png


BIN
Samples/Scenes/Espilit/Tapis.png


BIN
Samples/Scenes/Espilit/Toile.png


BIN
Samples/Scenes/Espilit/Tree.png


BIN
Samples/Scenes/Espilit/VerreBump.png


BIN
Samples/Scenes/Espilit/arbresmassif.png


BIN
Samples/Scenes/Espilit/concrete3.png


BIN
Samples/Scenes/Espilit/concrete5.png


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 1
Samples/Scenes/Espilit/espilit.babylon


BIN
Samples/Scenes/Espilit/herbe2.png


BIN
Samples/Scenes/Flat2009/1.png


BIN
Samples/Scenes/Flat2009/2.png


BIN
Samples/Scenes/Flat2009/3.png


BIN
Samples/Scenes/Flat2009/3602.png


BIN
Samples/Scenes/Flat2009/3602low.png


BIN
Samples/Scenes/Flat2009/4.png


BIN
Samples/Scenes/Flat2009/Affiches.png


BIN
Samples/Scenes/Flat2009/Affiches2.png


BIN
Samples/Scenes/Flat2009/AquariumLM.png


BIN
Samples/Scenes/Flat2009/BathTapis.png


BIN
Samples/Scenes/Flat2009/Betonmurs.png


BIN
Samples/Scenes/Flat2009/Bibelots.png


BIN
Samples/Scenes/Flat2009/Boisplandetravail.png


BIN
Samples/Scenes/Flat2009/Boisrouge.png


BIN
Samples/Scenes/Flat2009/Bruitverre.png


BIN
Samples/Scenes/Flat2009/Bulles.png


BIN
Samples/Scenes/Flat2009/Bumpcuir.png


BIN
Samples/Scenes/Flat2009/CarreauxVerreBump.png


BIN
Samples/Scenes/Flat2009/CarreauxVerreDiff.png


BIN
Samples/Scenes/Flat2009/CarreauxVerreNM.png


BIN
Samples/Scenes/Flat2009/ChassisboisLightingMap.png


BIN
Samples/Scenes/Flat2009/Clavier2.png


BIN
Samples/Scenes/Flat2009/CouverturesA.png


BIN
Samples/Scenes/Flat2009/Couvrante1.png


BIN
Samples/Scenes/Flat2009/Couvrante2.png


BIN
Samples/Scenes/Flat2009/Cuivre.png


BIN
Samples/Scenes/Flat2009/Eau.png


BIN
Samples/Scenes/Flat2009/EcranPC1.png


BIN
Samples/Scenes/Flat2009/Facade.png


BIN
Samples/Scenes/Flat2009/Faience.png


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 1
Samples/Scenes/Flat2009/Flat2009.babylon


BIN
Samples/Scenes/Flat2009/GresNM.png


BIN
Samples/Scenes/Flat2009/Grille.png


BIN
Samples/Scenes/Flat2009/Grès.png


BIN
Samples/Scenes/Flat2009/GuitarSG.png


BIN
Samples/Scenes/Flat2009/GuitareExplo.png


BIN
Samples/Scenes/Flat2009/GuitareFV.png


BIN
Samples/Scenes/Flat2009/Halo.png


BIN
Samples/Scenes/Flat2009/Halogene.png


BIN
Samples/Scenes/Flat2009/Inter.png


BIN
Samples/Scenes/Flat2009/LakeRef_nx.jpg


+ 0 - 0
Samples/Scenes/Flat2009/LakeRef_ny.jpg


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff