기본적인 내용은 동일하나 스텐실 값을 비교한다는 점에서 차이가 있다.
static mesh 의 Rendering 설정에서
Render CustomDepth Pass 를 활성화 하고
CustomDepth Stencil Vlaue 에 원하는 값을 지정하면 된다.
1. 두께 설정 : 텍셀의 크기에 따라 라인의 두께를 설정한다.
ScreenTexlSize -> Component Mask(R) * 두께
ScreenTexlSize -> Component Mask(G) * 두께
위 값을 2차원 벡터로 만들고, 역방향 벡터들을 만든다. : AppendVector
총 방향은 8개.
각 방향별 ScreenPosition UV 값을 더해 실제 UV 좌표를 얻는다.
2. ScenTexture : Custom Stensil
각 UV 의 스텐실 값 얻기
각 방향의 최대 값 얻기 : 최대값이 0 이면 해당 픽셀 주변에는 스텐실 설정이 없음~
8곳 방향을 검사해 스텐실 여부만 확인하므로, 각 값을 보유할 필요는 없다.
이 예제에서는 MAX 값만 얻고 최종적으로Clamp max=1 로 스텐실 여부만 판단.
만약, 스텐실 값 별로 다른 색상 등 처리하려면 별도로 빼서 색상 선택하는 부분 추가 필요하다.
위는 현재 픽셀의 스텐실 값을 가져와 OneMinus 을 사용해 값을 반전시켜
스텐실 값이 있으면 0, 일반 픽셀이면 1을 리턴하게 한다.
스텐실 값이 있는 경우 외곽선이 아니므로 아웃라인을 그리지 않는다.
아래 그룹은 Occulusion 을 체크하고, 알파값 상수를 추가해 준다.
CustomDepth와 SceneDepth 값이 다르면 표시하지 않게 된다.
현재 픽셀은 일반 픽셀값이면 1
주변 픽셀에 스텐실 값 있으면 1
Occulusion 체크하고 원하는 알파값 셋팅
등으로 처리가 완료된다.
'프로그래밍 > Unreal' 카테고리의 다른 글
[UE4] 폰트 (0) | 2017.09.26 |
---|---|
[UE4] C++ 에셋, 오브젝트 레퍼런싱/객체생성 (1) | 2017.09.25 |
[UE4] CSV 파일 (0) | 2017.09.24 |
[UE4] unreal delegate (0) | 2017.09.24 |
[UE4] 마우스 입력 (0) | 2017.09.17 |
[UE4] 메쉬 외곽선 효과 (0) | 2017.09.15 |
[UE4] 언리얼 기본 예제 분석 (0) | 2017.09.13 |
[UE4] Line Trace (0) | 2017.09.12 |
[UE4] 액터 (0) | 2017.09.12 |
[UE4] C++ 기본 사항 노트 (0) | 2017.09.06 |