The White Guardian

A beginner's guide to Kopernicus - PQSMods

Recommended Posts

PQSMods are what make the difference between a flat ball and a true planet. This guide will be updated frequently to include more PQSMods and their functions. Images will also be added to show what effects certain PQSMods can have on a planet.

Also, remember that you can use 'order' to make Kopernicus load the specified PQSMods in a specific order. The lower the number, the earlier the mod will be loaded. This way you can stack them on top of each other in a specific... well... order.

VertexHeightMap

VertexHeightMap uses a specified heightmap to elevate or lower the terrain.

Example code:

VertexHeightMap
{
	map = [Filepath to your planet's heightmap]
	deformity = [number here]
	scaleDeformityByRadius = [true or false]
	enabled = true
	order = [number here]
}

deformity: Make this number higher or lower to increase or decrease the heightmap's effect.

scaleDeformityByRadius: Set to 'true' if the planet's radius should be taken into account when applying the deformity.

 

VertexColorMap

VertexColorMap pastes the texture specified onto the planet's surface, usable for if you made the textures before you made the planet.

Example code:

VertexColorMap
{
	map = [filepath]
	enabled = true
	order = [number here]
}

 

HeightColorMap

Colors the terrain based off the altitude.

Example code:

HeightColorMap
{
	blend = [number here, must be between 0.0 and 1.0]
	enabled = true
	order = [number here]
	LandClasses
	{
		Class
		{
			name = [name]
			altitudeStart = [number here]
			altitudeEnd = [number here]
			color = [color here]
			lerpToNext = [true or false]
		}
		Class
		{
			name = [name]
			altitudeStart = [number here]
			altitudeEnd = [number here]
			color = [color here]
			lerpToNext = [true or false]
		}
	}
}

You can add as many LandClasses as you like. There are a few important things you should know when filling in the LandClasses though:

'name': give each landclass on the planet a different name so Kopernicus can keep them apart

'altitudeStart': make this number identical to the 'altitudeEnd' of the previous landclass. That is, unless it is the first landclass, in that case set this to 0.

'altitudeEnd': the altitude at which this landclass will end and the next will begin.

'color': specify the color of the terrain in this landclass, an example is '0.5,0.5,0.5,1.0' for a gray surface in that landclass.

'lerpToNext': set this to 'true' if there is a landclass above the landclass you are filling in. If you are editing the uppermost landclass, set this to 'false'.

 

VertexHeightOffset

Lowers or raises the terrain by a specified amount.

Example code:

VertexHeightOffset
{
	offset = [number here]
	enabled = true
	order = [number here]
}

Remember, the terrain is raised or lowered by the amount of metres specified after 'offset'. In order to lower the terrain, specify a negative number, such as '-500'.

 

MORE TO COME! HANG IN THERE, KERBS!

Edited by The White Guardian

Share this post


Link to post
Share on other sites
8 hours ago, NathanKell said:

Good stuff!

Feel free to borrow what bits I put here, it's dated but might help: https://github.com/NathanKell/RealSolarSystem/wiki/PQSMods-supported-in-the-cfg

Interesting... so I can actually calculate the effects of PQSMods... that means highly accurate editing! Thank you so much!

Share this post


Link to post
Share on other sites

Congrats White guardian! I like how you have expanded on the previous tutorials to all of these. It will really help people as soon as they start finding out about this. Just don't give up... Ever!

:)

Share this post


Link to post
Share on other sites
On 25-2-2016 at 0:21 AM, SAS123 said:

Congrats White guardian! I like how you have expanded on the previous tutorials to all of these. It will really help people as soon as they start finding out about this. Just don't give up... Ever!

:)

Thanks! And no, I'm not stopping anytime soon. :wink:

Share this post


Link to post
Share on other sites
2 minutes ago, saurodye said:

@The White Guardian, could you make a PQS mod tutorial on voronoi craters?

I'm no expert on VoronoiCraters, but the Mun has the mod VoronoiCraters. You can simply use the Mun template and remove everthing but VoronoiCraters then patch the mod a little, or add it yourself:

				VoronoiCraters
				{
					colorOpacity = 0.7
					DebugColorMapping = False
					deformation = 500
					jitter = 0.1
					jitterHeight = 3
					rFactor = 1
					rOffset = 1
					simplexFrequency = 120
					simplexOctaves = 3
					simplexPersistence = 0.5
					simplexSeed = 123123
					voronoiDisplacement = 0
					voronoiFrequency = 22
					voronoiSeed = 824
					order = 101
					enabled = True
					CraterCurve
					{
						key = -0.9982381 -0.7411783 -0.06500059 -0.06500059
						key = -0.9332262 -0.7678316 -0.2176399 -0.2176399
						key = -0.8990405 -0.7433339 -2.560626 -2.560626
						key = -0.7445966 -0.8581167 0.4436148 0.4436148
						key = -0.4499771 -0.1392395 5.289535 5.289535
						key = -0.4015177 0.2551735 9.069458 -2.149609
						key = -0.2297457 0.002857953 -0.4453675 -0.4453675
						key = 0.2724952 0.00423781 -0.01884932 -0.01884932
						key = 0.9998434 -0.004090764 0.01397126 0.01397126
					}
					JitterCurve
					{
						key = -1.000701 0.4278412 0.1577609 0.1577609
						key = -0.7884969 0.09487452 -0.7739663 -0.7739663
						key = -0.6091803 0.072019 0.123537 0.123537
						key = -0.3930514 0.3903495 3.300831 3.300831
						key = -0.3584836 0.8643304 0.07139917 0.07139917
						key = -0.2988068 0.002564805 -0.01814346 -0.01814346
						key = 0.9970253 0.003401639 0 0
					}
				}
				VoronoiCraters
				{
					colorOpacity = 0.7
					DebugColorMapping = False
					deformation = 200
					jitter = 0.1
					jitterHeight = 2
					rFactor = 1
					rOffset = 1.1
					simplexFrequency = 300
					simplexOctaves = 3
					simplexPersistence = 0.5
					simplexSeed = 123123
					voronoiDisplacement = 0
					voronoiFrequency = 50
					voronoiSeed = 462
					order = 100
					enabled = True
					CraterCurve
					{
						key = -0.9963056 -0.7950293 -0.1902251 -0.1902251
						key = -0.9520697 -0.8223228 -0.6806358 -0.6806358
						key = -0.7445966 -0.8581167 0.4436148 0.4436148
						key = -0.4499771 -0.1392395 5.289535 5.289535
						key = -0.4015177 0.2551735 9.069458 -2.149609
						key = -0.2297457 0.08363447 -0.4453675 -0.4453675
						key = 0.2817185 0.01192154 0.01421198 0.01421198
						key = 1.000876 0.001117015 0.01397126 0.01397126
					}
					JitterCurve
					{
						key = -1.000701 0.4278412 0.1577609 0.1577609
						key = -0.7884969 0.09487452 -0.7739663 -0.7739663
						key = -0.6091803 0.072019 0.123537 0.123537
						key = -0.3930514 0.3903495 3.300831 3.300831
						key = -0.3141366 0.9276265 0 0
						key = -0.2586833 0.002564805 -0.01814346 -0.01814346
						key = 0.9970253 0.003401639 0 0
					}
				}

Simply edit the order value if necessary and do some in-game tweaking with Kittopia, and you're good to go. Sorry, I don't know more about it than that, I honestly have no idea what 'curves' are. Ask one of the Kopernicus experts, such as @KillAshley or @Thomas P., I bet they'll be able to help you when it comes to custom curves. In the KopernicusExamples, for instance, @KillAshley showed that you do not necessarily have to use the mod for generating craters, but for other things as well. It all comes down to the curves.

Share this post


Link to post
Share on other sites

Honestly, once you get the hang of it, VonoroCraters isn't so difficult. If you want regular craters, don't change their curve. Set the VonoroiDisplacement to 0 and all simplex values (except for the seed and values with 0.5) to 1. Change the deformity to make the craters shallow or deep. You can also put in multiple sets of VonoroiCraters, just make sure to give them different orders (Ex: 100, 101). I'm doing this with a certain little planet of mine...

Share this post


Link to post
Share on other sites

This could help a lot! I haven't been able to understand how to do things in Kopernicus, but this might be very helpful!

Is there a tutorial somewhere that covers the whole process, step by step, from creating a folder for a planet pack to making the configs for it? That would be the best. Right now all I can really do is look at existing planet packs I have and mimic their format.

Edited by cubinator

Share this post


Link to post
Share on other sites

I've been practicing with VonoroiCraters today with a procedural planet I'm testing for a potential modpack I'm making. The smallest frequency you would want to go to is 0.5 which just spawns one massive crater. Any Smaller and really no Crater(s) spawn at all. The Simplex Parts are how cracked, rough and Hilly the 'Mountainous' edge is. You Don't need to edit the curves at all. And the higher the frequency, the more craters spawn(but they also decrease in size). And like @ProtoJeb21 <(i can't do those name tag things properly) said, you can have multiple VonoroiCraters for different sized and depth craters.

Edited by SAS123

Share this post


Link to post
Share on other sites

When do you plan on updating this thread @The White Guardian? No haste but it seems like a while since this was even touched.

Share this post


Link to post
Share on other sites
6 hours ago, SAS123 said:

When do you plan on updating this thread @The White Guardian? No haste but it seems like a while since this was even touched.

I plan on updating it soon with info on at least 2 new PQSMods.

Share this post


Link to post
Share on other sites

I just found this PQS mod: VertexSimplexNoiseColor

Does anyone know what it does?

 

Share this post


Link to post
Share on other sites

Judging by its source file, it seems to be a more advanced way to add some color variation to your planet in a procedural way. There's VertexColorNoise which just applies grey scale noise, VertexColorNoiseRGB which does the same but with a single color (so a red scale, blue scale or brown scale noise). This Simplex PQSMod seems to allow you actually do a gradient, so you end up with perlin noise with two colors and every color in between. Here's the PQSMod as used in Bops CFG:

				VertexSimplexNoiseColor
				{
					blend = 1
					colorStart = 0.1716418,0.1504306,0.1306527,1
					colorEnd = 0.2910448,0.24074,0.2128536,1
					frequency = 1
					octaves = 6
					persistence = 0.5
					seed = 64564
					order = 100
					enabled = True
					name = _Color
					index = 0
				}

 

Share this post


Link to post
Share on other sites
6 minutes ago, CaptRobau said:

Judging by its source file, it seems to be a more advanced way to add some color variation to your planet in a procedural way. There's VertexColorNoise which just applies grey scale noise, VertexColorNoiseRGB which does the same but with a single color (so a red scale, blue scale or brown scale noise). This Simplex PQSMod seems to allow you actually do a gradient, so you end up with perlin noise with two colors and every color in between. Here's the PQSMod as used in Bops CFG:


				VertexSimplexNoiseColor
				{
					blend = 1
					colorStart = 0.1716418,0.1504306,0.1306527,1
					colorEnd = 0.2910448,0.24074,0.2128536,1
					frequency = 1
					octaves = 6
					persistence = 0.5
					seed = 64564
					order = 100
					enabled = True
					name = _Color
					index = 0
				}

 

That's cool. It seems quite useful. thanks
 

Share this post


Link to post
Share on other sites

This is it in action on Gilly, with a high frequency (100) and red and blue as the two colors. In normal use you wouldn't make the frequency high though. Gilly only has a frequency of 1, Duna has the max with 24.

LnbrXQ2.png

 

Share this post


Link to post
Share on other sites
22 minutes ago, CaptRobau said:

Judging by its source file, it seems to be a more advanced way to add some color variation to your planet in a procedural way. There's VertexColorNoise which just applies grey scale noise, VertexColorNoiseRGB which does the same but with a single color (so a red scale, blue scale or brown scale noise). This Simplex PQSMod seems to allow you actually do a gradient, so you end up with perlin noise with two colors and every color in between. Here's the PQSMod as used in Bops CFG:


				VertexSimplexNoiseColor
				{
					blend = 1
					colorStart = 0.1716418,0.1504306,0.1306527,1
					colorEnd = 0.2910448,0.24074,0.2128536,1
					frequency = 1
					octaves = 6
					persistence = 0.5
					seed = 64564
					order = 100
					enabled = True
					name = _Color
					index = 0
				}

 

I can't seem to get it working. the landscape ends up black.
 

Share this post


Link to post
Share on other sites

what does the index do?


				VertexSimplexNoiseColor
				{
					blend = 1
					colorStart = 0.211,0.345,0.317,1
					colorEnd = 0.117,0.635,0.533,1
					frequency = 3
					octaves = 6
					persistence = 0.5
					seed = 111
					order = 7
					enabled = True
					name = Alpha
					index = 0 //this one... ive never seen it...
				}

ima leave it alone until I know what it does.

Share this post


Link to post
Share on other sites
On 1/22/2017 at 11:27 PM, Axilourous said:

what does the index do?



				VertexSimplexNoiseColor
				{
					blend = 1
					colorStart = 0.211,0.345,0.317,1
					colorEnd = 0.117,0.635,0.533,1
					frequency = 3
					octaves = 6
					persistence = 0.5
					seed = 111
					order = 7
					enabled = True
					name = Alpha
					index = 0 //this one... ive never seen it...
				}

ima leave it alone until I know what it does.

Whoo, been a while since I've been on this thread.

The index is for when you use the same PQSMod twice, in which case you will have to give both different 'names' and assign a different index.

Like this:

VertexHeightNoise
{
	name = FirstHeightMod
	index = 0
}
VertexHeightNoise
{
	name = SecondHeightMod
	index = 1
}

 

Also, an announcement: as I am learning more and mode about C# I can now read the code of Kopernicus that loads the PQSMods. Therefore I can tell exactly what values it will look for and how each value should be entered.

Share this post


Link to post
Share on other sites
18 minutes ago, The White Guardian said:

Whoo, been a while since I've been on this thread.

The index is for when you use the same PQSMod twice, in which case you will have to give both different 'names' and assign a different index.

Like this:


VertexHeightNoise
{
	name = FirstHeightMod
	index = 0
}
VertexHeightNoise
{
	name = SecondHeightMod
	index = 1
}

 

Also, an announcement: as I am learning more and mode about C# I can now read the code of Kopernicus that loads the PQSMods. Therefore I can tell exactly what values it will look for and how each value should be entered.

Oh okay, pretty neat that you can look at the code and see what it looks for!

Share this post


Link to post
Share on other sites

Will this be updated anytime soon?

Share this post


Link to post
Share on other sites

I'm curious about the altitude definitions in HeightColor map. Are the altitudeStart and altitudeEnd parameters in meters or kilometers?

Share this post


Link to post
Share on other sites
2 hours ago, UranianBlue said:

I'm curious about the altitude definitions in HeightColor map. Are the altitudeStart and altitudeEnd parameters in meters or kilometers?

Percentages of the maximum altitude :wink:

(Actually, decimal numbers representing percentages. Like, 10% = 0.1, 20% = 0.2, etc)

Share this post


Link to post
Share on other sites
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.