참고하고있는 Assassin's Creed를 보면 암살할 적을 보여주기위해 암살타겟 적에게 외곽선을 그려준다. 최근 게임에서는 자료를 찾기 힘들어 어크2를 가져왔는데 어크2에서는 전체 머티리얼의 외각 부분을 밝은색으로 설정해준것 같다. 아마 비용생각을 해서 이렇게 구현한것 같다. 우리는 Unreal의 Postprocessing을 사용해 Custom Depth으로 표현해주자.
해당 방법은 메쉬를 두 번 렌더링 하는 방법이다. 원래 출력되는걸로 화면에 출력하는 것 한번, 그 후 포스트 프로세스로 외곽선을 출력하는 것 한번 총 두번이다.
Pixel Depth
: 현재 렌더링되고 있는 픽셀의 깊이 또는 카메라에서의 거리를 출력하는 표현식
픽셀 자기 자신의 Depth 값
자기 자신을 둘러싼 픽셀의 Depth의 합
위의 Depth을 이용해 픽셀의 외곽 여부를 구할 수 있음
메쉬 바깥 픽셀: 0, 메쉬 테두리 픽셀: 1, 메쉬 내부 픽셀: 1 로 정규화
메쉬 바깥 픽셀: 1, 메쉬 테두리 픽셀: 1, 메쉬 내부 픽셀: 0 로 정규화
두 결과를 곱하여 메쉬 테두리 픽셀을 구함
해당 결과를 postprocess로 출력하기 위해 Lerp
내가 생각한 방법은 대학 멀티미디어 시간에 배운 방법을 사용하려 했다. 마스크의 픽셀 값을 사용하여 픽셀 값이 급격히 변화하는 부분을 에지로 검출하는 기능이다. 하지만 이 방법을 사용하면 색이 다른 부분 모두 에지로 검출될것이다. 액터의 외곽만이아니라 카툰처럼 내부도 모두 에지로 검출되니 해당 방법은 지금상황에 맞지 않은 방법이었다. 저학년때 수강한 과목이라 하나를 배우면 하나만 알고 지나갔는데, 수강할 당시에 에지를 찾는 다양한 방법을 찾아봤으면 좋았을 것 같다. 항상 배우고 관련된 내용을 찾아보는 습관을 들여야겠다.