opaque object with multiple opaque materials as transparent, custom depth? - Urgent help needed.

Hi.

I have a character with multiple complex materials and I have to do an holographic version of it, I would like to render the character as transparent but without changing material, more like if I put it in a different photoshop layer and I lower the transparency of that layer, not the translucency of the materials.

Please, can someone help me out? This is urgent since it’s a last minute change from the client and I’m a bit lost on how to achieve this.

Thanks!

You cannot change opaque material to transparent in any other way than in material.(or material instance). When you render opaque object everything behind it is culled.

@Kalle_H but if I separate it in a different depth channel, is it like cutting it away?

My idea is to modify the opacity in general of the multiplication of that depth channel with the standard, similar to what is done int he outline or see-through tutorials out there.

This should be possible, isn´t it?

Nope. There is just single layer of shaded pixes in deferred rendering. If you would set some pixels as transparent there you would only see black behind it.
One way you could do this is to render hologram character to render target. Then render hologram as transparent material that read from that render target. This is what I would do.

Thanks for the answer @Kalle_H

I finally solved it, I used a separated render target to render it over the main layer in a different depth channel just the “holographic” part of the character, but I could not solve the transparency problem, but in the end it works fine :wink:

Cheers!

^ yeah we have a lot of transparent objects that need to highlight via SetCustomRenderDepth() and solved it in a similar way.

  • attach a dupe mesh (“Render Depth Proxy”) but with the world grid material or non-transparent material
  • proxyMesh->SetRenderInMainPass(false);
  • proxyMesh->SetCastShadow(false);
  • proxyMesh->SetCollisionEnabled(ECollisionEnabled::NoCollision);

Exactly, that was the solution :slight_smile: