Hey Ben, I've noticed that on the ice shader in both implementation this causes the asset to render faces on the other side of the mesh that are facing somewhat towards the camera, or to explain it better, convex faces that are behind the polygons you're viewing, that are also oriented towards the direction of the camera. It's more visible at the 15:00 minute mark, on the left side of the ice. It seems like the effect is toned down when you have a higher value in the normal strength.
UE. In addition to the error in connecting "Mask RG" which was already mentioned in the comment, you also have a value of 1 in the "FlattenNormal" node, which essentially means that you are supplying a solid blue color. In fact, it means that you just turned it off.
Hi,Ben.Thank you for sharing the shader, it looks cool. For the Unreal shader , have you try check the output velocity in material detail panel ? and keep the opacity mask clip value as low like default. It will probably solve the TAA issue.
Great video Ben! I know you mentioned that you'd cover a skin material already in the first video of this series, but I'd love it if you included several different methods of achieve a subsurface scattering effect, some of which are cheaper but don't look as good. In a similar format to what you showed in the video about blending normal maps.
The unity one looks so much better. Why is that? I assume the ghosting effect is from the temporal aa in unreal but the static result when you're not moving the camera still looks much better in unity.
I think it has a lot to do with the base asset I'm using. The one in Unity just lends itself better to being ice than the one in Unreal. I'm sure I could get better results in Unreal if I had a better asset. But the assets aren't the focus on my channel really, so I don't spend a lot of time on that.
I noticed how in some angles you can see the outside faces of the ice through it causing very weird looking shading (you can see it pretty clearly at 15:17 on the left), it looks pretty undesirable and would probably need to be fixed somehow
Hey, thanks a lot for this, it helped me very much! Let me ask you something, i used this material to make a ice floor in a snow environment, but i want to animate a car riding on top of this ice, and i need the shadow, but the problem is that the shadow passes the ice because it is translucent, do u know how to make the shadow stay on top of the ice or another way to use a plane as a shadow catcher or something like that?
That temporal ghost flickering effect is actually very... interesting. I'm wondering if there is any cheap way to achieve otherwolrdly effect like that in materials. I knew Dither Temporal AA node could achieve something similar but just couldn't control the flickering intensity.
Won't this cause problems where the UV seams are? I mean, it's a tileable texture but it's not unique for the mesh so I gues you can see where the seams are? In this example that might not be a big problem because the normal map wil "hide" these seams. But wil it also look good on a smoother mesh?
Hey Ben , I've followed your tutorial it's great ! However when stacking models for an environment piece and moving the character along there is some sort of clipping , disappearing on/off of meshes whilst walking by them ? Do you know how to deal with that or 3d models shouldn't intersect ?
@@BenCloward ruclips.net/video/x_SkqLbSQrs/видео.html here is a demo . Once I've tried out the material on opaque there are no issues , so generally I guess Unreal doesn't support well translucent models overlapping
In the unreal ice shader when viewing light sources through the ice the light colour is inverted. White light = black. Seems to happen because of the add node before the lerp. Any idea lads ?
This kind of materials like water, ice etc. takes it's visuals from what they refract and what they reflect so if the environment they're in better, visuals will be richer and better. At this case I believe environment at the Unity side was richer and that scene actually Unity's demo to showcase the lighting and there are a lot of adjustments for that like light probes etc.
IMO, subsurface scattering works best on surfaces that are opaque - like skin or wax. Since I'm using a transparent surface, I prefer not using it. And I agree that the Unreal rock doesn't look at nice as the Unity one. I think that has more to do with the asset I'm using than the shader technique though.
@@BenCloward I think that you also left something unplugged in one of the multiply nodes in UE, the output of the CameraReflectionVector XY components seems to be unplugged in the "ice layer" closer to the surface. I love your videos, thanks so much for doing them! 🙂
@@BenCloward I hope you don't mind me asking, but which engine do you prefer overall, Unity or UE? I am about to start a small VR project, I was thinking of doing it in UE4 (I don't think UE5 is very good for VR at this point, right?), but I think Unity might be more performant in VR? Thank you! 🙂
@@arturoorgaz Since I work for Unity, I'm afraid my answer may be a bit biased. :0) But yes, I would say in general that Unity has a reputation for running faster on mobile and VR platforms.
Question: In UE5, the Nanite geo turns brown when I apply the Ice shader...like the material is not really applied or the Buffer can't render it in Viewport. Have you come across a solution for this Nanite anomaly? The Ice shader looks good in the material editor preview, weird. But Nanite looks untextured in the viewport. If I turn the Nanite "off, " the ice shader looks good. Something about Nanite that the Ice Shader does not like.
I don’t think Nanite objects can be transparent. They’re pretty limited right now in terms of shader options you can use with them, but Epic appears to be working hard to improve that.
You get a lot of issues with the temporal effects/TAA/TSU in unreal there. I assume you can mask out the ice from the temporal buffers, but that will make it look pretty rough... But as the same pixels has multiple different parallax layers, you can not really give the temporal buffers a correct motion vector. But, you might be able to at least give it something better than the automatic one. If you have any ideas on this I would love to see a discussion about it in a video. As this would be a problem in unity too if you used the same temporal effects.
I think that's the problem that the transparent material doesn't write motion vector. There is an option in HDRP's material to make the transparent material writes the motion vector, UE may also have this option but just forgot to turn it on.
@@Misaki_eku with transparent layers with parallax, there is no one motion vector that can represent all layers of the material. You can try to calculate on that I'm in between all the depth you use, but it will always suffer from more ghosting than opaque materials. That is just how temporal stuff works sadly.
Thank you very much for sharing all of this with us Ben. You're a godsent for tech artists wannabes
Thank you very much for the support, Darius!
This ice shader effect is really pretty cool!!!
Never thought that the same shader will look a lot better in Unity than in UE.
i prefer UE in general, but i admit, the unity shader is way better !
Finally I found a good channel with good tutorials! I would like to see how to create a realistic mossy shader! 😁
Hey Ben, I've noticed that on the ice shader in both implementation this causes the asset to render faces on the other side of the mesh that are facing somewhat towards the camera, or to explain it better, convex faces that are behind the polygons you're viewing, that are also oriented towards the direction of the camera. It's more visible at the 15:00 minute mark, on the left side of the ice. It seems like the effect is toned down when you have a higher value in the normal strength.
huge thanks for your big contribution to the gamedev community
Very nice shader! Thanks Ben 👍
UE. In addition to the error in connecting "Mask RG" which was already mentioned in the comment, you also have a value of 1 in the "FlattenNormal" node, which essentially means that you are supplying a solid blue color. In fact, it means that you just turned it off.
Ah, you're right. Thanks for the feedback. I guess I want a value like 0.9 so it's not completely gone, but it's pretty weak.
Thanks!
Really appreciate the support!
I remember the previous video on ice shaders! Looks great as always, thanks for sharing!
Nice! Thanks for being a long-time viewer!
@@BenCloward Do you know where i can find the Ice volume grayscale texture that you use?
Hi,Ben.Thank you for sharing the shader, it looks cool. For the Unreal shader , have you try check the output velocity in material detail panel ? and keep the opacity mask clip value as low like default. It will probably solve the TAA issue.
Thank you for the tip! I'll try it.
This fixed the TAA ghosting issue!
Wonderful tutorial as always!
Great video Ben! I know you mentioned that you'd cover a skin material already in the first video of this series, but I'd love it if you included several different methods of achieve a subsurface scattering effect, some of which are cheaper but don't look as good. In a similar format to what you showed in the video about blending normal maps.
Thanks Ben, handy tutorial, final result impressive!
Unreal struggling with TXAA, looks like issues with velocity buffer.
thank you so much for sharing ❤️ ... can we get the ice texture?
The unity one looks so much better. Why is that?
I assume the ghosting effect is from the temporal aa in unreal but the static result when you're not moving the camera still looks much better in unity.
I think it has a lot to do with the base asset I'm using. The one in Unity just lends itself better to being ice than the one in Unreal. I'm sure I could get better results in Unreal if I had a better asset. But the assets aren't the focus on my channel really, so I don't spend a lot of time on that.
@@BenCloward I see. Thanks.
I noticed how in some angles you can see the outside faces of the ice through it causing very weird looking shading (you can see it pretty clearly at 15:17 on the left), it looks pretty undesirable and would probably need to be fixed somehow
Hey, thanks a lot for this, it helped me very much! Let me ask you something, i used this material to make a ice floor in a snow environment, but i want to animate a car riding on top of this ice, and i need the shadow, but the problem is that the shadow passes the ice because it is translucent, do u know how to make the shadow stay on top of the ice or another way to use a plane as a shadow catcher or something like that?
As always, thank you very much :D
dont forget for frosted glass shader
That temporal ghost flickering effect is actually very... interesting. I'm wondering if there is any cheap way to achieve otherwolrdly effect like that in materials. I knew Dither Temporal AA node could achieve something similar but just couldn't control the flickering intensity.
Where can i find the Ice volume grayscale texture that you use?
Loved this, THANK YOU SO MUCH. Question, is there a way in UE5 to layer paint textures on Static objects (Not terrain)...Like Substance Painter?
Won't this cause problems where the UV seams are? I mean, it's a tileable texture but it's not unique for the mesh so I gues you can see where the seams are?
In this example that might not be a big problem because the normal map wil "hide" these seams. But wil it also look good on a smoother mesh?
Why didn't you connect the R and B channels from the Custom Reflection Vector to the multiply of the second tiled mask?
It was a mistake. I missed that connection.
@@BenCloward Did it stop the shader from acting weird?
Hey Ben , I've followed your tutorial it's great ! However when stacking models for an environment piece and moving the character along there is some sort of clipping , disappearing on/off of meshes whilst walking by them ? Do you know how to deal with that or 3d models shouldn't intersect ?
Hmm, hard to tell what the problem is just from the brief description you’ve given. Is this in Unity or Unreal? Any more details you can provide?
@@BenCloward ruclips.net/video/x_SkqLbSQrs/видео.html here is a demo . Once I've tried out the material on opaque there are no issues , so generally I guess Unreal doesn't support well translucent models overlapping
This looks great, fixed the ice blocks in my game! Is there a way to have translucent objects cast chadows?
Great vid!
In the unreal ice shader when viewing light sources through the ice the light colour is inverted. White light = black. Seems to happen because of the add node before the lerp. Any idea lads ?
Would be nice if I could Alt+ Move the nodes and the copys kept the input connections :o
thanks, grate tutorial
Any reason why the unity one is better? something to do with the lighting becuase there is less specular reflection happening in the UE scene?
This kind of materials like water, ice etc. takes it's visuals from what they refract and what they reflect so if the environment they're in better, visuals will be richer and better. At this case I believe environment at the Unity side was richer and that scene actually Unity's demo to showcase the lighting and there are a lot of adjustments for that like light probes etc.
Unity one looks good but not so much on the UE one
15:28 Ice shader in UE5
Holy shit this is amazing.
Why don't you use refraction nodes in Unreal?
I think you missing some SSS to. Ice has subsurface scattering to. The unity one looks great. The UE one looks the opposite.
IMO, subsurface scattering works best on surfaces that are opaque - like skin or wax. Since I'm using a transparent surface, I prefer not using it. And I agree that the Unreal rock doesn't look at nice as the Unity one. I think that has more to do with the asset I'm using than the shader technique though.
@@BenCloward I think that you also left something unplugged in one of the multiply nodes in UE, the output of the CameraReflectionVector XY components seems to be unplugged in the "ice layer" closer to the surface.
I love your videos, thanks so much for doing them! 🙂
@@BenCloward I hope you don't mind me asking, but which engine do you prefer overall, Unity or UE?
I am about to start a small VR project, I was thinking of doing it in UE4 (I don't think UE5 is very good for VR at this point, right?), but I think Unity might be more performant in VR?
Thank you! 🙂
@@arturoorgaz Since I work for Unity, I'm afraid my answer may be a bit biased. :0) But yes, I would say in general that Unity has a reputation for running faster on mobile and VR platforms.
@@arturoorgaz I did, yes. I wish the wires remained connected after pasting like they do in Unity.
Question: In UE5, the Nanite geo turns brown when I apply the Ice shader...like the material is not really applied or the Buffer can't render it in Viewport. Have you come across a solution for this Nanite anomaly? The Ice shader looks good in the material editor preview, weird. But Nanite looks untextured in the viewport. If I turn the Nanite "off, " the ice shader looks good. Something about Nanite that the Ice Shader does not like.
I don’t think Nanite objects can be transparent. They’re pretty limited right now in terms of shader options you can use with them, but Epic appears to be working hard to improve that.
@@BenCloward You are so RIGHT! Dang I should have known that. Thank you for that. Your Material Tutorials are AWESOME!
Really cool tutorial thank you ! I just don't understand why Multiply by 0. Is it a mistake ? Because multiply by 0, this whole part is useless then.
You get a lot of issues with the temporal effects/TAA/TSU in unreal there. I assume you can mask out the ice from the temporal buffers, but that will make it look pretty rough... But as the same pixels has multiple different parallax layers, you can not really give the temporal buffers a correct motion vector. But, you might be able to at least give it something better than the automatic one.
If you have any ideas on this I would love to see a discussion about it in a video. As this would be a problem in unity too if you used the same temporal effects.
I think that's the problem that the transparent material doesn't write motion vector. There is an option in HDRP's material to make the transparent material writes the motion vector, UE may also have this option but just forgot to turn it on.
@@Misaki_eku with transparent layers with parallax, there is no one motion vector that can represent all layers of the material. You can try to calculate on that I'm in between all the depth you use, but it will always suffer from more ghosting than opaque materials. That is just how temporal stuff works sadly.
pure magic :)
GREAT
why so flickering in unreal wersion of shader?
It's a combination of video compression and temporal anti-aliasing.
22:17