Great explanation on why you should expand the sides out a little bit when still in the modeling phase. If you keep it straight, what'll happen is that the height maps will have a sharper look. Nothing wrong it that, but it's easier to see if your sides are blurred/beveled a bit. Me personally, I'll do everything in Designer.
Great video! As a heads-up, at least in my UE4 version (4.27) you no longer need to set your height map to sRGB. It still works with sRGB but it can make your reference plane value shift. So my reference plane value should have been 0.5 (linear), but with sRGB checked I was getting a strange offset. Removing sRGB from the texture put my values back in the expected range. The trouble I'm having now is that I'm trying to do the same thing as your video but with floating decals and for the life of me I can't get the borders of the decal cards to go away. It's always very apparent there's a card there in the reflection.
Hey, I know this a late reply but might be helpful for someone. There is another video from @TechArtAlex titled "Parallax Occlusion Mapping Deep Dive EP: 1 - Filtering and Mips" where he sets the textures mipmap value mode to Derivate and adds the DDX and DDY. I tried this and the decal borders has gone.
@Grimmstar Outstanding tutorial! I have a problem with POM shadows, when I turn it on, unreal says that Light Vector can only be used in Deferred Decal or LightFunction material domains.
Great tutorial, great explanation & easy to understand. *THANK YOU!* Did you only use this method in your pipeline? I think with square uv segments you can switch in the engine easy from segment to segment on your Trim Sheet. I wonder if yout tried it out. And if so, what are the downsides of it compared to the method shown in this video. Thank you again! :)
We actually wound up moving away from this and using an approach that utilizes decals instead. It helped speed up development time for us, as we can simply drag planes to their appropriate spot rather than trying to UV everything twice. You can achieve this by simply changing the shader model to being a dbuffer decal with metal, rough, and normal information. Side note: Turning on tesselation for the POM deferred decal appears to fix some clipping/see-through errors that occur.
Late to the game but immensely informative video, as always :) it’s a bit tricky to choose between bump maps and poms for some scenarios but poms really packs a bunch Btw, something I forgot to ask earlier, are you using Ryan’s impostor baker for your octahedral impostors? Seems a bit cumbersome to integrate all the generation into a workflow as it is...
Glad we can help! The way I look at it, I use bump offset to essentially offset flat sheets of information. A good use case for this is effects inside our crystals. For things that need smooth depth, POM works great. This makes them great for hard surface details. As far as the impostor baker, yes, we used Ryan Bruck's baker with a couple of small tweaks. It makes the process rather quick and easy to get things converted and working well. There are still some slight glitches every now and then (like position potentially not matching 100%. More like 95%), but they're minor enough for us so far.
@@Grimmstar that’s a good distinction,thanks! I’m a little surprised the octahedral impostor stuff is such a hidden gem for the amazing possibilities they offer. I’d think someone would’ve made a tool to batch things more easily by now
Hi man, thanks for your awesome tutorial, I have a question and searched and asked a lot but still do not gotten a good answer, I'm new to Unreal and I want to make game assets, i want to add POM in my workflow. Im thinking about, making modular packs, i want to know how can I setup a POM that is nice and fairly cheap in the engine. one friend told me, that depending on the heightmap resolution, texture filtering settings, sample count, etc... and referring to my low experience in UE i don't know completely how to setup all of this.really appreciate if you help me
I have an issue where by multiplying texture index 0 (so my UV channel for textures, the POM details are on UV1) by parallax UVS it causes those textures to stretch. Do you know what might be the problem?
Those RGB sampler groups look like they might be a performance issue since they are each tied together with a lerp instead of dynamic branching or anything.
We're at just over 200 instructions for this material with 9/16 texture samples being used. Performance has been pretty good so far. But ,we're always looking to improve things. Have not heard anything about utilizing dynamic branching for the effect that we're going for and I can't seem to find anything that would be of assistance. Do you have any more details on what you mean?
@@Grimmstar Basically instead of switching between the different samplers with a lerp which still costs 3 samplers, you do it with a dynamic branch which means only 1 sampler is actually called for that pixel. It's a bit of a pain in ue4 right now since the "dynamic branch" node is broken, so you'd need to use custom hlsl. Not sure if it'd help for this specific material
Nice video but the workflow feels really weird for me. I mean is that how you use trimsheets? Making a simple object with two UVs to map the POM details onto the 2nd UV only to see those in the engine? Wouldn't it be easier to use these with transparent background as decals?
Im asking myself the same thing. Im using decals currently with floating geometry with 1UV and just an extra decal material , but there isnt enough depth, and this looks very cool but the 2nd UV workflow is weird too. And no trims arent used like this, trim sheets usually are just 1 material and you add cuts into your mesh. Is it even possible to use POM with floaties?
@@coffeediction so you are using a trim with alpha that is technically mesh plane and is placed super close to the other surface? that how I'd try really. and if we are talking about that thing then yeah that's quite an interesting to try add POM to these geodecals. I really neither used any type of decals nor POM ever, so I don't know.
I’m getting a weird effect that makes the POM element look transparent. It almost looks like the texture maps are also showing up on the surface of the mesh appearing as though it is underneath the POM element. Any idea why this is? Edit: it appears to have something to do with the Base UV under UV Tiling. When I disconnect it the transparent effect goes away. Edit 2: I think I got it maybe. I set my Height Channel alpha to 0 and multiplied my base UVs by 0. It appears to work but I’m not sure this is the “correct” solution.
Great video, it helped me a lot! One question though... in my situation I've got a plane which is placed just above a mesh with a tileable material. On that plane is my pom material. How would I make the the black colour in my colour map to be translucent? which would result in the pom showing only the normal wherever the colour map is black?
We've actually changed our methodology on this to match what I believe you're talking about. We're now using POM trimsheets as decals instead of as second UV sets. There are a number of sources to find multiple methods of doing this online. The Unreal forums specifically are a good source.
@@Grimmstar Would you consider making a video presenting how it is done and applied within Unreal? POMs, like other Unreal topics, are suffering from over-information, hence it is very difficult to find something useful online unless maybe, you really know how to search it. Edit, and would that work with UE5 specifically?
This is interesting, but I am still so confused. maybe I'm not meant to make trim sheets. (you are the 6th person I watched on how to do this and still don't get it) not your fault, this is an excellent video. I'm just lame. :)
Dude, you can just put a plane underneath the floaters to get rid of edge aliasing while baking, you dont have to connect the outside of the decals.... waste of time
Can you please explain what you mean? What floaters? In which step would a plane be put underneath something? And what are you referring to when you say "connect the outside of the decals"? There are no decals in this video, which is why I'm asking what you mean.
@@Grimmstar In Maya minute 6.05 and so on, all those insets andholes that go inside, you dont have to connect and triangualte the borders to create a watterthight geometry. Instead you can just make individual floaters with their border expanded a little it to get the medium 127.127.127 color outside of them on your height map. It is more flexible if you want to change their pattern or position, add more stuff, etc. Just saying. Good luck! Very informative video, btw!
good but my only questions are "why xnormals instead of substance"? Makes it look like substance cant do what xnormals can and why 2nd UV channel, if decals are used as floaties? Thanks otherwise!
MINE WAS FLAT ...!! I FORGOT TO TURN ON SRGB !!! NOW IT WORKS FINE ..!! THANK YOU SOO MUCH !!
Somehow I knew Star Citizen would be mentioned lol!
Great explanation on why you should expand the sides out a little bit when still in the modeling phase. If you keep it straight, what'll happen is that the height maps will have a sharper look. Nothing wrong it that, but it's easier to see if your sides are blurred/beveled a bit.
Me personally, I'll do everything in Designer.
thank you for this! I hope you'll make more tutorials/breakdowns like this in the future, you're terrific at it.
Thanks for taking the time to put this together. It was a great explanation. I learned a lot.
Glad we could help out!
POM POM POM POM - Instant subscription, great tutorial with great explanation and comfort to the viewer. Thank you so much for it!
excellent video, thank you so much!
Cool... Thanks for video!
Great video! As a heads-up, at least in my UE4 version (4.27) you no longer need to set your height map to sRGB. It still works with sRGB but it can make your reference plane value shift. So my reference plane value should have been 0.5 (linear), but with sRGB checked I was getting a strange offset. Removing sRGB from the texture put my values back in the expected range.
The trouble I'm having now is that I'm trying to do the same thing as your video but with floating decals and for the life of me I can't get the borders of the decal cards to go away. It's always very apparent there's a card there in the reflection.
Hey, I know this a late reply but might be helpful for someone. There is another video from @TechArtAlex titled "Parallax Occlusion Mapping Deep Dive EP: 1 - Filtering and Mips" where he sets the textures mipmap value mode to Derivate and adds the DDX and DDY. I tried this and the decal borders has gone.
Thank you so much for this tutorial!
Super cool stuff, thanks for sharing.
amazing breakdown!
That's an awesome video! Im going to try all it sooner or later!
Glad to hear! Let us know if you have any questions about the process :)
Thank you so much!!! I learned a lot!
Super useful, thank you for this
It is looks great, do You know how to implement rotator in this POM material? There is no info about that.
@Grimmstar Outstanding tutorial! I have a problem with POM shadows, when I turn it on, unreal says that Light Vector can only be used in Deferred Decal or LightFunction material domains.
I need this game
POM
All I remember from this video is POOOOOOMMM !!!
Great tutorial, great explanation & easy to understand. *THANK YOU!*
Did you only use this method in your pipeline? I think with square uv segments you can switch in the engine easy from segment to segment on your Trim Sheet.
I wonder if yout tried it out. And if so, what are the downsides of it compared to the method shown in this video. Thank you again! :)
We actually wound up moving away from this and using an approach that utilizes decals instead. It helped speed up development time for us, as we can simply drag planes to their appropriate spot rather than trying to UV everything twice. You can achieve this by simply changing the shader model to being a dbuffer decal with metal, rough, and normal information. Side note: Turning on tesselation for the POM deferred decal appears to fix some clipping/see-through errors that occur.
@@Grimmstar Does using decals cause lots of draw calls? Also, where do you put the decals on? In a blueprint?
Great tutorial!!!
Late to the game but immensely informative video, as always :) it’s a bit tricky to choose between bump maps and poms for some scenarios but poms really packs a bunch
Btw, something I forgot to ask earlier, are you using Ryan’s impostor baker for your octahedral impostors? Seems a bit cumbersome to integrate all the generation into a workflow as it is...
Glad we can help!
The way I look at it, I use bump offset to essentially offset flat sheets of information. A good use case for this is effects inside our crystals. For things that need smooth depth, POM works great. This makes them great for hard surface details.
As far as the impostor baker, yes, we used Ryan Bruck's baker with a couple of small tweaks. It makes the process rather quick and easy to get things converted and working well. There are still some slight glitches every now and then (like position potentially not matching 100%. More like 95%), but they're minor enough for us so far.
@@Grimmstar that’s a good distinction,thanks! I’m a little surprised the octahedral impostor stuff is such a hidden gem for the amazing possibilities they offer. I’d think someone would’ve made a tool to batch things more easily by now
Hi man, thanks for your awesome tutorial, I have a question and searched and asked a lot but still do not gotten a good answer, I'm new to Unreal and I want to make game assets, i want to add POM in my workflow. Im thinking about, making modular packs, i want to know how can I setup a POM that is nice and fairly cheap in the engine. one friend told me, that depending on the heightmap resolution, texture filtering settings, sample count, etc... and referring to my low experience in UE i don't know completely how to setup all of this.really appreciate if you help me
I have an issue where by multiplying texture index 0 (so my UV channel for textures, the POM details are on UV1) by parallax UVS it causes those textures to stretch. Do you know what might be the problem?
Those RGB sampler groups look like they might be a performance issue since they are each tied together with a lerp instead of dynamic branching or anything.
We're at just over 200 instructions for this material with 9/16 texture samples being used. Performance has been pretty good so far. But ,we're always looking to improve things. Have not heard anything about utilizing dynamic branching for the effect that we're going for and I can't seem to find anything that would be of assistance. Do you have any more details on what you mean?
@@Grimmstar Basically instead of switching between the different samplers with a lerp which still costs 3 samplers, you do it with a dynamic branch which means only 1 sampler is actually called for that pixel. It's a bit of a pain in ue4 right now since the "dynamic branch" node is broken, so you'd need to use custom hlsl.
Not sure if it'd help for this specific material
@@TorMatthews Can definitely look in to it. Thanks for tidbit!
Nice video but the workflow feels really weird for me.
I mean is that how you use trimsheets? Making a simple object with two UVs to map the POM details onto the 2nd UV only to see those in the engine? Wouldn't it be easier to use these with transparent background as decals?
Im asking myself the same thing. Im using decals currently with floating geometry with 1UV and just an extra decal material , but there isnt enough depth, and this looks very cool but the 2nd UV workflow is weird too. And no trims arent used like this, trim sheets usually are just 1 material and you add cuts into your mesh.
Is it even possible to use POM with floaties?
@@coffeediction so you are using a trim with alpha that is technically mesh plane and is placed super close to the other surface? that how I'd try really. and if we are talking about that thing then yeah that's quite an interesting to try add POM to these geodecals.
I really neither used any type of decals nor POM ever, so I don't know.
Hey i'd like to know for POM shapes, does it come from the imagination of the artist or does it have a concept to make them in a studio
I’m getting a weird effect that makes the POM element look transparent. It almost looks like the texture maps are also showing up on the surface of the mesh appearing as though it is underneath the POM element. Any idea why this is?
Edit: it appears to have something to do with the Base UV under UV Tiling. When I disconnect it the transparent effect goes away.
Edit 2: I think I got it maybe. I set my Height Channel alpha to 0 and multiplied my base UVs by 0. It appears to work but I’m not sure this is the “correct” solution.
Great video, it helped me a lot! One question though... in my situation I've got a plane which is placed just above a mesh with a tileable material. On that plane is my pom material. How would I make the the black colour in my colour map to be translucent? which would result in the pom showing only the normal wherever the colour map is black?
We've actually changed our methodology on this to match what I believe you're talking about. We're now using POM trimsheets as decals instead of as second UV sets.
There are a number of sources to find multiple methods of doing this online. The Unreal forums specifically are a good source.
@@Grimmstar Would you consider making a video presenting how it is done and applied within Unreal? POMs, like other Unreal topics, are suffering from over-information, hence it is very difficult to find something useful online unless maybe, you really know how to search it.
Edit, and would that work with UE5 specifically?
Nice
good day! can you drop the download link for this material?
A fellow Star Citizen and game developer.
can this be used in games??
Parallax Occlusion is normal maps on steroids
POOOOOOOOOOOOOOOOOOMMMMMMMMMMMMMM !
This is interesting, but I am still so confused. maybe I'm not meant to make trim sheets. (you are the 6th person I watched on how to do this and still don't get it) not your fault, this is an excellent video. I'm just lame. :)
paaaaammn
LOL... "For those of you who may be wondering what parallax occlusion mapping is, well think of it as normal maps but on crack."
Dude, you can just put a plane underneath the floaters to get rid of edge aliasing while baking, you dont have to connect the outside of the decals.... waste of time
Can you please explain what you mean? What floaters? In which step would a plane be put underneath something? And what are you referring to when you say "connect the outside of the decals"? There are no decals in this video, which is why I'm asking what you mean.
@@Grimmstar In Maya minute 6.05 and so on, all those insets andholes that go inside, you dont have to connect and triangualte the borders to create a watterthight geometry. Instead you can just make individual floaters with their border expanded a little it to get the medium 127.127.127 color outside of them on your height map. It is more flexible if you want to change their pattern or position, add more stuff, etc. Just saying. Good luck! Very informative video, btw!
good but my only questions are "why xnormals instead of substance"? Makes it look like substance cant do what xnormals can and why 2nd UV channel, if decals are used as floaties? Thanks otherwise!