In one of the locations there is lava.
First I bought the ready material of lava in the Unity Asset Store. However, the situation was similar to the situation with the purchased water material. The purchased shader was not optimized and it was very difficult to improve it, because its code is completely unreadable and full of such lines as
float4 break770 = ( i.vertexColor / float4( 1,1,1,1 ) );
float4 lerpResult904 = lerp( lerpResult903 , appendResult898 , temp_output_1000_0);
float4 break967 = appendResult876;
float4 appendResult965 = (half4(break967.x , break967.y , 0.0 , break967.w));
As if someone specifically wanted to confuse me.
So I decided to write a similar shader from scratch. Armed with textures from the purchased asset, I quickly managed to make a pretty good lava:
However, when I gave the lava a flow animation, I ran into a problem - the lava flowed through the stones, creating a feeling that the stones hang over the lava:
To solve this problem I generated a texture of the distance to the nearest land. Using this texture, I can make the lava near the stones colder and reduce the speed of its flow. I also decided to change the textures from the purchased asset to my own.
Here is the result: