From 09aa3670fb4aefdd071d21ae93d8dd020dc50cde Mon Sep 17 00:00:00 2001 From: marstr Date: Tue, 3 Sep 2024 15:57:58 +0200 Subject: [PATCH] Improved building rendering by adding subtle details to make residential areas look more alive. --- Textures/building/area/p1.png | Bin 0 -> 5338 bytes Textures/building/area/p10.png | Bin 0 -> 3254 bytes Textures/building/area/p2.png | Bin 0 -> 5664 bytes Textures/building/area/p3.png | Bin 0 -> 5848 bytes Textures/building/area/p4.png | Bin 0 -> 7131 bytes Textures/building/area/p5.png | Bin 0 -> 6498 bytes Textures/building/area/p6.png | Bin 0 -> 5128 bytes Textures/building/area/p7.png | Bin 0 -> 4648 bytes Textures/building/area/p8.png | Bin 0 -> 5359 bytes Textures/building/area/p9.png | Bin 0 -> 5426 bytes defines.py | 6 ++ layergen.py | 134 +++++++++++++++++++++++++-------- maskgen.py | 1 + 13 files changed, 109 insertions(+), 32 deletions(-) create mode 100644 Textures/building/area/p1.png create mode 100644 Textures/building/area/p10.png create mode 100644 Textures/building/area/p2.png create mode 100644 Textures/building/area/p3.png create mode 100644 Textures/building/area/p4.png create mode 100644 Textures/building/area/p5.png create mode 100644 Textures/building/area/p6.png create mode 100644 Textures/building/area/p7.png create mode 100644 Textures/building/area/p8.png create mode 100644 Textures/building/area/p9.png diff --git a/Textures/building/area/p1.png b/Textures/building/area/p1.png new file mode 100644 index 0000000000000000000000000000000000000000..1fa88ad3b04aba4c912b0f2c3409a3e0a460b140 GIT binary patch literal 5338 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 IM6N<$f+(QK-~a#s literal 0 HcmV?d00001 diff --git a/Textures/building/area/p6.png b/Textures/building/area/p6.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c523524ee72706dd9b87b59e9331c41945f126 GIT binary patch literal 5128 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 N002ovPDHLkV1nE5Sf>C0 literal 0 HcmV?d00001 diff --git a/Textures/building/area/p9.png b/Textures/building/area/p9.png new file mode 100644 index 0000000000000000000000000000000000000000..27fb77137aedc0ef125809bf49ec2abc456d2f90 GIT binary patch literal 5426 zcmV-270v32P)FV0004mX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmKpe$iQ>7{u1v`j1WT;MdQIU?Nibb$c+6t{Ym|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfc5qU3krMxx6k5c1aNLh~_a1le0HIlBs@W3*RLwHd ziMW`{uZn?J^uvz;q8OH#sV6gwS$K}Gd-(Wz7vWjn=l&dnO2K4+Pb7{p-LQx^i03vf zo%23%h?OOU_?&pkpbHW|a$R=$jdRIifoFz{YlrQ95 zRyc2QR;zW^z9)ZSu%NAExK48%2`nLr6hz3Vqk<|dL}=AWF_EVIxQBnt@u$coldA$o zjs?`9LUR1zfAG6ovp6&DCI#a_?~84JOaOshpw+PL?_=9;odEu4;7aTGYfT{fNqVEB zg^z%tZQ$a%qse=~K2d-P^xs+Wq|ip%HSqNrMUT00006VoOIv0RI30001*5eDeSR010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=m`T1FdXYUZ3qAW02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{022yHL_t(&-nE*`uPn)N-oGy*GwadkeeXQ@!e}_uNW-`7 zjSLvD;eXM8fxR-kGvJL^_R4?_NTMx~1Z9$vOlpR_oclPZyX%pe5#hy|AtjNrIKy#n zs?pU|oxiNisL1aN;xlM({qujyZP{^ixWe`I4Qkub!axZAecB7(``7=HqJlu6wF-nFEYSCc)*FI=P=Fv>ZGaJs1cku65 zerg!~q!+yQ)o<|g@4m}Y3UW>`H?-Ce?%dBCts84^)TB%$(cRfvV>qcI%$gbQ?7c&i zAWs9HeCaK|`rs%3e*vEU!8bYHJ!Q9stO}6yFxGA7zHe;3v#piZI~~DN3MDC9YXX1- zp;QW$ZceifC^(D*E^n^z#rM9-r*D6m&wlj7&mQ2lcfU;vAR-8N1|UK(sY(#EZqi$$ zH!vb3l`PXd3WZWzrD~!;1Oc&T;%1C+IvvAMn1>810TMTFeTmQi@~=KSfG>UXk7#B< zfFcx7q?9c4Jj*zal5!Gvle+I}yDK3wPLs~_q*_vn2o(`kRdIK9b74S&kd%a}Bw9FY zZwv-R1?A}-kAL&Q?+)Kv*yk1Ry|2N=Yvc2Mr)0BK2Ccbx&cEl4`!VyvVJ$ zOl1<)+p~&BIaA4)rkMbsNwKaA%H0juXCHogfH&X$CL;*9V1$!| zfY69Yt<}=4mz-0Hh_df>NSX#^9!nmE^Ku?VWu##2)`y4~l`@o43OsVJEd@ebHv!0$ zGBqnAfJ)nR455RakD{H2lJT1eWLO(&+~jb zo#r7=hnt(5i)CF76g@cn;1P%3+e~0CxlFzGaa*^dBH7GSZzd7W2(Z;2k0T`*%LKaP z>Ww#e|G@{pJ;3Yle4Qjgkl`SLN>C{*h#1{{PDw93{Bp1R)i{)^FMi>R*XM`RHC(T6 z@1EQQ;<{VA2IHE7Yap&vcops!`?AihwJ~WPvJMHLQdCqFh@grFERZz8nxof-&%O0! zK7aowzuk*WL?9w?4~mFHh(tt=hylQX;6-iil7fqzbZ&c}NEvSKZp+JO$6WV4m0{4+ zauih&cf;N7Z4mV1!$WVq*ObzhQa)cDZjZg&5sG7XPsh`7sn{tZ)z}~BEYxf5@r7@E zn}73X---Vxz-#Y(ogfh)0gxiXh~yCk-~{jzkXwLvN#$mmhD#A1>b{Q`mzTrw{#=fy zS814rl#~KEFUASC*Eg{)t1pl)B6~??xw*bNUSD0_oB2zs4)+fa>HgTn9TXt~h+Kvs z6}>fg^LXQ{@A2o~`+odJfG1!1CIdhZkO-2b(j~$ZMM}Q5DJ)XY%6@K^^Ka5`k5D@@CM8MqvfI^YpOd-hQsAJCg z0_3f`zSeDjqt<$NJlSO)WFF_I!#q#F(*}poPh4y4FQ*?rxZd#Q*dDUn6UY@CZZiTC{1BL-#(H zA&(xG$5ixu7NjgTO;>FkrwVFYm!-GbEhQ1<99B0h`xamNC;yB;`O`m+Ujq;kko@>a z?M9L*6 zO`5iSO&+FK*H>D`qN0)x^CW-^1qA7PtrqT8ME9KXmUG$bzSp`}LxgM4=jni9oZtZ7 zc>61S{?osDd;$>;KoAiS5sDDK8;fRI5Ak?RA5xN>hLlrEMO4Z#=2CDd5X;NHW|G=_ zmy{Ak1ZD=a$8>w1XXKncB2-m{LbPrnB39eJr<|6<#l?erTqf1I*EU+WJmjn*iQb%= zGA%sztzzBwU#)?Z5~guPL~z|Ukc3&Mq=6wJ{3wO!=1C*+Fbw(la7?YQiE62gswzp{ zUCdm1?=&;2C_Egc6r_~md_J?}A}J-F&S$8=f#|jNgEzm}>wZ!9eqii#uQv4B^H2sI zhFNOu;!Z!GS8TQZa=kvTfdFzT$T?%(HmE9dE~HRYMS@5Xky>v#HqYx)(yLc5(tJ7S z;V{VLgNO?2wo6Jy_O-&g@o+eR0VGLidxv#r2x4DqEZZriEZN-)z>y)-zPI`Ka6Tl- zlR}5yEDJ4_6rw3T?m4_sl_4UJQy&24iwWa2;PUc-oD*|amXe5o0Fg*0k^_Lj9p&ZA z`?Bwr#^Io)92Aix=^(nl8Za?y6k#XcFkx{>8uI>u1eXX~8mrK5K_i0&{GS5>Q#!;*r5nyYLwN?N`&IR){qt%91 z8-;?T2_$2_x{Oqci%5@<+V-~W+kUd{58mVGhLcKK!ckY-yU{%riHobt7{-jD6r?Y_ z{T2=v2c$zr-FB3VLZwLSs@pEf&5DpimNd0iXKVYEL<+)_Na)ko@8tUKid3@oM$HP% z36j%CN5yNezm8>Hv92qoX~Ow@hQWx1yuG;=)ug*s&AH^8>+5{FKj(ejlR&hYDM>LQ zTXnpC_Y{ZA1DrFCrw61w4ln^C3t&RG;J%-^>?g5sEn`W947T@S7|KveF4H`g+b6fF z%t^L=;j7~-HmkU~dV&_twN)4bb15jL;Iy1!VW@S-zVFz!6!SaWEDwqME2FiK>dKN=ZdrUAh?z#8gIH&KIzgK`9tgL3;W81zK;oxH!Pw zVP+5!TwY$%jkNA;eP`>th=gog(7myFqhw+_6fhAEN3AC+tZw>pl zK_y|HXOv+;?-sS~v8;>tUR_n(%)IyAYu!A;JYaD?KSXak?(S}4+ctFTG0hX^!wgkH zDH)m++qOZIVB0tB`-ULG1IRferG#25>Rv$#RTCnD<_0rk?}kLdwrqIu>;>A|;5C36 zNXLf<%r-#;fcZyBokm1>Yt7tSAIG7Iqn=OaIt)V{#?schnzioZG(;&SQqq_%rU-!J zFhp;S`?e#Ogw`AGkFRiha}%{zG_Q|u=bWLM;U2N?dn~6lTCrG`6|EU`$Pghs>?7H- z0vCXoV0~Bs1X9}?d>Am73Fq@MG;64ecZBDXZQu9CK%J&(Rnc`E$1UJ{@>KU;8_7J3 zgLE_Ioa5pu;e0yt5$FJOhxHCk3Aq$pTwH{i#W;?!H;Z8y;(R*A!~H|7%O0mVMcZ1y z8P*LJ5$-^Epp=Zd?znFqWz0xPkq*<0!#Lx`^B1UX$LBu(W{5H#mXpuJ*x{&dzK&^F ze6~~XcHXvi$tiD4^H_!Kf1-?1($Zm(|$KBkPv(-FM9jFeJr`yMY} zJ@_yTHczun(`@_J%)6UA3?6Q74v#QHKm?)*+gj0jMM{dC6XeH#`rl$m1YwuHg_ z;_AY0?`~qRn=jkq4)?uQ1JJi^@9xoZ8mdaJ2sV;EBD!_=-aXtRC=#kEgbCq-eQVga z`nVsMuAdMju5Yi|TEn`nY|W(ZO}1rIx5!hOGJ?Z-SqC#8TJOc-sf7F#9pl1_PqE0k|GZfKa;wV(ljN@`|BSeU0m_ubb@uG z^$uG*qdMnt{^+|#5%7FIlLE9}5rMe6ytHYW?Yum6N3TINOTR1-o|0v=V@LTIJW)ap>F$2@9|>a+w*b2a}j+ZnvU+VntR<^v+Ugk z2*4m8Yvq4mnft{Lz8g>f;A?dEhya?K)7fj==mFN&Bw(aSh^Xb9DxvGLY!Bz<;SvRN z)-(?DSX4`nKthM?%PxHM&}=;}Ek#-{Z?4boc8rJzcf9J|Ua6#eKwi1W11V=Awg|S~ z%)CdaAU;+ee)fa!#BbC_Km5UW!0ub+x=;qdX8%x=*Z?3mI=CemE;l6zE!L!9Z)(Gr?>m6cSs;;(KEFb&3kKYpALsjRd?0ryL+z@(S+;)T1436bdCrhKCw?s z5>$=u28w)qgK$TPBnQyLxC2;~DTN^!LXQvUN6nvEdNnCIKRON(LBPGEZ_C=!MQ$Q& z!!Wj-QaAH%y_t(SB3vZ7SqI5TS@Da%_+P&U!GFwyy8H6i__uya21tqk5QZoKA)p8d zMa04-;1cBHfV)wJ9CJnz4cluF@Wa(?!`0Y5+(guV{ z-?!?g<0*!53jZj1bN3Mb=28DtM)&se8K&FUKXR}X1OouX8IPaoLAb*mgyoz)Wi`!e zB(1k<1Wc8k40CjYhTq&=8HF*9W8B()*&MJ`S<_v5(N1quK3Fz|M@T10f3Nr z>^L9}zyq)V41fi^gESJ|ymv{dYmy#t1EQd_XJSF@FVpM9i+os!_C!IJbmK{*1F=!(3BML>$M{ z3vBxd)A*;wS+7kg`6cZsj>xBvhE07*qoM6N<$f(#shO8@`> literal 0 HcmV?d00001 diff --git a/defines.py b/defines.py index da726cc..2508c90 100644 --- a/defines.py +++ b/defines.py @@ -139,6 +139,7 @@ mstr_ortho_layers = [ # Z-Order 5 ("aeroway", "taxiway", 42), ("aeroway", "runway", 80), + ("building", "detached", "building", "common"), ("building", "church", "building", "common"), ("building", "hotel", "building", "industrial"), ("building", "farm", "building", "industrial"), @@ -151,6 +152,8 @@ mstr_ortho_layers = [ ("building", "industrial", "building", "industrial"), ("building", "house", "building", "house"), ("building", "terrace", "building", "industrial"), + ("building", "hangar", "building", "industrial"), + ("building", "school", "building", "common"), ("building", "yes", "building", "common") ] @@ -213,6 +216,7 @@ mstr_mask_blur = [ # Z-Order 5 ("aeroway", "taxiway", 12), ("aeroway", "runway", 12), + ("building", "detached", 1), ("building", "church", 1), ("building", "hotel", 1), ("building", "farm", 1), @@ -225,5 +229,7 @@ mstr_mask_blur = [ ("building", "industrial", 1), ("building", "house", 1), ("building", "terrace", 1), + ("building", "hangar", 1), + ("building", "school", 1), ("building", "yes", 1) ] diff --git a/layergen.py b/layergen.py index bb80559..1f482e6 100644 --- a/layergen.py +++ b/layergen.py @@ -134,7 +134,7 @@ class mstr_layergen: # There are some things we need to use sources for, and some things, we do not. # We need to differentiate that. - if (self._isline == False) or (self._is_completion == True): + if (self._isline == False and self._tag != "building") or (self._is_completion == True): # Determine where we get the our source material from root_folder = mstr_datafolder + "Textures\\" for s in mstr_ortho_layers: @@ -371,16 +371,10 @@ class mstr_layergen: ptc = randrange(1, 14) img = Image.open(mstr_datafolder + "Textures\\tile\\completion\\p" + str(ptc)+".png") lx = randrange( int(layer.width/20), layer.width - (int(layer.width/20)) - img.width ) - ly = randrange( int(layer.width/20), layer.width - (int(layer.width/20)) - img.width ) + ly = randrange( int(layer.width/20), layer.width - (int(layer.width/20)) - img.height ) layer.alpha_composite( img, (lx, ly) ) - # Let's do something nice with buildings - if self._tag == "building": - osm_edge = osm_edge.filter(ImageFilter.GaussianBlur(radius=3)) - layer.alpha_composite(osm_edge) - - # We now need to add the seamless border layer.alpha_composite( brd_src ) mstr_msg("layergen", "Layer image completed") @@ -517,7 +511,7 @@ class mstr_layergen: # If we encounter one of these road-specific tags, we need to proceed differently. - if self._isline == True: + if self._isline == True or self._tag == "building": # We will need the mask in question osm_mask = Image.open( mstr_datafolder + "_cache\\" + str(self._latitude) + "-" + str(self._lat_number) + "_" + str(self._longitude) + "-" + str(self._lng_number) + "_" + self._tag + "-" + self._value + ".png" ) @@ -543,6 +537,35 @@ class mstr_layergen: mask_pix = osm_mask.load() edge_pix = osm_edge.load() layer_comp_pix = layer_comp.load() + + # Let's define some base color ranges for different types of buildings + bld_clr = [ + ("detached", 190, 192, 195), + ("church", 134, 134, 136), + ("hotel", 153, 147, 138), + ("farm", 145, 124, 121), + ("semidetached_house", 167, 163, 152), + ("apartments", 129, 134, 127), + ("civic", 134, 134, 136), + ("garage", 101, 109, 111), + ("office", 139, 152, 156), + ("retail", 121, 122, 108), + ("industrial", 191, 192, 187), + ("house", 145, 124, 121), + ("terrace", 191, 192, 187), + ("hangar", 137, 162, 195), + ("school", 111, 117, 115), + ("yes", 152, 144, 141) + ] + + # Find the color index to work with + cidx = 0 + if self._tag == "building": + for c in bld_clr: + if c[0] == self._value: + break + cidx = cidx+1 + for y in range(self._imgsize): for x in range(self._imgsize): if mask_pix[x, y][3] > 0: @@ -579,29 +602,16 @@ class mstr_layergen: t = a[3]-d if t < 0: t = 0 layer_comp_pix[x, y] = ( mats[pick-1][0], mats[pick-1][1], mats[pick-1][2], t ) + + # A bit special here if self._tag == "building": - r = randrange(1, 20) - if self._value == "yes": - d = (116-r, 117-r,135-r) - layer_comp_pix[x, y] = ( d[0], d[1], d[2], a[3] ) - if e[3] > 0: - b = (96-r, 97-r, 115-r) - layer_comp_pix[x, y] = ( b[0],b[1],b[2],e[3] ) - - if self._value == "office" or self._value == "retail": - d = (100-r, 100-r, 100-r) - layer_comp_pix[x, y] = ( d[0], d[1], d[2], a[3] ) - if e[3] > 0: - b = (80-r, 80-r, 80-r) - layer_comp_pix[x, y] = ( b[0],b[1],b[2],e[3] ) - - if self._value == "industrial": - d = (166-r, 170-r, 175-r) - layer_comp_pix[x, y] = ( d[0], d[1], d[2], a[3] ) - if e[3] > 0: - b = (146-r, 150-r, 155-r) - layer_comp_pix[x, y] = ( b[0],b[1],b[2],e[3] ) + # Find a color range + d = randrange(1,21) + # Adjust this pixel + c = (bld_clr[cidx][1]-d, bld_clr[cidx][2]-d, bld_clr[cidx][3]-d, 255) + # Set pixel + layer_comp_pix[x, y] = c if self._value == "track" or self._value == "path": d = randrange(1,20) @@ -610,6 +620,64 @@ class mstr_layergen: b = 138 - d layer_comp_pix[x, y] = ( r,g,b,a[3] ) + # We will do some super magic here to let houses look more realistic + if self._tag == "building": + vls = [ "detached", "hotel", "farm", "semidetached_house", "apartments", "civic", "office", "retail", "industrial", "house", "school" ] + if self._value in vls: + # Generate a new image + details = Image.new("RGBA", (self._imgsize, self._imgsize)) + details_pix = details.load() + layer_pix = layer_comp.load() + for y in range(self._imgsize-1): + for x in range(self._imgsize-1): + p = layer_pix[x,y] + if p[3] > 0: + shf_x = x+randrange(1, 21) + shf_y = y+randrange(1, 21) + shf_x2 = x-randrange(1, 21) + shf_y2 = y-randrange(1, 21) + if shf_x <= self._imgsize-1 and shf_x >= 0 and shf_y <= self._imgsize-1 and shf_y >= 0: + st = random.uniform(0.85, 1.0) + ca = 255 * st + aa = int(ca) + d = randrange(1,26) + d2 = randrange(1,26) + details_pix[shf_x, shf_y] = (187-d, 179-d, 176-d, aa) + details_pix[shf_x2, shf_y2] = (187-d2, 179-d2, 176-d2, aa) + # Merge the details BELOW the houses + details.alpha_composite(layer_comp) + layer_comp = details + # New edge + osm_edge = osm_mask.filter(ImageFilter.FIND_EDGES) + osm_edge = osm_edge.filter(ImageFilter.GaussianBlur(radius=1)) + # Blur the image + layer_comp = layer_comp.filter(ImageFilter.GaussianBlur(radius=1)) + osm_edge.alpha_composite(layer_comp) + layer_comp = osm_edge + + + # Add some random trees + div = int(self._imgsize/200) + for y in range(0, self._imgsize, div): + for x in range(0, self._imgsize, div): + if x > 0 and x < self._imgsize and y > 0 and y < self._imgsize: + p = mask_pix[x, y] + if p[3] != 0: + # We found something... + # Determine if we put something somewhere + placement = randrange(0, 5) + if placement == 1: + # Do some random shift away from this location + shf_x = randrange(x-11, x+11) + shf_y = randrange(y-11, y+11) + if shf_x > 0 and shf_x < self._imgsize and shf_y > 0 and shf_y < self._imgsize: + # Pick some file + pick = str(randrange(1, 11)) + tree = Image.open(mstr_datafolder + "Textures\\building\\area\\p" + pick + ".png") + layer_comp.alpha_composite(tree, (shf_x, shf_y)) + #layer_comp.paste(tree, (shf_x, shf_y)) + + mstr_msg("layergen", "Layer image generated") # Building shadow @@ -622,13 +690,15 @@ class mstr_layergen: for y in range(self._imgsize-1): for x in range(self._imgsize-1): m = mask_pix[x,y] - shf_x = x + mstr_shadow_shift - if shf_x <= self._imgsize-1: + shf_x = x + randrange(1, mstr_shadow_shift) + shf_x2 = x + randrange(1, mstr_shadow_shift) + if shf_x <= self._imgsize-1 and shf_x >= 0 and shf_x2 <= self._imgsize-1 and shf_x2 >= 0: a = mask_pix[x,y][3] st = random.uniform(0.45, mstr_shadow_strength) ca = a * st aa = int(ca) shadow_pix[shf_x, y] = (0,0,0,aa) + shadow_pix[shf_x2, y] = (0,0,0,aa) shadow.save(mstr_datafolder + "_cache\\" + str(self._latitude) + "-" + str(self._lat_number) + "_" + str(self._longitude) + "-" + str(self._lng_number) + "_" + self._tag + "-" + self._value + "_layer_shadow.png") mstr_msg("layergen", "Shadow layer completed") diff --git a/maskgen.py b/maskgen.py index e1fbe22..c040c0d 100644 --- a/maskgen.py +++ b/maskgen.py @@ -183,3 +183,4 @@ class mstr_maskgen: # Inform mstr_msg("maskgen", "Mask built.") + -- 2.30.2