Bartłomiej Galas from NatureManufacture talked about the way he builds amazingly detailed ice shaders.
When I played Dragon Age Inqusition in winter scene I saw an ice on the lake and it was impressive, mostly because of ice depth which it represented, it looks like there was real space in the ice, not a flat texture and I’m not thinking about cracks only. When I was looking at it I caught the idea and decided to create something similar. After few weeks, first at Unity then at Unreal, shader was finished. To be honest I made it just for my satisfaction rather than as a planned product. It was a short project that I made during creation of the other one.
Amplify Shader Editor gives huge ability to test, make fast interpolation of shaders. It works almost the same as Unreal tools for shaders but… hmm it contains a bit less functions, ofc this will change from day to another because they are still adding new ones. This is just awesome. I love to co-operate with their team to fix, change things in their system. They always add something cool or fix in 1-2 days if something does not want to work as it should.
I’ve made a few different types of ice. This forced me to create few different materials (Unreal) and different shaders (Unity). Overhaul construction is pretty similar but normal maps behave in a different way in raw and old ice. I had to create different functions for normal maps to get such effect:
Shaders include cracks with effect of depth, I would say all textures have such effect, like bubbles or different frozen water under the surface. This is the main idea that gives this ice idea of space. Ofc it has transparency and fading for borders so basically it behaves like a water. Shallow, depth water colors are included too. Ofc ice is reflective, distorts objects under the water so all this effects gathered in one place with library of 60 textures give huge ability to customize this ice for your own goal. We made materials for models (solid) and for lakes (water type).
Organizing the shader
In shader/materials we could manipulate: water depth, shallow, deep color, distortion, reflection, ice depth, normal powers (2 normals), mix the cracks (killed tiling) and much more.
I always make my shaders modular so I’m able to easily copy-paste some ready/done functions to other shader and get similar effect. This gives me ability to create shaders fast. Spider web shaders are scary to me so I tried to make everything clean and in order.
Where could it be used?
Shader could be used for lakes, frozen rivers in different stage (raw or old ice), they also could be used as ice for models in ice caves or as icicles.