From c1aa61ca95952bba1a77499239bc7ab64e2ba728 Mon Sep 17 00:00:00 2001 From: Xeon0X Date: Sun, 16 Jun 2024 20:08:24 +0200 Subject: [PATCH] Add smooth terrain --- main.py | 8 +-- world_maker/data/building.png | Bin 254 -> 387 bytes world_maker/data/city_map.png | Bin 1463 -> 1232 bytes world_maker/data/district.png | Bin 1972 -> 2410 bytes world_maker/data/heightmap.png | Bin 10250 -> 12839 bytes world_maker/data/heightmap_smooth.png | Bin 0 -> 6563 bytes world_maker/data/highwaymap.png | Bin 198 -> 645 bytes world_maker/data/mountain_map.png | Bin 844 -> 809 bytes world_maker/data/removed_treesmap.png | Bin 1183 -> 454 bytes world_maker/data/roadmap.png | Bin 960 -> 888 bytes world_maker/data/skeleton_highway.png | Bin 9971 -> 13474 bytes world_maker/data/skeleton_highway_area.png | Bin 268 -> 748 bytes world_maker/data/skeleton_mountain.png | Bin 9794 -> 14128 bytes world_maker/data/skeleton_mountain_area.png | Bin 119 -> 1127 bytes world_maker/data/smooth_sobel_watermap.png | Bin 2111 -> 1567 bytes world_maker/data/smooth_terrain_delta.png | Bin 0 -> 7115 bytes world_maker/data/sobelmap.png | Bin 13962 -> 15324 bytes world_maker/data/treemap.png | Bin 6476 -> 7753 bytes world_maker/data/watermap.png | Bin 119 -> 658 bytes world_maker/data_analysis.py | 16 ++++-- world_maker/terraforming.py | 51 ++++++++++++++++++-- world_maker/world_maker.py | 7 ++- 22 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 world_maker/data/heightmap_smooth.png create mode 100644 world_maker/data/smooth_terrain_delta.png diff --git a/main.py b/main.py index 7f912dc..cb3a8b6 100644 --- a/main.py +++ b/main.py @@ -5,7 +5,7 @@ import gdpc.exceptions from world_maker.world_maker import * from world_maker.data_analysis import transpose_form_heightmap from world_maker.Skeleton import Skeleton, simplify_coordinates -from world_maker.terraforming import remove_trees +from world_maker.terraforming import remove_trees, smooth_terrain from networks.geometry.Point3D import Point3D from networks.roads_2.Road import Road from networks.legacy_roads import roads @@ -21,8 +21,10 @@ def main(): buildArea = editor.getBuildArea() origin = ((buildArea.begin).x, (buildArea.begin).z) - remove_trees('./world_maker/data/heightmap.png', - './world_maker/data/treemap.png', './world_maker/data/smooth_sobel_watermap.png') + # remove_trees('./world_maker/data/heightmap.png', './world_maker/data/treemap.png', + # './world_maker/data/smooth_sobel_watermap.png') + smooth_terrain('./world_maker/data/heightmap.png', + './world_maker/data/heightmap_smooth.png', './world_maker/data/smooth_sobel_watermap.png') # set_roads(skeleton_mountain, origin) # set_roads(skeleton_highway, origin) diff --git a/world_maker/data/building.png b/world_maker/data/building.png index 4d8c79af3e37343199836005db6b6cb33376579d..7160ed9082ce57912a4e74396c182bf9ebdc642a 100644 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^CqbBl2}rUnX#@%|dU?7yhE&XXd&iN_*@3|!P>Q`w z#5`|%*wktMi{HOhX*qgc#kehzfnkBkyPXx4dhE8xwpGsY-!0x=5%ZVf&a`bSGP=7! z#HlTI7RC3Dzm?n$6M+iXo+{jv|4;jvuGXzZi=f2rXPwV#_axqd3qYiR&PvF={(t+v zvJ>og?oIh`ku4Ci#nm+$8v*pen%K?eAA+mD3Egt45XGYun|7!eE6^CKfCKi`jJ|Jq U6SrzdvVjcrboFyt=akR{0A>b(3IG5A delta 132 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 S5!c%Q0000^R_8P zE8g7|?h|`|cBmm@$n~eBc|Dp1^a1^Fdd5$cK9O6!<(r%vi*2m7IBaUxOETBVO55!8 ztHpZtV+1{U^GN#Mn5&cd49qG2=_v#xr2E6WijmMmN012|!+JZQ_Bm}%wLZL@>|B_* z%3d%z6vtfH^a2Vb8~i_%Z$)nWlbsLG)W>*kQ5aPAsDs`Fz5ip1KuH8yGB_Q8wg&;i zENRjOl8u4(Vm<>r^Wg7T<&u01}nNnmt*PxOGXhkG1?%1zvl+ z1@1Lm@1Kx?5ZNq-A@>PF%VB@>1ik1Z)BzW4B1L3o5Z#O3Z@Y!*jP3a+A-vloFW1FM zH6B(?Mt4g%`>(GdT?=h%wwtjNgNyWBPLbb^{BVH1>$MnLL{SB?@}~A|)ZrmO-!{?l zrh;R&9L=ME8^-4Cjr=U$!CtWgRsWVC_yGIt)!ERfwH=nM=v`v}4k%%APIQz~e!HDh zR?_H}BoNZgjgfD#xS!#(FJdc+Pg^)(Mu1i^ukZjU(NHpr<4&i$%+ zpDdx-;^6y;CIl=h z`H^i9Zy#({!bh`{M#`Iwannu}=;;S-a$h2mD{75Nx%TKvouU6yoy}MF(@A~xWBK_H zNPP(=8;7;L;(38MZJ-Xx%412QQSe$4n2T3ZG=9ESHpDCL6fC^@7oDt=3f2)kNmO2j zauf0HM3VfhzGs)4Ejfz{_T=Y~Yi3V!=Xn?9b6#vhMP=JswTQXAOez!C)9np&+4r&I zX>`~~p=YDc=Da~Y8~p3lYmdGNEmhnh$J9IY40R4_Rd`>-&@R>m*;((vYuq?Z@ji!} z$Gfxm!cO4~RsT()gv|r}d(D+dKDz_5$NxGiTO#FwW{s&2gjZ4ro*v`Y=+1?nZ4<>} z)>cH2FT<0+;SAeLkFj4w;BKv}m}}Nbtk04>X0N@IlxodVprSB;%7u!)=Zb#V8x()d zH^gomBLh=Z)&(6{guOF1b;sSnr)b$1UoLCV>LvNZlpP!dN1Fe3xA>;1QCKPT zkA~3?H`3jD%d{s>ovPwx~QH?cZQ^Udb91YtO~Yd&ma^2xL?}G!|8@-U<|yeWtv4qZmhk#|>OWw&HIB_^$?fyxGuU(DPR5 z{|sd)NeFh#CMpA0xVE8~h|lPVt98Rd^Ob%E=c8S=a9{uGKG(Ue_7OK_vWc8@zC*tV ztVhx&lP^Ajnpnqt&j-uo85{vsxX(tCdpmD;`tkv9M}10KmbR8<7bj^Fb)r_?jp~ZT z((Jio{g0{K)bOJ~fxm~jWAb4Xu9bP3+3I9QHh1K%ukaU4K!FqY?v4Rxf!Z2AuxeM{ z43ydrRDxwFdI6xTWFdk`>B~Z?rJ(qgpd}P%*km6&|LfZ6NY)h(2ZcN&KttbYuyY31 zN_mZlwk=nsfET+s5BnwuAg_Zk-iy-h9Y}6CE*?NHOOu0)0oFptL}8lXf*uK;aYt|* zY9uRGGsUaa^MW!<)l8Q2Vl|WD4}-c&qo|MX;e}oL5^)MoZ z_o`Q|V6pS}9QR5MXeEEE3q*6nnCf)C(zel!XCBQwue^M@+fnlx!~owpAiZ>j_Lv3N zvNrBP-)&^Lp-juV%LqhmmRgWRzfi(1G-%_yD|pf4m-&Swf9v{ltJLqqbWuGtaa&36 j0kMS)mb{_$hw}5I-$nKo5AJ;VoqD;uAzjOyFC_m5JWd3` diff --git a/world_maker/data/heightmap.png b/world_maker/data/heightmap.png index b379956e44fa291e3e07f28151e382e5abaaeecd..b961768abcbc8ccea6302aea0e436519ee96fb10 100644 GIT binary patch literal 12839 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
  • l<%x7zMcxCNkMeQx}=3|ly zn84`9`nwuSkESR*j6By?Ay^a>_jnZ#9LzehHOyH3Q3~yaVCT}z5U5I4A6c--d1l2upj5&quWojZ zCKMoQ;B~atLT7V~sNAZ%l@}4Rct>8v0xQzEjOXePMS$cFjofg+6GV(

    Z_ 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 FV1lD5IK%(| literal 10250 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 QqyPW_07*qoM6N<$g8qmmJpcdz diff --git a/world_maker/data/heightmap_smooth.png b/world_maker/data/heightmap_smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..e366caa8452be770a28771b66402e0005777f542 GIT binary patch literal 6563 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 V%>$JO8iN1;002ovPDHLkV1kgSbxi;O literal 0 HcmV?d00001 diff --git a/world_maker/data/highwaymap.png b/world_maker/data/highwaymap.png index dc3fecf9c7e747fe0c6ce626bf3a0862c99bad1c..eda2e822e2c1d8e5be5891fb23c2855066012131 100644 GIT binary patch delta 621 zcmV-z0+Rj40fhySBYy%+Nklwr6EL)pZfU8~D4wH)RNF#>G%l_u_0}+KeeB7>= z2>@>WRjOze37J=60&b%`q6Pp?z&!x`5e{#Nh{zeD%ws^yX@5m7B?a8feBxV^FC(pY zU}%x7S5;#1nRWYA@4Fptpmv{1JN_@lI_^{rKM+ft*Z5_J0N|^_TRd3{K-5O^V*$MC zv6M};0IL*$ovZ}_r>iC%%{mfAD)Lfl$^zQz*W3pkjcjC=$myy{N7cku#1oq&swTFg zYGVFO2OW)R#D8VTp)~%|tD{B#A5EYSqjPDRFr!$C(Is$NH(j#?cZOB7}|C8|7!+YsIi z1?t1VeMF&F;|`H{i?SJjahd9n4nE3kv1T($#4?SG{eOJtTODz0CF;ra0)lo+qs`gu|jt?yYZK%G7dOkD@^n-QK3qr zd=Hr@S7tp!MgQ2nbjbZ>ZK~+DrNgt19{7U+QWqsc$-Y-M_F~>yM(%2k{`Bw8K7bj{9o@0ic#51$Id|&UF~XD`(67053|M2gSJPq00000NkvXX Hu0mjfXgM8a delta 171 zcmV;c095~l1;zo8BYyymNklR~*`*K@K&LZl%llefS>M=dAqBGyaf_Bq~nM%rga?;g!Lsf$<_*WGrwZ^0}R z^WsuF{@ChWi+@~B?2mCTiph5R*@^@4e4jW7u8Y)UOCGF2Y3$mXT|7u9W7n2_;+$(v zGO?>KzjEeb%)Xd(Cc%?RY?2qLDcY+O5bmZvZqag*5BOPe4xQ4R zoQ}L&CqXJAMwUrV>Tx*Che%=)MY(A&x+S`6bj%sDL+ z`8)5`?|-Z&Qa`6PR4Eqa^?%O&t}=3E*MryTz58_V_uK6MRM*Y|MfRC%i7bY2-Q=BB zu+>DQnv4fye}8<$U^xEn%p8iyesPn|C;fK<*jtFyt}JN4hlZpkU4gl=5J{>liA^mp zR|W@}IsPf21U=*A>IcZ}roL3Jar^Wr?bSaYZGVxBSCLD{=fd2cW^P3aYvD_;k6a!3 zRU(sk;doWqT#H22_4bu3rfAi*z}G4TWd#{T&ON>gh3_ZNuJK(}2dC9aHsIjALryGK zM*si-0000000000000000000000000000TxBLe^c0000000000007JL2Q8>+8#Du} R1`GfI002ovPDHLkV1hmEbRYl# delta 822 zcmV-61IhfU2FwPKBYy)ENklNON0<|N7^004?1*KD(s=*H#;2u{8k`=9L`TLIiLw1k1$b@hnR>6O#~Gg8*Ym2?EyP64w&N80L93-i zm}p^dummlX@_+h>-3wbuv6(%R!#M?7c!2|FQNMj3$sDhjE0Tl zhc4H3;M=a6;Vr&naoRob?Kx}~6aUz^)-OUDE^|c`{omX+iK<=KxV7hz-9cD8DW#y( zrJcpd+0$0-jWJ1LxZ@bA=Ww6cfH(6D|08AFCK)mgd zN;AjWseg!&6FJ44&C7dROfp4mM@8%cgX0~d_d!S|879i+F<yq=1OS!j{eSU+7XOBT5JCtcgb+dqA%qY@2qA3`ZrACz?VMlF`z}TUJOK^~i2_%N7 zV&FK8OejbU93yaoWUe`F_o@a_5ih(7K*?%JT-A7IA=*X-$uQsYgeg~g8$`8q)-c>3W!Fl% zLT@$x9VHh$s^zs-Yb2Rp#kT`GEHhlws0EaNqC1jJAXJ%;O<`?GiRf>n*Smp0FG#fm;#l5H4ev+bn4*6IW0T&24Lb>QvhP= zJ2e83TYI^sUY#!FyHRE{*LR#*3+%p8&rGSO`I42Y46pUBBviQUKh?r|E~3_`u>YF9 zuLqn_vvXsz6h(Pl8Y^q;bQp8Rra5aX)L0x}PQoXu_$Jd@vg;g%ULBQ$fj}S-2>dnQ XI=n&eD}`&a00000NkvXXu0mjfN8-Zt delta 1164 zcmV;71atew1D^?yBYy;DNkl5Zaj4C@_=@p^YXZ|0IHT8-sETn(^&a5mTCYRQN|45Owy^^ zs6%mh5Ebt-m(gz2QnZvNYFa=A>w0JWo=i~pIduMe zC+O)~Ss_Q8H-AOpxD*9(#-ZAKab({nmUICOqxdO~X5w^apg0pi3ZTq~l8ge-<@b`m zBr_C^M6`G{4pu;60E%(SIkyF!8o&ViB<$5MDh2HTTO$m;t)UZ>RO`{=?gXX#oxMLv z58YKU?Yrk?;3W1p@a_JiK_5KjB~y|AB@cmwl|7yset+L?F0eWsr<8NR{$5wjxGlY+ zn#fqzqQebqcqF3V$_r$)A=?W(I4#w%hr2pC&3g^Xd1+rY0Eyec?P9ZE*W!<_KLwyy zDLiccK3tcp_P*Q)Gtkfu2{Q|0y&?xA7GI};Ex1xxl7)jsrJ%_VWk|PZNe-5FdS&n0 zgEqV$G=It*D$ks=gV=Ojsu$87S(gh?PPK_Un9Ps!@H~+59^lHMyiFBmHMm#Pqv;)f zX`qxEm=%=g;T|5ym^MrrUXmN2uQmZ1$JIc_9L`H24>fS31r=0mG*CifuJU{mM(03R zr^3k{^6)c&b-kNauFKJx`w@Gbh0v=U(zSva$bVfHz(PP8SV9x6%ZulPLk}s|1V-a> z1T)Q0rrY5D)k~m;R+8a>l@iLEu7@aHR0cHxvvZ2ts+Rdgg?}i3(BF;@ZO{?H+=5lD z&7KKX!>*qOR@eoq#TG6^?&sveRzRA9Dh2YOtVNAOVLgOr1|KVERP>o@fqRbyk59j7VQI-itB+UygV25D;1lOjfP7uB!OaUPeVM({ z4=6*2*P*-8!cYee(Yyj+8EW?lu>K(=yWA*~Rfx7gUlL{^`mx_46LrY%LNI{zpdAX4 zs4&_fj3D&r(KkleUXOGsI#kX{{VQnt`+rJS2teYRsKWL%ifmX>b`G0^x1u8}VR|>z zSrNl(HZLNv)Y-hKuZywVP2eLDQ3{8D7>St+x4B<(DH)89Qpm$-6g0m6hi`#^FGKIk zRwvxzO-x3`6&W=^8s>)v{%YYo?9DF_55uE$veh*RuPBccVaMkEnK{xGpmz!1%6|@9 zlKQEDlwnO;eIi@kjmS_IE5D}gCYwNmhB}Eb|Zu)B3W9l5OO}tRa6* zU&S0IP0&R7QM8E&G#9@cM6H%WUU(#l8_;PS-HE+^rik#a4Wo57Tm%S;uzf*P1$-FCKlQX-! zwyntM?)s{0R?ybtY_NUXU%h*O-n>?OCMKF2c##nCdwX8i>$>&gGonM*6|B3p@Y>vc z=M3tLTb(bX>fCu~*Pk=OC#PG6+cxfWbp@&RePXI#6SnQ8_ZbXNT-*LG`)RUL^(;#h zWH(seNju6p=kUKm&4W@b?aNTL6&<%VtL{^<4*zRY4Dr(`*8BN$U&x-^Ix{+C3&>6= z@w6#h!1>1aJ@dg1i4pF9cXIXTIo&(bU&b9@dH)+ML_ooE>WwLf^!InkS<%|%SA_Gn z`PbV2_x!v1g{7IytkRzoV?N5Gn7!m}GS64NKa7z3cB5zGKgS)$DF%~}%?CyHTEl;}ZEtyQ zDx8(dD1x*B=$_~zJyW3*3yjS z`%dgq3&Kc3QxBfsY`yh(t5^NwJp0$5?q9x8x2_WwH{e)G{WkYo^>7!DIjc literal 960 zcmeAS@N?(olHy`uVBq!ia0vp^CqbBl2}rUnX#@%|w|lxchE&XXd-rzUWd{+5z@A_K z_s7U-DY|gZJaTX5#?9B1rvxm#`}lUnjXItmfByV=zCQo9*{9>X{on1|c)jM|*1vQ9 z@)ktiTC_-43rcLdyX(v|)^)Y|hwmVXg5`}WHM>pC#J?53Hop^`s(#!BrUxi%zFs)L z@aI{D;_j|(D>85sr;aav{pfw&-d3R+!|f|>D8H0U`^-_?ed_RQzx#7KP0v9sE&BW> zv0!#@`R+3%`#^%5zFQSOKmYMjwaUi!ovyCYAzKI&dz{l66OSVM;*r%v^}BobnQcdM zq0DCX9q#!x>3M+{#ik~|n=7}k`oTH=KcD-pwA2vDHGVh<; zUq08`6liuX&^9nJHThdv^LwD;)pzdy%Duf!e1ECMYt`eY_s3*{Tm)1T`L3qhUAFq^ zzW)`D}7rVK?@jf}?XTN>dZg*?@ zo0qi^32Mzg^{2P(UhHK63(fiW?^gnGY+V{u) l-4J&G_9u~9kAXRp!PC{xWt~$(69D83>^%Sg diff --git a/world_maker/data/skeleton_highway.png b/world_maker/data/skeleton_highway.png index 9ac6485dd7c8229e1e9e98b9473149467b952b7f..a486dcdfb5e79d39a990b55cebc6f8e21cedc7ce 100644 GIT binary patch literal 13474 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 Qm;e9(07*qoM6N<$g6OnK3;+NC literal 9971 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 diff --git a/world_maker/data/skeleton_highway_area.png b/world_maker/data/skeleton_highway_area.png index 6a9ecf973ca4cc0f1aa8154bbc4f057ba9585e59..4ca5c47cbee2db15ebdb9dafbe12c2c53bb1b794 100644 GIT binary patch delta 725 zcmV;`0xJEC0_+8lBYy(3Nkl;043bm0^b&YMAEK58|C6be4R9b>2gVGW<8IzW{$rKlb$$tzNjmZR;$eYm_ED2Rk zj^k)fjKAI$3#e!Jz?QT9H)c%>&DlONM6GI}x!R0|xOELQLu~WyeE$DQqKYZB;L(() zVtNV-ijnu6w!KfzS3>_v;7)vS|Yf5%VFi>J0SQ^i&98krVn4RWB0w=O&{E&f{l zG?h?!JP+iw6Mqm5?5K<-5fALEBkNH_Hn>cw3$Gc_Wg&~b<1(bp_?EXWxzBBF^e36@ z_m4XM(k1;xD($&DI%_d%lT}jk1?47f6qyuUb83^mK5nkAdDNIxJetYLJW5PT-uvWa z9+=DnlX+k=4@~BP$viNbM~O*EHw8JdQIQmKVx%A`^37n(HB#@3m1Pb-(1bc^U_`itWD5t;OhsMe8? zM2R6WiGPWRYLSvvN(3?Dq|XUD-|eHS*oWh6w%YSMT#{#;y@bEpSJ%`EMl$xJWUgTl z3+3q$%32{Kb7p33Uw3GAxaWTtciIO`W{Ct$hKcwO_$<;e9F)_W+A*%>HF-=)%K%+Q zPI^Wf6HJ#Z36T26yBC!e_<?9smFU000000000000000000000H4b*oH}C4j_Sj%00000NkvXX Hu0mjfzopr0QJ*k+W-In diff --git a/world_maker/data/skeleton_mountain.png b/world_maker/data/skeleton_mountain.png index 44968bb3c3955e49dbbf92554fc7108528d0fce3..8b2fae1bb1197ae274d841c059c36645ea4d08c4 100644 GIT binary patch literal 14128 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 diff --git a/world_maker/data/skeleton_mountain_area.png b/world_maker/data/skeleton_mountain_area.png index 7010d14cae3064dbf8a18321ee36b1845dc16fa5..dd64749a2ecf36332e825d808213c8658c4c5932 100644 GIT binary patch delta 1106 zcmV-Y1g-mb=LnD^e*`W`L_t(|ob8?4wyPivMd6J7|G(^cs8;SIC}D+Wz3e@##Y}UN zqM&molgVTwzI%)`fBK4;dC~)MzV^X%v5wm1 zSSgNApg|ZGMahf@LN^K9A&wqh@E}C1@HvP+(Evg*Oa%wUCrUv2wgn)_9DSdt0byL@ z!9mEqdUOu5Pw+t=j1r;ANbqDNcrp?^83~?@1W!hSCnLd=k>Kg)NDk1Oi-CGS(3^J^ zp~Qmbe$GeqJrnJ@cNim$(J(<$h!1G;*7_RM;%O#+uCu)#jm#R#J+NHxK1QI16Kk=JU zS(^NUPjr=FS0~XHTm9%#6vkGWL?uXxL?=jr`gk3sm=b}g6W>nC*3L52W`JKDn%FOIq#`Jq7!6jgc}nzsKV6}>{U!V+h-72+W1~=fqN9Fso*u*&Els2=5+D?>b;+3dJhvJQMOp&)wF7UQf!ax!qd}r#qjcG1DjcY&^gck?b@*yv8oOM0+HCG6F(Bt%4+65N2%1kuX8nF)l_@m=RfL8%b61+7%e-YbZlC zr%=156t8C6ue|J4$S3V2`Of@&at=$=e;42PiNw4}37<4Oey>Sjttc4~fss3@k%5S0 zX3?6|{H@7(BDg}p+|}VEmpYi~6WO<$7gxG@<*?FAPfV*_;%jKM*Ml6F{9+*G=o%XG zEDUZ8H8rU8Fbou$vjn8#|OAl06(elF{r5}E*G@D=(1 diff --git a/world_maker/data/smooth_sobel_watermap.png b/world_maker/data/smooth_sobel_watermap.png index 64c79e6f11969256a60c27df17abb1fe545283bb..df4efa0a328a530ed497849743d93dd50878f29b 100644 GIT binary patch delta 1551 zcmV+q2Jrd65T6W?BYy?vNkl*Ou!b3`OCt`Tt+$J~)LYRFH(6<@1na5*xG; zy?9c3^ym?${QX!wV=Y7UkXp0g8}jUOV-d{nR0#Lw>Pjc^K}h;%6YRbUH+BC^%-B{* zDHWdgV)~>sZ#4a5-{GJ#d>}|ScV%w$Q&j;JN(Q?wQY6Wr_kTSW;oWK^^wRmZ6u6@W zAvqN@P=aF&uQh!_$t{#$jdPvO0?t+FTVJj*Le^d~ags+DrlCGTi3nZ6*hh#QB$tm7K z1TM%YMvH+q$|+4ra`k#l{5%1dlUsQu%}Da_;T~GmUHMilL*12Uf83!a>wPkJ!`wTj zK4T|dN5Zr%Qub>}(49Jg)y#b^&2=v;^4Zk*$-dM#cYk3Z?x4&}@b<~g9g;pip)Y$o ziszKeCo3Zh@_Q7aBdzjz3C@F&NcN0rNwCfc-_q_G3+=eBj?s08B`1WXE75ntiN|24`x10mX>>bb5or6ws?A0gZ-S_0s+#8C=vkH2@ ze(y^BA%BNxv{Qd6eYY3ipmznU@`))26u4fmL2WmdJa#3W-1$7^5D)Cm@8NEZe+}&N z@B=C^cR4I zKD-=^O<1qW$@w7)Rc||i+|_TBKa91A{__*HJ%5Snp|4%1OFU78gtQ>BSbqdis;_V2 z6M|PPNNf&oV1eGoCv#Q#*tsuk_=p5olC7EmyV)~$+4isfe8S-%ck`-?yhyhFfd+7* z?y~9m93a6#$PTQ766UUr@e1)acIZr!i(n_yOS2X_oad0_=8YxRS$>(r>E%SFhpSxJ zYk!j#vqYu)TOmd=2=&71*&9=m&)(FrjGxBm}Qsy+$DccK&6j zlm6->cPJ>Ia-v#o0f7lgc%~`Wzw_YC%YTVmSKyX2cU|gSMN#CFAYHCj5}$+wk&pxc znVG=OT>&`eVv|b?0)@3U5#D;SuT?(}=2yNq`-bdWmpq0}_$rmEv%TKkkwq z1TpA$+W5F6yu(2IBxX-p!j6pY&38G9bM|#(uAUabj!=*>E5v-x9UAxKf{?jO0uqvB zW@lbqz?da+)!ZW)yC5D3l(jN)L4Q0FP_NECL>jpV*=t=9EPQgN8WzWDox5C~^I1|t zo;Ioy4KEaVoJ*hVqd4Z!b?#Ds28#L(Umo^UOg_xKE(7sja#POz=TdHSugOn=(=!Qx!K zT8TljV@S@H4#_DoPdDu}E_x@5RH_n#qcFV4^QY3Szi0box5?j9soT?;m?i$))X}1t zUB7Vau9LH1fTZ)nILaZ|$TJeWLdhq=l3edFll^FOnO3v_3vwm>pRF?^p4hPy9(YFb z^|Q#Rol%-FxPhb2NHPj))PImQvd|ERh$Rkk!a~kjCiS#DP}!K)3}h?R!Vkg@#JNE> z1o3U-EkRsKOhG(JY(X5$3A-c3loyGyL(D_}$l4*v@dUGZlDUw0fVhyjfOwGjfH;si zf!LFHftV}UaZb4$IbwKTBMU~JxqI~J(IZIz0ZyI|_JyxxH2?qr00>D%PDHLkV1foU B1Q7rL delta 2099 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 ByHo%G literal 0 HcmV?d00001 diff --git a/world_maker/data/sobelmap.png b/world_maker/data/sobelmap.png index 4020e726baf9a8c07555a23bcf12f5329206689f..2147614737ca05b393cfb23322f346bf5b11fc3f 100644 GIT binary patch literal 15324 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 diff --git a/world_maker/data/treemap.png b/world_maker/data/treemap.png index 474d6350af6ab3c295b4c3370929f67c432fa703..a721eb6434aae4de5929a2c92d51cae49d8b96a9 100644 GIT binary patch literal 7753 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 literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^CqbA4NHDBf>vjn8#|OAl06(elF{r5}E*G@D=(1 diff --git a/world_maker/data_analysis.py b/world_maker/data_analysis.py index 361d654..a04fa60 100644 --- a/world_maker/data_analysis.py +++ b/world_maker/data_analysis.py @@ -105,7 +105,7 @@ def filter_sobel(image: Union[str, Image]) -> Image: return image -def filter_smooth(image: Union[str, Image], radius: int = 3): +def filter_smooth_theshold(image: Union[str, Image], radius: int = 3): """ :param image: white and black image representing the derivative of the terrain (sobel), where black is flat and white is very steep. :param radius: Radius of the Gaussian blur. @@ -135,6 +135,14 @@ def filter_smooth(image: Union[str, Image], radius: int = 3): return Image.fromarray(bool_array) +def filter_smooth(image: Union[str, Image], radius: int = 3): + + image = handle_import_image(image) + image = image.convert('L') + image = image.filter(ImageFilter.GaussianBlur(radius)) + return image + + def subtract_map(image: Union[str, Image], substractImage: Union[str, Image]) -> Image: image = handle_import_image(image) substractImage = handle_import_image(substractImage).convert('L') @@ -163,7 +171,7 @@ def group_map(image1: Union[str, Image], image2: Union[str, Image]) -> Image: def filter_smooth_array(array: np.ndarray, radius: int = 3) -> np.ndarray: image = Image.fromarray(array) - smooth_image = filter_smooth(image, radius) + smooth_image = filter_smooth_theshold(image, radius) array = np.array(smooth_image) return array @@ -182,7 +190,7 @@ def filter_remove_details(image: Union[str, Image], n: int = 20) -> Image: def highway_map() -> Image: print("[Data Analysis] Generating highway map...") - smooth_sobel = filter_smooth("./world_maker/data/sobelmap.png", 1) + smooth_sobel = filter_smooth_theshold("./world_maker/data/sobelmap.png", 1) negative_smooth_sobel = filter_negative(smooth_sobel) negative_smooth_sobel_water = subtract_map( negative_smooth_sobel, './world_maker/data/watermap.png') @@ -247,7 +255,7 @@ def smooth_sobel_water() -> Image: watermap = filter_negative( filter_remove_details(filter_negative(watermap), 5)) sobel = handle_import_image("./world_maker/data/sobelmap.png") - sobel = filter_remove_details(filter_smooth(sobel, 1), 2) + sobel = filter_remove_details(filter_smooth_theshold(sobel, 1), 2) group = group_map(watermap, sobel) group = filter_negative(group) group.save('./world_maker/data/smooth_sobel_watermap.png') diff --git a/world_maker/terraforming.py b/world_maker/terraforming.py index 28455b2..73b047e 100644 --- a/world_maker/terraforming.py +++ b/world_maker/terraforming.py @@ -1,14 +1,14 @@ from typing import Union import numpy as np -from gdpc import Editor, Block, geometry +from gdpc import Editor, Block, geometry, lookup from PIL import Image from skimage import morphology from world_maker.data_analysis import handle_import_image -def remove_trees(heightmap: Union[str, Image], treesmap: Union[str, Image], mask: Union[str, Image], ): +def remove_trees(heightmap: Union[str, Image], treesmap: Union[str, Image], mask: Union[str, Image]): editor = Editor(buffering=True) build_area = editor.getBuildArea() @@ -29,7 +29,7 @@ def remove_trees(heightmap: Union[str, Image], treesmap: Union[str, Image], mask for x in range(0, distance[0]): for z in range(0, distance[1]): - if mask.getpixel((x, z)) == 255 and treesmap.getpixel((x, z)) > 0 and (x, z) not in removed: + if mask.getpixel((x, z)) != 0 and treesmap.getpixel((x, z)) > 0 and (x, z) not in removed: treeArea = morphology.flood(treesmap, (z, x), tolerance=1) blend = Image.blend(Image.fromarray(treeArea).convert( @@ -52,3 +52,48 @@ def remove_trees(heightmap: Union[str, Image], treesmap: Union[str, Image], mask y_top = removed_treesmap.getpixel((x, z)) geometry.placeLine( editor, (start[0] + x, y+1, start[1] + z), (start[0] + x, y_top, start[1] + z), Block('air')) + + +def smooth_terrain(heightmap: Union[str, Image], heightmap_smooth: Union[str, Image], mask: Union[str, Image]): + + editor = Editor() + build_area = editor.getBuildArea() + build_rectangle = build_area.toRect() + + start = build_rectangle.begin + + distance = (max(build_rectangle.end[0], build_rectangle.begin[0]) - min(build_rectangle.end[0], build_rectangle.begin[0]), max( + build_rectangle.end[1], build_rectangle.begin[1]) - min(build_rectangle.end[1], build_rectangle.begin[1])) + + heightmap = handle_import_image(heightmap).convert('L') + heightmap_smooth = handle_import_image(heightmap_smooth).convert('L') + mask = handle_import_image(mask).convert('L') + + smooth_terrain_delta = Image.new("RGB", distance, 0) + + slice = editor.loadWorldSlice(build_rectangle) + smoothable_blocks = lookup.OVERWORLD_SOILS | lookup.OVERWORLD_STONES | lookup.SNOWS + + for x in range(0, distance[0]): + for z in range(0, distance[1]): + + if mask.getpixel((x, z)) != 0: + y = heightmap.getpixel((x, z)) + y_smooth = heightmap_smooth.getpixel((x, z)) + delta = y - y_smooth + smooth_terrain_delta.putpixel((x, z), delta) + + if delta != 0: + block = slice.getBlock((x, y, z)) + if block.id in smoothable_blocks: + if delta > 0: + geometry.placeLine( + editor, (start[0] + x, y, start[1] + z), (start[0] + x, y_smooth, start[1] + z), Block('air')) + editor.placeBlock( + (start[0] + x, y_smooth, start[1] + z), block) + + else: + geometry.placeLine( + editor, (start[0] + x, y, start[1] + z), (start[0] + x, y_smooth, start[1] + z), block) + + smooth_terrain_delta.save('./world_maker/data/smooth_terrain_delta.png') diff --git a/world_maker/world_maker.py b/world_maker/world_maker.py index a007e62..5ac439a 100644 --- a/world_maker/world_maker.py +++ b/world_maker/world_maker.py @@ -1,7 +1,7 @@ from world_maker.World import World from PIL import Image from world_maker.data_analysis import (get_data, filter_negative, rectangle_2D_to_3D, skeleton_mountain_map, highway_map, filter_sobel, skeleton_highway_map, - smooth_sobel_water, subtract_map, detect_mountain) + smooth_sobel_water, subtract_map, detect_mountain, filter_smooth) from world_maker.City import City from world_maker.Position import Position from random import randint @@ -11,8 +11,13 @@ from world_maker.pack_rectangle import generate_building def world_maker(): world = World() heightmap, watermap, treemap = get_data(world) + + filter_smooth( + './world_maker/data/heightmap.png', 4).save('./world_maker/data/heightmap_smooth.png') + filter_sobel( "./world_maker/data/heightmap.png").save('./world_maker/data/sobelmap.png') + smooth_sobel_water_map = smooth_sobel_water() skeleton_highway = skeleton_highway_map(highway_map()) city = City()