논문을 읽고 이해한 부분을 풀어서 작성한 포스트임을 밝힙니다
http://cg-korea.or.kr/controllers/download.php?fileID=156
연필 렌더링이란
3d 이미지로부터 이렇게 연필로 그린 것 처럼 렌더링한다는 의미이다
non photorealistic rendering의 일종이라고 볼 수 있다.
삽화풍 혹은 비 실사 렌더링을 위한 알고리즘은 여러가지가 있는데
지금 소개하는 연필 렌더링 처럼 붓/펜/연필 등 사람이 그림에 사용하는 소재를 이용한 텍스쳐를 생성하여 2차원 상에서 맵핑 혹은 시뮬레이션하는 방법이 있고,
외곽선 강조, 면 색 단순화, diffuse warping 등 형태를 단순화하고 강조함으로써 만화처럼 렌더링 하는 방법 등등이 있다.
이러한 기법은 상당히 오래전부터 발전되어왔다.
이 논문은 기존의 도구 렌더링 기법을 '실시간' 연필 렌더링을 소개하고 있다는 점에서 의의가 있다고 보면 될 것이다.
렌더링 그래픽스가 정말 재미있는 이유는 시각적으로 사람이 어떻게 이미지를 생성하고 인식하는지를 먼저 분석하고 그것을 바탕으로 알고리즘을 구현하기 때문이라고 생각한다.
이 논문에서 소개하는 연필 렌더링 또한 사람이 연필로 그림을 그릴 때 발생하는 여러가지 환경을 분석하고 그것을 수학적 구현으로 옮겨두었다.
먼저 결과물부터 살펴보면 이미지 외곽선이 짙게 그려져 있고 그 내부에 밝기에 따라서 연필로 슥삭슥삭 그린것 같은 텍스쳐가 맵핑되어 있다. 그 외에 사람이 그린 것 처럼 약간의 서툰 랜덤성을 부여하기 위해 여러가지 처리가 필요했을 것이다. (예를 들어 사람은 외곽선을 그릴 때 컴퓨터처럼 깔끔하게 그려내기 보다는 여러번 겹쳐 그린다던지 약간의 오차가 생길 수 있다.)
개요
먼저 (1) 외곽선 (2) 내부 텍스쳐 맵핑 으로 순서가 나뉘며 종이의 질감 살리기, 명암비 조정 방법에 대해 소개한다고 한다.
1. 서론
연필은 편리하고 보편적인 매우 좋은 도구이다. 라고 운을 떼고 있다.
기존에는 3차원 메시를 입력받아 시뮬레이션을 통해 완전 연필로 그린 것 같은 이미지를 만들어내는 알고리즘이 제시된 바 있고, 2차원 영상을 연필로 그린 것 처럼 후처리하는 알고리즘도 있었다.
3차원 메시를 선영하는 기법은 이미 제시되어왔지만 실시간으로 구동하기에는 무리가 있다.
그리고 펜, 잉크 등을 묘사하는 알고리즘은 있어도 '연필'을 묘사하는 알고리즘은 없었다. 라고 한다
(논문들을 살펴보면 기존에 존재하지 않는 시도를 높게 평가하는 것 같다.)
요렇게 시작되고 있으며
제시하는 피쳐들은
(1) 윤곽선 겹쳐 그리기
(2) 내부 그리기
(3) 텍스쳐 생성
(4) GPU 기반 실시간성 보장
이렇게 크게 4가지라고 한다.
2. 관련 연구
관련 연구는 여러가지가 있어왔다.
실제로 연필/지우개/문지르개 등의 특성으로 시뮬레이션하는 알고리즘 - 실시간에서는 무리
2차원 영상 후처리를 통한 연필화 생성
lod를 고려하여 3차원 텍스쳐, 선의 밝기 조절을 통한 실시간 선영 기법
등
'실제 연필화를 그릴 때에는 윤곽선을 먼저 그리고 내부를 칠한다'
라고 가정하고 있다.
그래서 윤곽선 그린것과 내부를 칠한것 두개를 따로 만든 후에 합성한다.
윤곽선을 그릴 때에는 픽셀 쉐이더를 이용해 영상 공간에서 작동한다.
(1) depth map, normal map 렌더링 후 이 정보를 이용 윤곽선을 찾는다.
이 과정에서 사용된 윤곽선 찾기 알고리즘은 해당 논문에서 심도있게 다루는 부분이 아니어서 자세한것은 생략되어 있다.
(2) 이 윤곽선에 약간의 오차를 주어 여러번 겹쳐 그린다. 이것을 위해 왜곡된 평면을 준비한다.
내부를 칠할 때에는 다음과 같다
(1) 우선 메쉬의 밝기를 계산한다.
(2) 메쉬 양감 강조를 위해 명암비 조절
(3) 연필 텍스쳐를 메쉬 곡률에 따라 회전시켜 세 방향으로 혼합시킨다. 곡률 방향은 버텍스 쉐이더에서 계산한다.
(4) 종이의 재질감을 살리기 위해 랜덤 법선 맵을 준비하고 연픽 텍스쳐를 그릴때 적용시킨다.
실시간 구동을 위해 전처리에서 연필 텍스쳐나 법선 맵 왜곡된 평면 등은 미리 만들어 둔다.
4. 윤곽선 그리기
윤곽선 검출은 우선 2차원 영상 공간에서 이루어지는 알고리즘을 채택했다고 한다.
법선과 깊이 정보를 활용하면 윤곽선을 찾아낼 수 있다.
논문에서 구체적인 알고리즘을 언급하지는 않았다. 대표적인 윤곽선 검출 알고리즘은 법선이 스크린 법선 벡터에 수직하고 depth가 선형적으로 변화하지 않고 급작스럽게 변하면 윤곽선일 확률이 높다고 판단한다.
윤곽선을 검출하는 단계에서 메쉬의 밝기를 통해서 해당 부분이 어두우면 윤곽선도 어둡게 그려지도록 하고 해당 부분이 밝으면 윤곽선도 밝게 그려지도록 처리한다.
윤곽선을 검출한 후에는 윤곽선을 흔들어 사람이 그린 것 처럼 약간의 오차를 주는 작업이 필요하다.
사람이 그림을 그리다가 범위를 벗어나면 다시 그 오차를 줄이기 위해 선을 수정하는데 이 과정을 주기함수 즉 사인에 빗대어 가정했다고 한다.
이 과정을 픽셀 쉐이더에서 하게될 경우에 다른 화소의 값을 쓰고 참조하는 등등 어려움이 있어서 이 논문에서는 평면 자체를 왜곡시키는 방법을 사용했다고 한다.
이렇게 흔들린 윤곽선 영상을 구한 뒤에는 이것들을 사람이 그린 것 처럼 겹쳐 그린다.
다중 텍스쳐링을 사용하여 3~5번 정도를 겹쳐 그리는 것이 적당하다고 되어있다.
여기서 여러번 그려져 겹쳐졌다고 판단되면 더 짙게 그려지도록 한다.
5. 내부 그리기
이 단계에서 가장 중요한 것은 연필로 슥삭슥삭 그린 것 같은 효과를 주기 위해서 텍스쳐를 생성하는 것이다.
텍스쳐를 생성해 맵핑하는 것이 더 효율적이기 때문인 듯 하다.
텍스쳐를 한 방향으로 생성한 뒤에 메쉬의 곡률 방향을 검출해 그 방향으로 회전시켜야 한다!
이 단계에서 종이의 질감도 적용한다고 한다.
이런 텍스쳐를 사용한다!
메쉬 밝기에 따라서 각 단계의 텍스쳐를 적절히 블렌딩하면 된다.
텍스쳐를 만들때에 그려지는 방향에는 약간의 임의성을 주어 사람이 그린것처럼 보이도록 한다.
또한 어둡게 그리기 위해서 덧그릴수록 어두워지는 정도가 적어지는 것, (어느정도 칠하고 난 뒤에는 아무리 칠해도 많이 어두워지지 않는 점) 그리고 종이의 울퉁불퉁한 정도에 의해서 한번 흑연이 묻지않은 부분에는 계속 흑연이 덜묻도록 하는 것도 적용했다고 한다.
이렇게 만들어진 연필 텍스쳐를 총 32단계의 단계로 만들어 3d 텍스쳐 형태로 활용했다고 한다.
또 메쉬의 밝기 명암비가 극대화되어야 더 드라마틱한 결과를 얻을 수 있으므로 밝기를 거듭제곱하여 명암비의 차를 키웠다고 한다.
우리는 그림을 그릴 때에 선의 방향을 해당 물체의 표면 곡률에 따라 바꾼다.
이 텍스쳐를 회전하기 위한 표면의 곡률 계산은 Alliez 등이 제시한 방법을 사용하였다고 한다.
이때 텍스쳐 맵핑은 2차원 영상 공간 상에서 투영된 삼각형에 대해서 처리되기 때문에 텍스쳐의 해상도는 일정하게 유지된다. 이건 직관적으로 이렇게 해야만 한다..
텍스쳐를 회전할 때에는 텍스쳐 자체를 회전시키지 않고 텍스쳐 좌표를 회전시킨다.
이렇게 회전 맵핑을 3번 해서 블렌딩한다. 자연스럽게 보이기 위해서!
마지막으로 종이의 질감을 표현하기 위해서 연필로 그리는 방향과 종이가 잘 부딪히면? 더 어둡게 해주고 반대로 부딪히면 덜 어둡게 해주는 작업을 수행한다.
우선 종이의 질감을 표현할 수 있는 높이 맵을 만들고 해당 높이 맵으로부터 종이 표면의 법선 벡터를 설정한다.
그리고 내적을 통해서 종이와 연필이 많이 스쳤는지 덜스쳤는지 계산하면 된다.
6. 합성 및 후처리
이 단계에서는 외곽선과 내부 각각 생성된 영상을 합성한다.
윤곽선 먼저 그리고 내부를 합성하는데 이때 윤곽선이 그려진 부분에 내부가 그려지면 내부 영상은 일부만 적용시켜서 윤곽선이 묻히지 않게 한다.
그리고 이 단계에서 명암비와 같은 것들을 다시 후처리해서 보기 좋게 만든다고 한다.
7. 결과
실시간에서 돌아간다
삼각형 갯수와 FPS가 비슷하게 반비례하지 않는 것으로 보아 영상 단계에서 연산하는 양이 더 큰 비중을 차지하는 듯 하다.
8. 결론 및 향후 과제
앨리어싱, 애니메이션과 시간 지연성, 크로키 등등의 다양한 표현 방법에 대한 연구가 더 필요할 것 같다고 한다.
아래 링크에서 누군가 구현해 둔 결과를 확인할 수 있다.
'paper review' 카테고리의 다른 글
ORB-SLAM Review (0) | 2021.09.17 |
---|---|
조명 및 법선벡터 지도 추정을 이용한 사실적인 가상 화장 시스템 논문 리뷰 (0) | 2021.07.26 |
댓글