
직역하면 깊이 교차로?
화면 공간에서 오브젝트와 씬 깊이를 비교해서
“겹치거나 가까운 경계 영역”을 찾아
그 부분에만 쉐이더 효과를 적용하는 기법

| 항목 | Scene Depth (빨간선) | Screen Position(초록선) |
|---|---|---|
| 의미 | 화면에 이미 그려진 픽셀의 깊이 | 현재 픽셀의 화면 좌표 |
| 타입 | 스칼라 (float) | 벡터 (float2 / float4) |
| 역할 | 얼마나 멀리 있는지 | 화면 어디에 있는지 |
| 용도 | 깊이 비교 | 텍스처 샘플링 좌표 |
이 두 노드를 이용해서
Screen Position으로 화면 좌표를 얻고,
Scene Depth로 해당 위치를 씬 기준으로 깊이를 샘플링한 뒤,
현재 오브젝트의 깊이와 비교해서 값이 거의 같은 영역(경계)에 쉐이더 효과를 적용하는 것
주의점!
Scene depth는 필요에 따라 변경가능하지만, 바라보는 위치에서 쉐이더가 적용되어야하면 Eye(카메라)로 해줘야하고,
Screen position은 Raw로 설정해야 w값이 제거되지 않고 사용가능!
기본개념은 엄청 간단함
scene depth - screen position.w(a, 깊이)를 해주면 된다.

다만 값이 너무 커지는 경향이 있어 saturate를 통해 0,1로 범위를 잡아줌.

그럼 이런식으로 경계부분에 검은색으로 칠해짐
gradient로 보이는 부분은 픽셀마다 계산을 하기때문에
0~1사이로 모두 연결이 되는 값들이라 gradient처럼 되는거임
이걸 해결하려면
step으로 아예 gradient를 없애거나
smoothStep으로 gradient를 조절하면 됨
depth intersection 계산

핵심은 bend size로 보여질 intersection부분의 크기 정해주기
원하는 텍스쳐로 설정해주기

핵심은 intersection의 결과는 경계선이 검은색(0),
지정한 step종류에 따라서 그 외의 공간은 흰색(1 혹은 gradient),
그걸 유의해서 검은색부분, 흰색부분 원하는대로 설정 후 텍스쳐, 컬러 연결ㄱㄱ
alpha조절
핵심은 intersection의 결과는 경계선이 검은색(0),
지정한 step종류에 따라서 그 외의 공간은 흰색(1 혹은 gradient),
따라서 경계선 부분을 투명하게 하려면 그대로 alpha에 연결,
흰부분을 투명하게 하려면 반전(one minus)를 해서 연결

굳~
외곽선을 추가하는 용도이다

현재 다른 오브젝트에 가려지면 해당부분은 잘 표시되는데 반해
빨간점선으로 그린 영역의 외곽선이 표시되지 않아 쉐이더가 어색해보인다
기본개념은 다음과 같음
ADD해줌
이렇게 빨간부분을 조심해서 depth intersection + fresnel을 해주고 alpha에 연결하고

대충 이런 텍스쳐랑 색을 넣어주면

경계선 + depth intersection까지 되는 텍스쳐 완성