Unreal Engine Hologram Material

Inspired by Star Wars: The Old Republic, I attempted to re-create the hologram shader that is frequently used during their conversation system.

Hologram shader in Star Wars: The Old Republic
Star Wars: The Old Republic

To re-create this shader I built a transparent material with a pattern mask which is applied to the mesh in screen space, this way the lines are of constant size for the viewer and won’t alias or blur together when viewed from a distance. For lighting a simple fresnel is applied and for a slightly more interesting effect a line scrolls over the mesh every few seconds (again, replicated from the original effect) this is a bit difficult to notice in the video however. Finally, to cull the inner/overlapping triangles I render the character in a Custom Depth pass (UDK had a similar feature built-in for hair sorting which is no longer available in Unreal 4) this adds a nice coherent outer skin as you can see below.

Hologram with Depth Tested Translucency

The complete effect is best demonstrated in a video.

It lacks the distortion effect which is common for any science fiction hologram effect. If I decide to continue with this effect that is the first thing on my list to figure out…

Just one more for good measure. (Left is corrected, Right is w/o depth testing)

Hologram Comparison

15 Responses

  1. Hey Tom thanks for sharing this material ^^ but i have a problem when I put the materials and textures in my game the materials have errors and there are missing the files for the “diffuse Influence Map”s in the materials could you help me by telling me what should go there pls

    Kind regards

    Luis

  2. Hey Tom, Im stuck with trying to get Render Custom Depth to work for translucent materials like glass? How would I go ahead with doing that? Thanks Tom.

    • Unfortunately that still doesn’t work. You’ll need a second copy of the same mesh with a simple opaque material applied. You can uncheck the Render Main Pass checkbox next to the checkbox of Render Custom Depth of that second mesh. This will hide it from the main scene (so you only see your glass mesh) but can still use it to render into Custom Depth.

      – Tom

  3. Hey there Tom,

    Seems like you are THE guy to follow if you wanna learn Unreal. So here goes!

    I was recently asked to play around in Unreal, since I had small experience with Unity. However I feel completely dumb in front of that software…..
    If I’m not mistaken, you are using your PP_OutlineCustomDepth (or Inst) to produce that hologram effect. Somehow it just won’t do a thing in my scene….
    Is there something I must enable in the Project Settings or through PostProcess to get it to work? Am I supposed to be able to see results in the Editor?
    Right now, the cylinders using that “Material” are simply rendering opaque white…..

    Hoping you’ll be able to enlighten me on this!

    Keep up the good work!

  4. Hi, I am one of the artists at Epic Games. I found this by searching to show somebody else an example of the custom depth usage. I have to say I am impressed by your usage of custom depth to compare to current pixel depth to reject pixels which are further than the rendered custom depth. Very nice!!

    • Thanks! I’ve found a great deal of uses for this type of rendertarget, my only complaint is that there is only one! :) I’d be nice to have a flexible number of RTs since some game prototypes would benefit a lot from having more than one.

Leave a comment on this post!