Home 3D Art Showcase & Critiques

[UE4] Been working on an ice shader; looking for feedback

polycounter lvl 8
Offline / Send Message
Ali_Youssef polycounter lvl 8
Edit: Final shader:


______________________________________________________________________


Greetings polys, as the title says I want to improve on the following ice shader:



And here it is animated for clearer parallax and SS effects (apologies for the huge gif size):



I was trying to achieve convincing cracks in the ice and give it depth, this is my main reference:



I would really love some feedback to improve on this shader as it's my first time doing something more complicated than 3 texture samples plugged into their respective slots.
I'm also interested if this sort of thing is worth popping on the portfolio after it's done, or is it better to only have finished environments (this will probably be included in a scene... eventually)

I will now talk about the process I used, and I like to talk a lot, so feel free to skip the next reply if you're not interested, otherwise would love some notes on fixing/improving it.

TL;DR: Ice good ? how can better ?

Replies

  • Ali_Youssef
    Offline / Send Message
    Ali_Youssef polycounter lvl 8
    So here's the graph in Unreal:



    So the parallax is a custom parallax function (except that it isn't) that uses the crack map (exported from SD) to create a gradient depth mask that lightens and tints the ice under the cracks; so basically creates an "edge" for each crack "chunk".
    I tried to use POM but it doesn't seem to support gradually fading the mask out, which helps sell the depth.
    Also it's probably overkill, I could use fewer offsets, but I haven't done any optimising yet.

    Offset noise is a basic texture with a bump offset to blocks SS in a fake-3D mask (needs some more work).
    Everything else are scalar vectors to play around with the instances.

    The substance graph is fairly simple, it basically serves a few purposes:
    Colour variation; snow mask; crack and ice normals; and a basic roughness map
    It's mostly used for the crack mask that's offset in Unreal.



    I do realize it's not an impressive or complicated shader, I would just like some feedback to head in the right direction.

    Cheers guys, love this community !
  • Macattackk
    Offline / Send Message
    Macattackk polycounter lvl 7
    This is looking really good! I think it could use some fresnel specular highlights/reflection. Right now it feels to matte.
  • Ali_Youssef
    Offline / Send Message
    Ali_Youssef polycounter lvl 8
    Right now it's completely opaque, I was thinking about animating water under it rather than make it translucent, but I suppose I'll try both and see which one works best.
    Thanks for the tip !
  • FreneticPonies
    Offline / Send Message
    FreneticPonies polycounter lvl 3
    Agreed with @Macattackk  it looks really diffuse right now. I mean great subsurface look, but where's the shiny?
  • Larry
    Offline / Send Message
    Larry interpolator
    One thing I could comment as well is that the cracked ice parts are the same scale, there is no variation in individual scale of the ice pieces..!
  • PixelGoat
    Offline / Send Message
    PixelGoat polycounter lvl 12
    This looks very promising! Would love to see a bigger shot of the shadergraph in order to try to understand it better, even if its beyond my comprehenssion :)
  • Sebvhe
    Offline / Send Message
    Sebvhe greentooth
    Agreed with the previous comments, all you need is reflections!
    Look at you reference picture you can literally see the reflection of the mountains on the ice.
    Furthermore, if it isn't making your material too complex I would add some large scale cracks that run continuously through the surface, that should help breaking the honeycomb pattern.

    Other than that, it's the best ice I have seen in a while!
  • frmdbl
    Offline / Send Message
    frmdbl polycounter
    Spectacular! All I would change other than the reflections is to warp the cracks a bit more and maybe add a layer of more subtle ones as mentioned previously.
  • Ali_Youssef
    Offline / Send Message
    Ali_Youssef polycounter lvl 8
    Hey guys, sorry for the late reply and thanks for all the feedback and interest :smile:
    The ice is actually fairly reflective, the issue is that what it's reflecting is the clear blue sky, I suppose I should have worked on the presentation a bit more :sweat_smile:

    Here it is with clearer SSR


    Nonetheless, I amplified the specular highlights a bit and broke the honeycomb pattern as suggested


    The chunks look more "glassy" now which is lovely

    @PixelGoat I'll probably share this material somewhere once I clean it up a bit and make it more user friendly

    Thanks again for the feedback !
  • Sebvhe
    Offline / Send Message
    Sebvhe greentooth
    I think SSR may be the reason it doesn't look glossy enough. SSR look quite bad on large flat reflective surfaces (because most of what should be reflected is outside the frame). Try putting Planar reflections instead. That way you'll be able to reflect what's outside of your frame.

    Furthermore, I'd add a faint, noisy normal map to make the reflections less flat.

  • FreneticPonies
    Offline / Send Message
    FreneticPonies polycounter lvl 3
    Still not selling the reflections, your own reference shows just how much stronger they are on normal ice than your current shader. In fact the entire thing feels too dark in general, here's a similar ref and you can see how much brighter in general everything is:

  • Ali_Youssef
    Offline / Send Message
    Ali_Youssef polycounter lvl 8
    Updated with planar reflections and more bumpy normals:


    Starting to look a lot closer to the reference, what do you guys think ?
  • Larry
    Offline / Send Message
    Larry interpolator
    It is definatelly looking very nice, in your first references I could barely even see the scale variation... Now I notice in your ref that the further away from camera, the more it acts like a mirror. Note how near the rocks you can clearly see them and their colors being reflected on the ice.. also why dont you try adding some snow blocks on top of it to see the result?
  • Sebvhe
    Offline / Send Message
    Sebvhe greentooth
    This is a million times better already!
    Maybe increase that normal map a bit, it still looks somewhat flat at a distance.

    Can't wait to see the patches of snow breaking the shape!
  • Ali_Youssef
    Offline / Send Message
    Ali_Youssef polycounter lvl 8
    Added snow patches and a few tweaks here and there, I think I'm calling it on this one





    Thank you guys so much for the help, I really appreciate it.
    I really enjoyed working on this and I think it got better since I posted the first image with the feedback I got, so cheers for that.

    I made the material available on gumroad to anyone who's interested in the technical side or if you want to use it in a scene or something, hopefully someone finds it useful.
  • Seeberg
    Offline / Send Message
    Seeberg polycounter lvl 6
  • Felixenfeu
    Offline / Send Message
    Felixenfeu polycounter lvl 10
    That's some pretty legit shader. Looking great.
  • Sebvhe
    Offline / Send Message
    Sebvhe greentooth
    Turns out amazing! It's great to see you take all the feedback into account so quickly :smile:

    I'll make sure to check the material out as soon as I get the time, thanks a lot for sharing it!
  • Poinball
    Offline / Send Message
    Poinball polycounter lvl 6
  • almighty_gir
    Offline / Send Message
    almighty_gir ngon master
    holyyyy fuck that graph is insaaaane.

    i'm almost sure you can simplify that a lot without losing any visual quality.
  • Ali_Youssef
    Offline / Send Message
    Ali_Youssef polycounter lvl 8
    holyyyy fuck that graph is insaaaane.

    i'm almost sure you can simplify that a lot without losing any visual quality.
    Yeah, it most certainly can be simplified, I used 24 parallax planes for demonstration purposes
    On the other hand, if the material editor had a for loop, the whole left side of the graph would be 3 nodes, as it's iterating the same process
  • sprunghunt
    Offline / Send Message
    sprunghunt polycounter
    holyyyy fuck that graph is insaaaane.

    i'm almost sure you can simplify that a lot without losing any visual quality.
    Yeah, it most certainly can be simplified, I used 24 parallax planes for demonstration purposes
    On the other hand, if the material editor had a for loop, the whole left side of the graph would be 3 nodes, as it's iterating the same process
    For loops in shaders only exist if you're developing for the Xbox 360. So the lack of a for loop just reflects the underlying properties of HLSL.
  • ChinoHead
    Offline / Send Message
    ChinoHead polycounter lvl 6
    Wow, nice job.
  • Bletzkarn
    Offline / Send Message
    Bletzkarn polycounter lvl 6
    looks really good, just seems slightly too blue though? water isn't actually blue it reflects the sky.
  • bigodon
    Offline / Send Message
    bigodon polycounter lvl 8
    looks fucking good to me, tbh

    but if you think there is room for improvement, go go go!
  • Testnick
    Offline / Send Message
    Testnick node
    there was another ice tutorial working with bump offset but by god i cant find it
Sign In or Register to comment.