Website powered by

Cairn - Technical Breakdown - Rock Rendering

I was lucky to work on Cairn as Technical Art Director, and now that the game has been released, I thought it might be interesting to share some of its "development secrets".

At the beginning, i want to write mostly about rendering and shader (my part) but I drift on other subjects which I found more interesting.
You can find more about No-Piton surfaces here : https://unity.com/blog/cairn-technical-art-rendering-gameplay-rock-materials

More about Cairn :
https://www.thegamebakers.com/cairn/
Reach a summit never climbed before in this survival-climber from the creators of Furi and Haven. Climb anywhere and plan your route carefully, managing pitons and resources to survive the unforgiving Mount Kami. Discover what Aava is willing to sacrifice to achieve the ascent of a lifetime.
© The Game Bakers

An overview of rock rendering in Cairn! 
https://www.thegamebakers.com/cairn/
What you can see in these screenshots is the result of a team process 
(gameplay tech, level design, modeling, tech art, tools, etc)
So, kudos to TheGameBakers

An overview of rock rendering in Cairn!
https://www.thegamebakers.com/cairn/
What you can see in these screenshots is the result of a team process
(gameplay tech, level design, modeling, tech art, tools, etc)
So, kudos to TheGameBakers

(Wireframe view)
Before talking about rendering, let's have a little glimpse about level design/art.
Take a look at this wireframe: Triangles density is very high and every geometric detail is not just here to be pretty, it's fully navigable!

(Wireframe view)
Before talking about rendering, let's have a little glimpse about level design/art.
Take a look at this wireframe: Triangles density is very high and every geometric detail is not just here to be pretty, it's fully navigable!

(Normals view)
You can't imagine the amount of raycasts environment is taking in its face per frame.

Plus, Player needs to read / understand climbing routes as much as possible, even at a 50m distance.

Geometry is very important here, we can't fake it.

(Normals view)
You can't imagine the amount of raycasts environment is taking in its face per frame.

Plus, Player needs to read / understand climbing routes as much as possible, even at a 50m distance.

Geometry is very important here, we can't fake it.

(Modules vs Level)
To simplify level design process, we choose to go for "Kit Bashing".

It starts with a small range of modular rocks models.

(Modules vs Level)
To simplify level design process, we choose to go for "Kit Bashing".

It starts with a small range of modular rocks models.

(Wall Editor Hold Flags)
Beside modeling, all interesting cracks/holds are flagged manually in Wall Editor.
We can tell that an edge of the mesh can be grabbed in a certain way by a limb, it's a climbing configuration.

(Wall Editor Hold Flags)
Beside modeling, all interesting cracks/holds are flagged manually in Wall Editor.
We can tell that an edge of the mesh can be grabbed in a certain way by a limb, it's a climbing configuration.

Level Art team did a crazy work on modeling all of these.
For each Modular Rock, there are variants depending on scale (cracks/holds variants that fit with climbing gameplay)

(Kit Bashing View)
It's probably the craziest kit bashing process you will see in video games, it's all hand placed, nothing procedural. it's the perfect mix between level design and art.

(outer hold)
On top of that, we can add individual holds of all kind (Here the famous HoldModule_Jug_Big_0).
Holds projected with Wall Editor are deformed to stick to wall surface and wall normals are transfered to have a nice material blending.

(inner hold)
With some shadery, we can also carve the rock at a minimal cost (no mesh stitching).
more here : https://www.artstation.com/artwork/BkE9E6

As you can imagine, environments in Cairn are quite complex to design. 
We had to find the smoothest rendering solutions for level design iterations.

As you can imagine, environments in Cairn are quite complex to design.
We had to find the smoothest rendering solutions for level design iterations.

(Rocks and Ice)
Because we have a small range of modular rocks, we can't have regular uv mapping, repetitions will be too obvious and instances scaling will break texels density, so we have to go for procedural mapping.

(Rocks and Ice)
Because we have a small range of modular rocks, we can't have regular uv mapping, repetitions will be too obvious and instances scaling will break texels density, so we have to go for procedural mapping.

(Triplanar)
We go for triplanar mapping everywhere (well it's actually biplanar in shader code to reduce samples)

(Auto Grass)
On top of rock, we can add a grass layer, with "micro meshes projection" (maybe in another breakdown).

(Layering)
There are at least 3 texturing layers for rock (base, and 2 other for dirts/lichen).
We can tweak colors, scales, noise, etc.
We can also add deferred decals for narrative details (maybe in another breakdown)

(Auto Rocks)
And if we can do auto grass, we can do auto rocks.
yeah! rocks on rocks, we love rocks!

(Auto Snow)
And obviously, we have a snow layer.

These layers can be automatic based on a world normal threshold or controlled via world blendmaps (a big part of Level Art).

(No Piton)
Another interesting layer is the "no-piton" layer which is controlled via world 3D textures. We use a compute shader to get texel perfect visual-gameplay sync.

more :
https://unity.com/blog/cairn-technical-art-rendering-gameplay-rock-materials

That's all fo this time!

Feel free to ask if want to know more, thanks for reading !