]> marstr Code Repo - marstr/orthographic.git/commitdiff
Fine-tuned tree generator in photogen
authorMarcus Str. <marcus@marstr.online>
Fri, 20 Dec 2024 20:40:55 +0000 (21:40 +0100)
committerMarcus Str. <marcus@marstr.online>
Fri, 20 Dec 2024 20:40:55 +0000 (21:40 +0100)
defines.py
layergen.py
photogen.py

index 47299192d1f60157590761966112896fecd47c37..126b67b2d752524f56a419cc0e5c1b495856a860 100644 (file)
@@ -252,14 +252,14 @@ mstr_mask_blur = [
     ("amenity", "school", 1),\r
     ("highway", "pedestrian", 12),\r
     # Z-Order 4\r
-    ("highway", "motorway", 1),\r
-    ("highway", "primary", 1),\r
-    ("highway", "secondary", 1),\r
-    ("highway", "tertiary", 1),\r
-    ("highway", "unclassified", 1),\r
-    ("highway", "living_street", 1),\r
-    ("highway", "residential", 1),\r
-    ("highway", "service", 1),\r
+    ("highway", "motorway", 0.5),\r
+    ("highway", "primary", 0.5),\r
+    ("highway", "secondary", 0.5),\r
+    ("highway", "tertiary", 0.5),\r
+    ("highway", "unclassified", 0.5),\r
+    ("highway", "living_street", 0.5),\r
+    ("highway", "residential", 0.5),\r
+    ("highway", "service", 0.5),\r
     ("highway", "footway", 2),\r
     ("highway", "track", 2),\r
     ("highway", "path", 2),\r
index 9c5ab0209e13e7e35d9c897ec2db7d0be388f56f..35c7ee7205d095560112309456caf6a4adbd8458 100644 (file)
@@ -567,18 +567,18 @@ class mstr_layergen:
                             d = randrange(41, 61)\r
                             layer_comp_pix[x, y] = ( d,d,d,a[3] )\r
                         if self._tag == "highway" and self._value != "motorway":\r
-                            d = randrange(0, 6)\r
+                            d = randrange(0, 31)\r
                             dr = 80+d\r
                             dg = 80+d\r
                             db = 85+d\r
-                            da = a[3]\r
+                            da = 255\r
                             layer_comp_pix[x, y] = ( dr,dg,db,da )\r
                         if self._tag == "highway" and self._value == "motorway":\r
                             d = randrange(0, 46)\r
                             dr = 47+d\r
                             dg = 58+d\r
                             db = 60+d\r
-                            layer_comp_pix[x, y] = ( dr,dg,db,a[3] )\r
+                            layer_comp_pix[x, y] = ( dr,dg,db,255 )\r
                         if self._tag == "highway" and (self._value == "footway" or self._value == "track" or self._value == "path"):\r
                             dr = randrange(158, 183)\r
                             dg = randrange(143, 178)\r
index e98b5bc6dd3d6a12af7dafee58d79815d1cf7abe..7efa20b1773dfc3c6adc3e9c331eed64e755ab8b 100644 (file)
@@ -225,6 +225,11 @@ class mstr_photogen:
         \r
         os.remove(mstr_datafolder + "z_orthographic/orthos/" + self._latlngfld + "/" + str(self._ty) + "_" + str(self._tx) + ".png")\r
 \r
+        # Clear cache\r
+        cache = glob.glob(mstr_datafolder + "_cache/*" + str(self._lat) + "-" + str(self._ty) + "_" + str(self._lng) + "-" + str(self._tx) + "*.png")\r
+        for f in range(len(cache)):\r
+            os.remove(cache[f])\r
+\r
 \r
         # Now generate the normal map for this ortho.\r
         # But only if this is enabled.\r
@@ -252,7 +257,7 @@ class mstr_photogen:
     # Generates some random tree.\r
     # We will now move away from using pre-made trees...\r
     # they didn't look so great\r
-    def generate_tree(self, bccolor=[(0,0,0)]):\r
+    def generate_tree(self, bccolor=None):\r
         sx = randrange(18, 31)\r
         sy = randrange(18, 31)\r
 \r
@@ -272,7 +277,7 @@ class mstr_photogen:
 \r
         bc = []\r
         bcp = 0\r
-        if bccolor[0] == 0:\r
+        if bccolor == None:\r
             bc = [\r
                 (36, 50, 52),\r
                 (30, 41, 39),\r
@@ -302,6 +307,7 @@ class mstr_photogen:
             bcp = randrange(0, len(bc))\r
         else:\r
             bc = bccolor\r
+            bcp = randrange(0, len(bc))\r
 \r
         treedraw = ImageDraw.Draw(tree)\r
         while ptsdrawn < treepts + 1:\r
@@ -361,25 +367,16 @@ class mstr_photogen:
                 forest = curlyr\r
 \r
         # Find the average color of the forest layer\r
-        frstavg = [0,0,0]\r
+        frstclr = []\r
         frstpix = None\r
         if forest != -1:\r
-            numusedpix = 0\r
             frstpix = layers[forest].load()\r
-            avg=[0,0,0]\r
             for y in range(0, self._imgsize):\r
                 for x in range(0, self._imgsize):\r
                     frs = frstpix[x,y]\r
                     if frs[3] > 0:\r
-                        avg[0] = avg[0] + frs[0]\r
-                        avg[1] = avg[1] + frs[1]\r
-                        avg[2] = avg[2] + frs[2]\r
-                        numusedpix = numusedpix + 1\r
-\r
-            # Calculate and set average\r
-            frstavg[0] = int(avg[0] / numusedpix)\r
-            frstavg[1] = int(avg[1] / numusedpix)\r
-            frstavg[2] = int(avg[2] / numusedpix)\r
+                        c = ( frs[0]-30, frs[1]-30, frs[2]-30 )\r
+                        frstclr.append(c)\r
 \r
 \r
         # Walk through list of layers to decide where to add the trees\r
@@ -398,7 +395,7 @@ class mstr_photogen:
                     lp = lyrmask[lx,ly]\r
                     wp = wtrpix[lx,ly]\r
                     if lp[3] == 255 and wp[3] == 0: # Exclude water bodies from tree placement\r
-                        tree = self.generate_tree(bccolor=[(frstavg[0], frstavg[1], frstavg[2])])\r
+                        tree = self.generate_tree(frstclr)\r
                         trees.alpha_composite(tree, (lx, ly))\r
 \r
                 tree_shadow = Image.new("RGBA", (self._imgsize, self._imgsize))\r