炸殺
카테고리
작성일
2020. 6. 7. 19:58
작성자
炸殺

 

 

 

NPR이란?

 

2020년 3월 말 출시한 국산 모바일 게임 '로드 오브 히어로즈'

Non-Photorealistic Rendering의 약자로 비사실적 렌더링을 의미합니다.

NR(Photorealistic Rendering, 사실적 렌더링)이 사진과 똑같이 만들어내는 것을 목표로 했다면,

NPR은 회화나 드로잉, 도해, 만화 처럼 인공적인 양식에 초점을 맞춘 그래픽 스타일 입니다.

 

NPR 기법 중에는 Cel shading/Toon shading등이 대표적입니다.

 

 

 

 

 

Cartoon Shader

 

https://bcgiu.wordpress.com/2015/03/01/toon-material-by-bnpr/

NPR에도 다양한 기술들이 존재하지만

가장 먼저 떠오르는 것은 만화적인 느낌을 살린 Toon/Cel shading 기법일 것입니다.

이 기법과 NR 스타일을 비교하였을 때 가장 눈에 띄는 특징은 '외각선''깔끔하게 나눠지는 음영 단계'등이 있죠.

물론 이 뿐만 아니라 다양한 기술을 통해 3D 그래픽에서 마치 2D 같이 보이는 효과를 보여주고 있습니다.

 

 

 

 

 

 

 

Out Line (외각선) 만들기

 

외각선을 만드는 방법은 크게 3가지로 나눌 수 있습니다.

 

 

 

  • 2Pass

 

Pass는 말 그대로 한 번 지나간다, 한 번 그린다..라는 의미를 가지고 있습니다.

그렇다면 2Pass는? 당연히 2번 그린다는 뜻이죠.

 

 

오브젝트를 복사하여 면을 뒤집고, 노말 벡터 방향으로 버텍스를 이동시킨 후 원본 오브젝트와 겹치면

마치 외각선이 있는 것처럼 나타나게 됩니다. 정말 말 그대로 오브젝트를 2번 그리는 것.

 

 

가장 흔하게 쓰이는 기법이지만 2Pass의 약점은 바로 버텍스를 노말 방향으로 확장한다는 것입니다. 

곡선으로 이루어진 오브젝트에서는 자연스럽게 외각선이 생성되지만

버텍스가 여러개 뭉쳐서 구현이 되는 하드엣지의 경우 노말 방향으로 버텍스가 확대 되기에 모서리가 벌어지며,

플렌처럼 뒷면이 없는 경우엔 외각선이 생성되지 않습니다.

또한 두 번 그리기 때문에 드로우콜도 그만큼 늘어나게 되죠.

 

 

 

 

 

  • Fresnel

Fresnel(Rim)을 이용한 방법입니다. 

 

Rim라이트를 외각선처럼 날카롭게 만들어 적용하는 기법으로,

선의 굵기가 마치 필압을 준 것 처럼 일정하지 않은 것이 장점이자 단점입니다.

또한 Normal Vector와 View Vector의 내적 값으로 만들어진 외각선이기 때문에 평평한 면에서는 작동하지 않습니다.

 

 

 

 

 

  • Post-Processing (후처리)

Post Processing을 이용한 후처리 효과로 Outline을 그리는 방법입니다.

 

이러한 후처리 효과를 이용하여 외각선을 그리는 방법은 여러가지가 있는데,

버퍼를 여러번 겹쳐 외각선을 뽑아내거나, 소벨 마스크/ 라플라스 필터 등의 외각선 검출 필터를 통해

깊이 값과 노말 값을 이용하여 외각선을 그릴 수 있습니다.

이러한 외각선 검출 필터를 사용하였을 때, 앞에 물체등이 생긴다던가의 깊이 값이 달라지면 문제가 발생하기에

적절히 섞어서 사용해야하며, 무겁다는 단점을 가지고 있습니다.