瀏覽代碼

Fixed groundbuilder to take negative values in account

David Catuhe 6 年之前
父節點
當前提交
9e0d3ce92d
共有 2 個文件被更改,包括 15 次插入1 次删除
  1. 1 1
      dist/preview release/packagesSizeBaseLine.json
  2. 14 0
      src/Meshes/Builders/groundBuilder.ts

+ 1 - 1
dist/preview release/packagesSizeBaseLine.json

@@ -1 +1 @@
-{"engineOnly":309056,"sceneOnly":551274,"minGridMaterial":674003,"minStandardMaterial":772858}
+{"engineOnly":309116,"sceneOnly":551531,"minGridMaterial":674260,"minStandardMaterial":773115}

+ 14 - 0
src/Meshes/Builders/groundBuilder.ts

@@ -143,6 +143,14 @@ VertexData.CreateGroundFromHeightMap = function(options: { width: number, height
     var row, col;
     var filter = options.colorFilter || new Color3(0.3, 0.59, 0.11);
     var alphaFilter = options.alphaFilter || 0.0;
+    var invert = false;
+
+    if (options.minHeight > options.maxHeight) {
+        invert = true;
+        let temp = options.maxHeight;
+        options.maxHeight = options.minHeight;
+        options.minHeight = temp;
+    }
 
     // Vertices
     for (row = 0; row <= options.subdivisions; row++) {
@@ -159,6 +167,12 @@ VertexData.CreateGroundFromHeightMap = function(options: { width: number, height
             var b = options.buffer[pos + 2] / 255.0;
             var a = options.buffer[pos + 3] / 255.0;
 
+            if (invert) {
+                r = 1.0 - r;
+                g = 1.0 - g;
+                b = 1.0 - b;
+            }
+
             var gradient = r * filter.r + g * filter.g + b * filter.b;
 
             // If our alpha channel is not within our filter then we will assign a 'special' height