After getting through the whole workflow and doing some renders in Toolbag, I was a bit unsure about how much the ornaments were actually sticking out and went to look for more reference. Unfortunately I couldn't find the specific pattern I was making in a context shot, but I did found similar images that gave me a rough estimate of how they'd probably looked like from a side view.
The goal was to have tile patterns be setup in a way that allowed me to still have the ability to drive the patterns through parameters while keeping all the masks for the different colored tiles.
In my first pass the red center part was also a tile, when I looked closer at the ref I noticed that this wasn't the case, so I decided to make it optional to change this up, this allows it to be a full tile pattern with the ornament hidden.
1. To solve this pattern, I broke it down to the main tiles I needed, a big center square, small squares on the corners and the remainder filled up with two rectangle tiles on each side.
I exposed the scale of both squares and gave them both the same parameter that I called "Size". The big square has its parameter set to "Function Opposite" and the small square is set to "Function Main" (This refers to the setup in the image below), because of how the functions are set up, they scale opposite of eachother and will retain the pattern.
In my finished pattern the value was set to 0.12, in the image below it shows how the single pattern would look like at values of 0.25, 0.50 and 0.75. With this setup after a value of 0.50 it starts to create an additional tile in the middle and split the other two. This I would call a happy accident. It added additional variation in this way which I didn't factor in, if I didn't want this I could limit it to a max value of 0.50.
2. Here I used a Blend(Max) to combine the values for the rectangle tiles to the other part of the pattern.
3. The pattern will not tile right like in the reference as the values need to be the same when next to eachother for the next step, to fix this I used Mirror nodes with the output multiplied on top of a mask that also uses the scale parameter set up like "Function Opposite" so it scales along when the parameter gets changed.
5. Here I Subtracted the center tile from the pattern to end up with just the outer border of tiles.
6. Since I had the setup ready to have the center tile as part of the pattern it made sense to have this as a toggleable option. So I added a Switch and exposed it to switch between the two patterns. (Additionally a custom input could be added here)
7. Slanting gets added near the end of the height, but here I set it up already with Flood Fill nodes using the full pattern so that it depends on the Switch which parts this gets applied to.
8. Same as with the slanting, this chain gets used later on in the graph to offset noises and such to not have it continue from tile to tile.
While doing research, it also got me very interested in Thailand their architecture and to be more specific, their temples, there is so much detail, ornaments and colors put into them, it's crazy, definitely putting it on my list of places to visit one day!The final result can be found Here on ArtStation
Feedback is as always greatly appreciated!