Antegods Art Update: Procedural Plants

Jan. 18, 2017
protect

As we work hard to make our stonepunk arena action game Antegods a reality, you can stay up to date on our development process with regular blog posts from our design, art and code departments. This time, lead artist Tom will guide you through the creation of procedurally generated leaves in Substance Designer!

 

Substance Designer

In the previous art update I talked about Substance Designer and how amazing it is. Today I’ll give you some more insights into how this software helps us make randomly generated art.

We asked our Twitter followers whether they wanted to see a tutorial on our generated stone or leaf patterns. With a difference of only a couple of votes, a winner emerged: the leaf pattern! Yeahhh…

So how did we create those leaf patterns? It’s not easy, as you can see in the below graph. I’ll try to keep my explanations as simple as possible, though!

image

 

Step 1: Defining an ever-changing leaf shape

As mentioned in the previous Substance Designer blog post, the ‘random seed’ button is super useful. I decided to use it as the basis for our leaves.

image
  1. Start off with a Shape node, with a scaled down Paraboloid pattern. 

  2. Use a Splatter Circular node to randomize the amount, scaling, positioning and luminance of the shape. Then, every time you change the random seed, all these settings will be randomized, creating a different shape.

  3. Use a Gradient node to convert to a Color mode. 

  4. The Symmetry node mirrors the image on a diagonal axis. I picked diagonal because then the leaf’s root would always be in the bottom left corner. 

  5. Use a Levels node to bring the values closer to each other, resulting in a clear and crisp shape. 

  6. The Grey scale Conversion node changes the image back to grey scale. 

 

Step 2: You’ve got some serious nerves

Now that we have a constantly changing shape, we need to create nerves that come from the leaf’s center. This step contains more sub-steps than the previous one, so it’s harder to follow. Stick with me!

image
  1. Start off with a Shape node again. Set it to Disc, full size.

  2. Use a Transformation node to scale the disc into a needle.

  3. The Splatter node randomizes the needle’s scale, positioning and rotation. These ones are more vertically orientated.

  4. Use another Splatter node to do the same, except these are more diagonally orientated.

  5. A little sidestep: create a Gradient map.

  6. Use a Histogram Scan to up the contrast and positioning of the gradient. It only shows a horizontal line at the bottom, which will become the details of the main nerve.

  7. A Blend node blends the first Splatter node (3) with the Horizontal Line (6).

  8. Another Blend node blends the result with the Gradient, making it fade to black at the top.

  9. Yet another Blend node adds the Splatter node (4) on top of it, using a low opacity so the diagonal lines aren’t as clear as the vertical ones.

  10. A Warp node warps the nerve pattern with a mask.

  11. For the mask we use a Perlin Noise Zoom node.

  12. From the Warp node (10) we use a Transformation node to vertically mirror and scale the pattern 50% in height. Place it on the top half of the texture. Also move it a bit to the left or right.

  13. Again, from the Warp node (10) we do the same thing. Use a Transformation node and cut the height in half. Place it on the lower half of the texture and move it a bit to the left or right. Do not vertically mirror the pattern!

  14. The Blend node blends them together. We need a mask to block one half of the pattern to make the other one visible.

  15. Use a Histogram Scan on the Gradient map (5) and up the contrast to the max. We now have a good mask for our Blend node. The result is pretty OK, except the main nerve is being destroyed by the Warp node we used earlier.

  16. Luckily, we have the Histogram Scan node (6). From here we use a Transformation node to cut the height in half again, and place it on the top half of the texture.

  17. Do this once more, but then vertically mirror it and place it on the lower half.

  18. A Blend node blends these two together into one big line, placed in the exact middle.

JikGuard.com, a high-tech security service provider focusing on game protection and anti-cheat, is committed to helping game companies solve the problem of cheats and hacks, and providing deeply integrated encryption protection solutions for games.

Read More>>