Training Stream - Depth and Location Based Effects - Sept 22nd, 2015

Alan Willard discusses different depth and location-based effects, like hiding objects that the player is behind relative to the camera.

Tuesday, September 22th @ 2:00PM-3:00PM ET - Countdown]


Alan Willard - Sr Developer Relations Technical Artist

Feel free to ask any questions on the topic in the thread below, and remember, while we try to give attention to all inquiries, it’s not always possible to answer everyone’s questions as they come up. This is especially true for off-topic requests, as it’s rather likely that we don’t have the appropriate person around to answer. Thanks for understanding!

Edit: Youtube archive is located here:

Interesting, i always like Alan stream!

Ehm, title of thread say 15th September :wink:

There is an issue that I’ve been running into in the past when dealing with depth related effects. Effects like outlining a selected object or highlighting an occluded object rely on the custom depth buffer. But what if I wanted to have multiple independent effects like this? Is there a way to use multiple depth buffers or would that be too taxing anyway?
I think a good solution to these kind of masks could also be to add a Custom Depth output to material nodes. You could then output different uniform values to toggle certain post processing effects. Of course if wouldn’t really be actual “depth” information at that point.

Fixed the thread title. Copy/paste error. :slight_smile:

Do this threads still accept questions for the stream? If yes, then here’s one that’s been bugging me for a while, but upfront warning, it’s a big one:

The idea I had for these is what most people start with - do a line trace from the player to the camera, get all objects in its path and switch their material to some transparent material that has the same texture (or perhaps not), depends on the effect I guess, but I digress.

Point is, you have to keep track of all these object’s materials and look up their transparent equivalents so you can switch back and forth. This seems awfully excessive. And obviously you can’t change the blend mode of a material at runtime so that’s a no-go too. What is a good method for this to work efficiently with a ton of objects?

I was wondering the same thing too.

What about in an top-down camera scenario (like an RTS or Dota/Torchlight style), where there are multiple characters on the screen, some might be fully or partially behind a building for example. In these cases you would want to either outline the part of the character that is obscured or smoothly transition the building to a translucent version of its material as the camera comes closer (or as a character comes closer) to the building.


I second that and would really like to see how you can easily determine if an object is occluded by one or more walls and fade them out. I’d also like to see how to outline occluded objects either fully or only the occluded parts.

Looking forward for the stream! :slight_smile:

Camera Tricks & Wizardry !!! Watch in Amazement as Alan makes things disappear right before your very eyes! :cool:

Awesome, I love effect streams… =)

Awesome! But due to my slow internet speed, I’m gonna have to watch the youtube replay. Is this stream post-process effects related?

Just commenting to say I love Alan <3

I would like to draw a red outline on a character that is occluded (like an enemy crouching behind a wall).

Can someone explain what this is really for? He seemed to say this was for a Diablo style system of fading out static meshes, but if you have to put a special material on every mesh for it to be masked out than I really dont see how this could be useful. I’m sorry maybe I’m missing something. Is there some way to add material to a static mesh without changing how it looks? How are you supposed to use this?

Doesn’t work. Custom Depth is a single channel render target, so you only ever have values from 0-1. You could try to isolate them once layered on top of one another, but it’s far less than ideal.

What I’ve always wanted, and have been asking for since before the beta days, is an optional custom RGB buffer that you can draw anything to via the material nodes, and use however you want.