Glacial Ice

Hey guys,

I’m having a hard time making a proper material simulating the ice found in glaciers. It’s crystal-clear at close inspection but has an amazing blue and teal glow that makes it quite opaque once you go a few inches deep.

My experience with volume scattering / absorption is limited so I thought I’d ask for help. What can I do to create something like this?


Key features:

  • Translucent near the surface
  • Well lit on the inside
  • Internal color gradient
  • Irregularities throughout the volume (varying IOR? Not sure what the exact effect is, but this might not be necessary)

Thanks in advance.

Hey splic,
I wanted to address your fourth point about irregularities within the volume first, by saying that while ice does have cracks, bubbles, etc. within, most of the detail in the ice might be actually from the irregularities of the surface of the ice. You could probably get away with a texture or two, but a detailed mesh is probably the best way to introduce the irregularities that you mentioned. The volume shaders will probably help with the “translucent near the surface” bullet, as well as the internal color gradient. Being well lit on the inside has more to do with the lighting of your scene rather than the actual material, although I do see what you mean about the brilliance of the color that makes it appear as though it is lit up internally. Maybe some scattering would help that?
I’m not an expert with the volume shaders either, but hopefully this will help you. I’ve created 4 ice materials that are maybe somewhere in the right direction, although the model that I used was more of a quick sculpt than a detailed piece of ice, and more detail would add more realism.



From left to right: The 1st material is based on Blender Diplom’s custom absorption node group, which I thought may give some control of the translucency, and you can see the result is nothing really special, I have not tweaked it that much but you can mess around in the blend file if you like. The 2nd shader is a basic glass shader + an absorption shader set to blue with a density of 2. Hopefully this is a little closer to the image in your post. The 3rd is a glass shader set to a light blue, not very awe inspiring but generally quicker than the others. The 4th one is the most experimental… After some thought I decided to try and scatter the red light entering the object, which most likely is not entirely faithful to reality, but still gives a decent color. I think that the Blender Diplom absorption node group is most likely your best bet, because the problem is that the density “falloff” needs to be more noticeable and that node group can probably be tweaked to give that effect. All of these shaders are intricate by any means and you would probably get better results if you tried a bunch of different ways instead of my meager 4. I’ll include the blend file to make it easier to see what I did. Feel free to correct anything I’ve done, as I too have been looking for a nice glacial ice shader!

Scratch that, I’m having trouble uploading the blend file, I’ll try adding pictures of the node setup later.

Was messing around with the last material and came up with this node group to help with controlling the density falloff:


Volume absorption is probably the easiest - but you can kinda fake it if your geometry is quite simple. Take a look at this node setup (obviously you’ll need to adjust the colours appropriately):

http://www.elysiun.com/forum/showthread.php?316169-Good-shader-explanation&p=2505427&viewfull=1#post2505427

Hey Wootie - thanks for the detailed response. Those look pretty great and like moony suggests, the 2nd one might be the best because of its simplicity and efficacy. I like the direction we’re heading with these and I want to see where we end up…

I’m messing around with plugging a multiplied Voronoi texture into the density value of the volume absorption and it gives a nice effect for the varying colors in the middle.

This is a tough but rewarding path of exploration. I hope to post a number of useful textures at the end of this by the time we’re through.