Colour theory as a starting point to make the relevant palette

Tags: #<Tag:0x00007fa0d9709d98> #<Tag:0x00007fa0d9709c80>

Hello, dear oorthers! Glad to see you here no matter what.

As you can know, in testing branch we actually have possibility to set algorithm for procedure generation worlds’ colour palettes. I sure many enthusiasts try to make it right now.

Also I sure we could to make this difficult task easier with some painter’s guides.
Well, let’s start by video guide:

Because I didn’t see this video yet I add some links to text articles of that theme:

And I actually don’t sure this one will be helpful for but everything possible:

It’s may be a bit difficult to understand for first time.
So I shall try to rewrite the essence of these articles here next week.

Also there is a useful site Colour Voodoo with books and courses if somebody interested.

And there is a designer’s palettes as an example for “how it works”:

Please, feel free to post here all you thoughts and results of exploring and discoveries of World Builder.

UPD: I feel this video about gamuts is very useful:


As I see here is a trouble to answer wiki-topic. I removed “wiki” flag from main post and wait for your thoughts.

Main idea I thinking right now is a joining blocks to some groups and pulling colour harmonies on these groups. So, what do you think about colour opposition [sky + water (blue)] — [ground blocks (orange)]?

Well, we have:

  • Sky + Fog
  • Water + Ice & Glacier
  • Ground:
    • Grass + Foliage
    • Soil + others:
      • Sand
      • Mud
    • Wood
    • Rock + Gravel
    • Gleam (refered to sun, heh?)

It would be nice to have some variation on the water color to.


^^ which is now possible. Having the water colour match the atmosphere colour might be nice


well, to set the water matching to the atmosphere might me great on the first glace, but what if the water has another color (possible cuz of chemicals, microbacteria or being a solution of something different organic). To make it matching can be great on most places, but please don’t make it fixed to it. There may be some cool possibilities when it’s not set by the atmosphere itself :wink:


Oh yeah, absolutely. I’m just saying it would look nice that way, not that atmosphere should dictate water colour at all :grinning:


I can’t understand how it works.

In World Builder we have:

  • Palette node
  • Palette Colours node
  • World Colours node

Could anybody tell me what it mean? How we must construct world colours?

Do all worlds will use one unified palette for all blocks and each block will use a cell from the palette?
Do all worlds will use one unified set of palettes for each blocks and each world will contain a set of numbers of colour for each block?
Or may be each world will use its own palettes with its own block colour nodes and each unique block wil use its own unique colour?

I’m absolutely confused.


Well, there is something like answer to my question…

…but I still confused. :thinking:

I can imagine picking world colour from uniform palette which can be subjected by colour math. But colour math cannot be used with Base 255 Palette because it’s not uniform. So, how we must to pick colours? :exploding_head:

Does that mean I wrong and some colour math could operate with this palette? Is it some kind like
HueShift(Colour35; 30)=Colour148;
LuminanceShift(Colour202; -20)=Colour229 ?

Could @lucadeltodecso describe the system?

there will be no such simple nice numbers, but yes, something like that.

you can check in the worldbuilder/assets/palette.dat for all the 255 base colours. its just a file of RGB byte truplets one after the other (sRGB color space)

1 Like

Does these colours have some inner relations? I mean in World Builder we can operate with Base 255 Palette like applying Shifts to all palette’s colours.

But I understood world colouring at different way: to pick cells from the Palette. It can be algorithmised only in case when Shifts redirect picking pointer by some rules. I can’t see this rules and confused.

Does it work next way: we can operate with initial colours which will be converted to similar ones from the Palette?

My questions may be too inconsistent and intricate and disrespectful because I have some troubles to express my thoughts especially at foreign language. I’m so sorry :sweat:

the only time you would actually do anything with the “base 255 palette” node or a “blockpalettes” file in the worldbuilder, is if you were modding to change the base 255 palette or the gradient highlight/shadows of the blocks.

If you are just desigining a world and picking its colours, you would only operate with the “single-color” node and the “worldpalettes” file type, and yes, you use singular colours defining relationships between them for the different blocks etc, and it discretises by picking the closest in the 255 palette at the end of it all.

1 Like

Then how could I sure two adjacent colours will be converted to another two adjacent colours not in one single colour or two not adjacent colours after all transformations?

There’s nothing to do that, not found to have needed it so far at least.

But what I need to do if I want to have different and adjacent colours of three types of rock/soil/foliage/grass/wood?

Couple of words more about tech side

How to realize any kind of colour relations?

Well, here is example. We can set some relations between block colours by values [4]. To get random colours we need to use Shifts with equal seeds [2] — value of shift will determined by aggregator palette [1] from where seed will inherit. So set Shifts value on linear randomization and you will get different colours with setted difference between.

Don’t afraid Shift’s visualization not changed by pallete seed changing. Result colours you can see at the bottom of tables.

@lucadeltodecso Could you tell about where is colour nodes of sky and water? Will we set it for the world?
Also there isn’t Random node like it is for each other kind of node. Where it lost? I need Random palette and Random colour nodes to unite different kinds of colour harmonies I’ll build soon.

Last thing I want to say: it looks like Shifts not so useful as they could be. Why did you make three nodes with single slider each (Hue Shift, Luminance Shift and Saturation Shift) instead of single node with three sliders? Why we can’t operate with aggregator palette in such style (to change params for all blocks in same time)? I think it would be useful for exposed sliders.

There is a “reference” palette node which allows you to have a single node be the child of multiple others, the way we’ve done the palettes so far is to have a single “master” color from which everything else is derived so changing the hue of the master color changes the entire palette.

water/sky/fog/sun/lighting stuff is not part of the palette system as it stands, those are being authored directly by the artists with no immediate plans to move into the worldbuilder.

1 Like

Could you explain how it works please? Because I don’t sure I understood what you described here.

Could you also explain about “link” parameters in nodes and “unlink” parameter in the bottom at palette node?

Sure I shall be questioning you not for long time. Please, be patient :hugs:

I’ve been trying to copy this reference system, and have ended up making wood colours that… Barely fit together when changing the base hue :joy:
Edit: @Okkelinor I believe they are using a single colour node, normally called base hue or something like that, which is added to the unlink section.
Then, each block, or many of them, in the worldcolours file is started with a link to this base node using the graph reference node.
As such, changing that base hue will change all of the block colours that are linked to it.
You can expose the hue slider on the worldcolour node when used elsewhere by right clicking on the hue slider and clicking expose slider… I didn’t figure that one out lol :joy:

1 Like

Could you share how it looks? :blush: