Jump to content

RWGmixer experimentation: circle-shaped maps


Annihlator

Recommended Posts

Greetings everyone,

 

The past few days I've been mucking about trying to build towards a modlet that allows us to use RWG to generate maps in 4k,8k and 16k sizes with round borders having a general pattern going from snow through forest, burnt forest, desert and wasteland.

 

In the past I'd used other peoples RWGmixer settings but hadn't been able to get those older setups to work again.

 

In the current state it is not by any means perfect and the generations uses much more layers then should be necessary, I'm just still at the point where I find this an easier setup to tweak.

 

The codeblock below can be pasted in any rwgmixer.xml file in any modlet if you want to try it for yourself, any feedback is well-appreciated! currently I'm readjusting the FRMF layers in order to increase randomisation a fair bit (still slightly too static for my liking) and after that will move on to 8K and 16K sizes (as the worldgen time increases a fair bit ;) )

 

codeblock to assign bandedSmall generator to small worldsize:

<set xpath="/rwgmixer/rulesets/ruleset[@name='vanillaSmall']/@biome_generator">bandedSmall</set>

 

 

codeblock of bandedSmall biomegenerator:

<append xpath="/rwgmixer/biome_generators">
	<biome_generator name="bandedSmall">
		<module name="bands" type="Cylinders">
		<property name="frequency" value="0.000185"/>
		</module>
		<module name="invertbands" type="InvertOutput">
			<property name="sourceModule" value="bands"/>
		</module>
		<module name="rotate" type="RotateInput">
			<property name="sourceModule" value="invertbands"/>
			<property name="xAngle" value="0"/>
			<property name="zAngle" value="1"/>
		</module>
		<module name="trans" type="TranslateInput">
			<property name="sourceModule" value="rotate"/>
			<property name="x" value="-2048"/>
			<property name="y" value="0"/>
			<property name="z" value="-2816"/>
		</module>
		<module name="landNoiseBias" type="ScaleBiasOutput">
			<property name="sourceModule" value="trans"/>
			<property name="scale" value="0.65"/>
			<property name="bias" value="0.575"/>
		</module>
		<module name="landNoiseCurve" type="CurveOutput">
			<property name="sourceModule" value="landNoiseBias"/>
			<property name="source_module1" value="landNoiseBias"/>
			<property name="controlPoints" value="0,0.15;0.25,0.4;0.4,0.6;0.7,0.6;1.0,0.9"/>
		</module>
		<module name="landNoiseClamp" type="ClampOutput">
			<property name="sourceModule" value="landNoiseCurve"/>
			<property name="bounds" value="0.0, 0.74"/>
		</module>

		<module name="landNoiseDither" type="FastTurbulence">
			<property name="sourceModule" value="landNoiseClamp"/>
			<property name="frequency" value="0.001"/>
			<property name="power" value="50"/>
			<property name="roughness" value="2"/>
		</module>

		<module name="NoiseFRMF" type="FastRidgedMultifractal" seed_additive="2" no_seed="false">
			<property name="frequency" value="0.0015"/>
		</module>
		<module name="FRMFScale" type="ScaleOutput">
			<property name="sourceModule" value="NoiseFRMF"/>
			<property name="scale" value="0.35"/>
		</module>
		<module name="landBlendFactor" type="Constant">
			<property name="constant" value="-0.5"/>
		</module>
		<module name="landNoiseBlend" type="Blend">
			<property name="sourceModule1" value="landNoiseDither"/>
			<property name="sourceModule2" value="FRMFScale"/>
			<property name="controlModule" value="landBlendFactor"/>
		</module>

		<module name="NoiseFRMF2" type="FastRidgedMultifractal" seed_additive="8" no_seed="false">
			<property name="frequency" value="0.002"/>
		</module>
		<module name="FRMFScale2" type="ScaleOutput">
			<property name="sourceModule" value="NoiseFRMF2"/>
			<property name="scale" value="0.10"/>
		</module>
		<module name="landBlendFactor2" type="Constant">
			<property name="constant" value="-0.75"/>
		</module>
		<module name="landNoiseBlend2" type="Blend">
			<property name="sourceModule1" value="landNoiseBlend"/>
			<property name="sourceModule2" value="FRMFScale2"/>
			<property name="controlModule" value="landBlendFactor2"/>
		</module>

		<module name="bands2" type="Cylinders">
		<property name="frequency" value="0.000225"/>
		</module>
		<module name="invertbands2" type="InvertOutput">
			<property name="sourceModule" value="bands2"/>
		</module>
		<module name="trans2" type="TranslateInput">
			<property name="sourceModule" value="invertbands2"/>
			<property name="x" value="-2048"/>
			<property name="y" value="0"/>
			<property name="z" value="-2048"/>
		</module>
		<module name="landNoiseBias2" type="ScaleBiasOutput">
			<property name="sourceModule" value="trans2"/>
			<property name="scale" value="0.525"/>
			<property name="bias" value="0.45"/>
		</module>

		<module name="borderSelect" type="Select">
			<property name="sourceModule1" value="landNoiseBlend2"/>
			<property name="sourceModule2" value="landNoiseBias2"/>
			<property name="controlModule" value="landNoiseBias2"/>
			<property name="bounds" value="0.675, 1000"/>
			<property name="edgeFalloff" value="0.125"/>
		</module>

		<module name="val_wasteland" type="Constant">
			<property name="constant" value="1.1"/>
		</module>
		<module name="wastelandborderSelect" type="Select">
			<property name="sourceModule1" value="borderSelect"/>
			<property name="sourceModule2" value="val_wasteland"/>
			<property name="controlModule" value="landNoiseBias2"/>
			<property name="bounds" value="0.875, 1000"/>
			<property name="edgeFalloff" value="0.15"/>
		</module>

		<module name="biomeDither" type="FastTurbulence">
			<property name="sourceModule" value="wastelandborderSelect"/>
			<property name="frequency" value="0.2"/>
			<property name="power" value="10"/>
			<property name="roughness" value="3"/>
		</module>
		<module name="biomeJiggle" type="FastTurbulence">
			<property name="sourceModule" value="biomeDither"/>
			<property name="frequency" value="0.01"/>
			<property name="power" value="75"/>
			<property name="roughness" value="2"/>
		</module>

		<module name="clampOutput" type="ClampOutput">
			<property name="sourceModule" value="biomeJiggle"/>
			<property name="bounds" value="0,1"/>
		</module>

		<module name="biomeOutput" type="BiomeIDMapper">
			<property name="sourceModule" value="biomeJiggle"/>
			<property name="biomemap0.Name" value="pine_forest"/>
			<property name="biomemap0.Range" value="0.2,0.5"/>
			<property name="biomemap1.Name" value="snow"/>
			<property name="biomemap1.Range" value="0,0.2"/>
			<property name="biomemap2.Name" value="wasteland"/>
			<property name="biomemap2.Range" value="1.0,1000"/>
			<property name="biomemap3.Name" value="burnt_forest"/>
			<property name="biomemap3.Range" value="0.5,0.75"/>
			<property name="biomemap4.Name" value="desert"/>
			<property name="biomemap4.Range" value="0.75,1.0"/>
		</module>
		<output module="biomeOutput"/>
	</biome_generator>
</append>

 

Example:

4k.jpg.824ba1a3840a1904a8ff13a969c75bb6.jpg

1577789345_4k1.jpg.9a2a155e2c9430db4a2c9059de60af0f.jpg

Link to comment
Share on other sites

Past few days I've been busy whenever I had time to do so and in my opinion have made good progress.

 

I've just finished generating "Gozeva mountains" (67d27f69osiesol7wbk) on 16384 and love the result!

gozevapreview.jpg.c8e27a1c603bd6cfa9c0dfdb262872bd.jpg

 

Ive used the following block in rwgmixer.xml to attain the biome map;

 

       <!-- ========================================================== -->
<!-- Biome Generator selection 									-->
<!-- ========================================================== -->

<set xpath="/rwgmixer/rulesets/ruleset[@name='vanillaMedium']/@biome_generator">banded</set>
<!-- <set xpath="/rwgmixer/rulesets/ruleset[@name='vanillaLarge']/@biome_generator">banded</set> --> <!-- Sadly, broken... 16384 RWG uses 8192 preset in B9-->

<!-- ========================================================== -->
<!-- Biome Generators											-->
<!-- ========================================================== -->

<append xpath="/rwgmixer/biome_generators">
	<!--Biome Generator: bandedLarge-->
	<biome_generator name="banded">
		<!-- Inner circles-->
		<module name="bands" type="Cylinders">
		<property name="frequency" value="0.00005"/>
		</module>
		<module name="invertbands" type="InvertOutput">
			<property name="sourceModule" value="bands"/>
		</module>
		<module name="rotate" type="RotateInput">
			<property name="sourceModule" value="invertbands"/>
			<property name="xAngle" value="0"/>
			<property name="zAngle" value="1"/>
		</module>
		<module name="trans" type="TranslateInput">
			<property name="sourceModule" value="rotate"/>
			<property name="x" value="-8192"/>
			<property name="y" value="0"/>
			<property name="z" value="-11264"/>
		</module>
		<module name="landNoiseBias" type="ScaleBiasOutput">
			<property name="sourceModule" value="trans"/>
			<property name="scale" value="0.7"/>
			<property name="bias" value="0.6"/>
		</module>
		<module name="landNoiseCurve" type="CurveOutput">
			<property name="sourceModule" value="landNoiseBias"/>
			<property name="source_module1" value="landNoiseBias"/>
			<property name="controlPoints" value="-0.5,-0.5;0.0,0.2;0.25,0.4;0.4,0.5;0.7,0.6;1.0,0.85"/>
		</module>
		<module name="landNoiseClamp" type="ClampOutput">
			<property name="sourceModule" value="landNoiseCurve"/>
			<property name="bounds" value="0.1, 0.775"/>
		</module>
		<module name="landNoiseDither" type="FastTurbulence">
			<property name="sourceModule" value="landNoiseClamp"/>
			<property name="frequency" value="0.001"/>
			<property name="power" value="60"/>
			<property name="roughness" value="2"/>
		</module>

		<!-- Randomnisation-->
		<module name="NoiseFRMF" type="FastRidgedMultifractal" seed_additive="2" no_seed="false">
			<property name="frequency" value="0.001"/>
		</module>
		<module name="FRMFScale" type="ScaleBiasOutput">
			<property name="sourceModule" value="NoiseFRMF"/>
			<property name="scale" value="0.75"/>
			<property name="bias" value="0.25"/>
		</module>
		<module name="FRMFCurve" type="CurveOutput">
			<property name="sourceModule" value="FRMFScale"/>
			<property name="source_module1" value="FRMFScale"/>
			<property name="controlPoints" value="-0.25,-0.25;0.0,0.0;0.15,0.25;0.5,0.5;0.65,0.75;1.0,1.0"/>
		</module>
		<module name="landBlendFactor" type="Constant">
			<property name="constant" value="-0.6"/>
		</module>
		<module name="landNoiseBlend" type="Blend">
			<property name="sourceModule1" value="landNoiseDither"/>
			<property name="sourceModule2" value="FRMFCurve"/>
			<property name="controlModule" value="landBlendFactor"/>
		</module>

		<!-- More randomnisation -->
		<module name="NoiseFRMF2" type="FastRidgedMultifractal" seed_additive="8" no_seed="false">
			<property name="frequency" value="0.0002"/>
		</module>
		<module name="FRMFScale2" type="ScaleBiasOutput">
			<property name="sourceModule" value="NoiseFRMF2"/>
			<property name="scale" value="0.75"/>
			<property name="bias" value="0.0"/>
		</module>
		<module name="FRMF2Curve" type="CurveOutput">
			<property name="sourceModule" value="FRMFScale2"/>
			<property name="source_module1" value="FRMFScale2"/>
			<property name="controlPoints" value="-0.25,-0.5;0.0,0.0;0.2,0.4;0.5,0.4;0.6,0.75;1.0,1.35"/>
		</module>
		<module name="landBlendFactor2" type="Constant">
			<property name="constant" value="-0.6"/>
		</module>
		<module name="landNoiseBlend2" type="Blend">
			<property name="sourceModule1" value="landNoiseBlend"/>
			<property name="sourceModule2" value="FRMF2Curve"/>
			<property name="controlModule" value="landBlendFactor2"/>
		</module>

		<!-- Outer circles -->
		<module name="bands2" type="Cylinders">
			<property name="frequency" value="0.000055"/>
		</module>
		<module name="invertbands2" type="InvertOutput">
			<property name="sourceModule" value="bands2"/>
		</module>
		<module name="trans2" type="TranslateInput">
			<property name="sourceModule" value="invertbands2"/>
			<property name="x" value="-8192"/>
			<property name="y" value="0"/>
			<property name="z" value="-8192"/>
		</module>
		<module name="landNoiseBias2" type="ScaleBiasOutput">
			<property name="sourceModule" value="trans2"/>
			<property name="scale" value="0.55"/>
			<property name="bias" value="0.5"/>
		</module>

		<module name="borderSelect" type="Select">
			<property name="sourceModule1" value="landNoiseBlend2"/>
			<property name="sourceModule2" value="landNoiseBias2"/>
			<property name="controlModule" value="landNoiseBias2"/>
			<property name="bounds" value="0.65, 1000"/>
			<property name="edgeFalloff" value="0.15"/>
		</module>

		<module name="val_wasteland" type="Constant">
			<property name="constant" value="1.1"/>
		</module>
		<module name="wastelandborderSelect" type="Select">
			<property name="sourceModule1" value="borderSelect"/>
			<property name="sourceModule2" value="val_wasteland"/>
			<property name="controlModule" value="landNoiseBias2"/>
			<property name="bounds" value="0.85, 1000"/>
			<property name="edgeFalloff" value="0.175"/>
		</module>

		<!-- Dither / Jiggle and Clamp -->
		<module name="biomeDither" type="FastTurbulence">
			<property name="sourceModule" value="wastelandborderSelect"/>
			<property name="frequency" value="0.2"/>
			<property name="power" value="20"/>
			<property name="roughness" value="3"/>
		</module>
		<module name="biomeJiggle" type="FastTurbulence">
			<property name="sourceModule" value="biomeDither"/>
			<property name="frequency" value="0.01"/>
			<property name="power" value="100"/>
			<property name="roughness" value="2"/>
		</module>

		<module name="clampOutput" type="ClampOutput">
			<property name="sourceModule" value="biomeJiggle"/>
			<property name="bounds" value="0,1"/>
		</module>

		<!-- BiomeMapper -->
		<module name="biomeOutput" type="BiomeIDMapper">
			<property name="sourceModule" value="clampOutput"/>
			<property name="biomemap0.Name" value="pine_forest"/>
			<property name="biomemap0.Range" value="0.2,0.5"/>
			<property name="biomemap1.Name" value="snow"/>
			<property name="biomemap1.Range" value="0,0.2"/>
			<property name="biomemap2.Name" value="wasteland"/>
			<property name="biomemap2.Range" value="0.75,1.0"/>
			<property name="biomemap3.Name" value="burnt_forest"/>
			<property name="biomemap3.Range" value="0.5,0.75"/>
			<property name="biomemap4.Name" value="desert"/>
			<property name="biomemap4.Range" value="1.0,1000"/>
		</module>
		<output module="biomeOutput"/>
	</biome_generator>
</append>

 

I've tried to comment most pieces and mostly haven't been able to test properly wether the hub rule changes actually do much. Most of the blocks have been pieces that other people had posted in the past and simply didn't throw errors when used in the current state, some things i'd tried to cobble together myself did (I clearly don't really understand the L-system).

All-in-all I do like the end result of the world that just had been output, so wanted to pass this along to here if anyone wants to experiment with it, too.

 

I'm also experimenting with the following blocks of code though can't say for certain they all work as i'd expect, I still have a lot more of testing (and mainly waiting :p ) to do for that, though I'll post that along, just in case there would prove to be differences.

 

Edit; as the second block would make this post too long I've alternatively uploaded my current rwgmixer.xml as-a whole; https://pastebin.com/and8Fc2A

 

Note; A minor caveat is that in the current state 16384 RWG uses the 8192 preset; I haven't thought of a trick to make the code compatible to both 8192 and 16384 currently.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...