Pixel Depth Offset

Can someone help to underestand what it is and how can be used the Pixel Depth offset in a material?

Thanks to every one

You can push pixel depth value outwards using per pixel offset. This allow softer clipping and procedural details.

Thanks Kalle-H

Is this going to modify somehow the mesh?

this feature is really nice, can you provide some examples? C

'cause I did it And what I found did not satisfy me.
The first link Depth Material Expressions in Unreal Engine | Unreal Engine Documentation speak about depth expression.
the second link lead us Foliage pixel depth offset - Rendering - Unreal Engine Forums which is, in my opinion, not a complete answer.
the third llink is an incomplete reply https://answers.unrealengine.com/questions/241695/material-pixel-depth-offset-and-shadows.html

Now, I’m sorry If I did not specify that I’ve searched. But I’ve done it. My doubts remains.


In ContentExamples project you will find map called ParallaxOcclusionMapping. There are few good examples of PixelDepthOffset usage.

Hi. What I saw is just a bunch materials using the Pixel Depth Offset plug out of a Parallax Occlusion Mapping function that returns a spaggetti of nodes and connections. So dirty that makes me laugh. What a mess…

I’m still investigating. It’s ridiculous the official documentation says nothing about the values it expects or any example to learn how to use it. Not even in the code I find a piece of information about it.

AFAIK there is not much to explain if you are familiar with shaders, it’s just offset that is added to the original pixel depth, and then this value is saved in depth buffer instead of the original one (and depth test is done against this value).


Kind of late, but for anyone else stumbling across this as I did, is PixelDepth Offset like what I am familiar with in old school “bump mapping” where the input is a gray scale image and the output would render the material using the gray scale image to produce a simulated 3d texture (like what using normals do, but with a grayscale image instead of color) and the stronger the camera angle off of the perpendicular to the face the less the effects has and eventually will be flat?

Pixel Depth offset (or PDO for short) essentially pushes the pixels back or forward from the camera. his can be usefull for blending against other objects with the dither TAA node (or a custom dithering node). you will also see it used in hair rendering to add some sorting and depth into hair strands

Actually, the PDO never subtract the depth, so all values should be positive. This is, if you add offset to a cube, the cube can only go further away, never closer to the camera as the initial position of the geometry.

Aside from that, its a good way of adding extra detail to intersections( usually on texture based detail, such as parallax techniques or bump mapping)

1 Like

You experienced users really know how to not explain things well. Some people are new to the engine, and could seriously be helped by a bit of defining of terms and what is academically referred to as technical jargon. It’s kinda similar to knowing what a wrench is, but not knowing the various ways it can be utilized in a car engine.


What I’d really love to see is how to use this by itself. I know I can pump the outputs of ParallaxOcclusionMapping into this, but I’d like to get a better feel for it by getting it working with something simpler, like a texture map or normal map or something directly, if that’s possible.

Re: “just search,” this is a top result on Google right now.

@dellis23 check this guy work : Free Project: Distance field terrain blending — Elliot Gray

If I dont’t see pixel depth offset option in my material, How can I add this attribute?
Plase anyone gudie me?