총 15장 이상으로 구성 된 국내 최초의 찐 실무기반 셰이더 프로그래밍 책 이라고 말 할수 있을 만큼 공을 들여서 쓰고 있는 "모두의 셰이더 프로그래밍" 의 9장 도입문의 일부를 소개 합니다. 이 서적은 (주)책만 에서 출판 예정이며 2025년 상반기 출간을 목표로 하고 있습니다만~ 아마 이렇게 쓰면서 분량이 늘어나는 걸 보면 초여름에나 출간이 되지 않을까 싶어요.
셀 스타일 렌더링(Cel Style Rendering)은 센과 치히로의 행방불명과 같은 애니메이션 또는 다양한 3D 게임에 사용되는 툰 렌더링(Toon Rendering)은 3D 컴퓨터 그래픽스에서 만화 스타일의 이미지를 표현하기 위해 개발된 렌더링 기법으로, 현실적인 조명과 질감보다는 단순화된 색상, 윤곽선, 그리고 명확한 음영을 강조한다. 이 기법은 2차원 만화나 애니메이션의 느낌을 3차원 공간에서 재현하며, 캐릭터와 배경의 예술적 표현에 중점을 둔다. 툰 렌더링은 특히 애니메이션, 만화, 비디오 게임에서 널리 사용되며, 현실감보다는 시각적 매력과 감성적 표현을 강조하는 것이 주요 목적이다.
세부적으로 셀 스타일(전통적 애니메이션 스타일)과 일본 3D 아니메 스타일로 나눌 수 있다. 셀 스타일은 전통적인 2D 애니메이션 셀 기법에서 유래하였으며, 단순한 색상 블록과 명확한 윤곽선을 특징으로 한다. 복잡한 그라데이션을 배제하고 단순한 색상과 경계선을 사용하여 만화적인 느낌을 극대화 한다.
셀 기법은 1915년 얼 허드(Earl Hurd)가 고안한 애니메이션 방법이다. 셀룰로오스 아세테이트로 만들어진 투명판 위에 그림을 그리고 채색을 하는 것으로 부터 셀 애니메이션 이라고 불리게 되었다. 그 당시 부드러운 그라데이션 채색 기법으로는 애니메이션을 만들 수 없었기 때문에 주로 Flat 한 쉐이딩 채색 기법으로 제작되었으며 일반적으로 Flat 쉐이딩 기법으로 표현 되는 시각적 표현을 셀 스타일 통상 부르게 됨.
셀 기법의 주요 특징으로는 플랫 셰이딩(Flat Shading), 윤곽선 강조, 그리고 단순화된 음영이 있다. 플랫 셰이딩은 단순한 색상 블록을 사용하여 명암을 표현하며, 캐릭터의 주요 특징을 강조한다. 윤곽선 강조는 물체의 경계를 명확히 하고 시각적 인상을 강화하며, 단순화된 음영은 빛의 강도와 방향에 따른 명암 단계를 단순화하여 형태와 색상의 대비를 부각시킨다.
21세기 이후의 전통적 셀 기법으로 제작 된 사례중 우리에게 가장 친숙한 지브리 스튜디오의 “센과 치히로의 행방불명” 등을 예로 들 수 있다. 이들 작품은 사실적인 배경과 셀 표현 기법을 사용한 스타일화된 캐릭터가 조화를 이루며 감성적인 분위기를 조성한다.
[그림 1. 지브리 스튜디오의 “센과 치히로의 행방불명”]
언리얼 엔진3로 만들어 진 길티 기어 XRD 는 몇 년 전까지만 해도 셀 스타일 셰이딩의 교과서 같은 작품이었으며 미호요의 《원신》 역시 셀 스타일 렌더링의 대표적인 사례로, 신카이 마코토의 스타일에서 많은 영향을 받아 게임 내에서 스타일화된 그래픽을 통해 몰입감을 높이고 있다.
[그림 2. 아크시스템웍스 “길티기어 XRD”]
저자 역시 2020년 반다이남코와 합작하여 개발된 “드레곤볼 최강전사” 프로젝트와 중국 게임개발사인 넷이즈에서 “음양사 신규 프로젝트”등의 아트 메니저 겸 테크니컬 아트 디렉터로 참여 하여 셀 스타일 렌더링 기법을 더 확장하고 연구하여 실무에 도입했다.
[그림 3. 저자가 테크아트 디렉터로 참여한 “드래곤볼:최강전사”. 거인네트워크/반다이남코 제공]
9장에서 다룰 셀 스타일 렌더링은 셰이더 프로그래밍을 통해 음영 표현과 외곽선 라인 처리 기법을 탐구하는 것을 목표로 한다. 독자는 실습 예제를 통해 셀 스타일 표현을 직접 프로그래밍하고 응용할 수 있는 능력을 기르게 될 것이다. 각 절에서는 3D 데이터에서 버텍스 애트리뷰트를 추가하고, 셰이더 프로그래밍을 통해 버텍스와 픽셀 셰이더에서 셀 효과를 구현하는 방법을 학습하게 된다. 이러한 과정은 셀 렌더링의 기초부터 심화된 기법까지 단계적으로 학습할 수 있도록 구성되어 있어, 셀 스타일 렌더링의 핵심 개념을 이해하고 실제로 구현하는 데 큰 도움이 될 것을 기대해본다.
'(출간예정) 모두의 셰이더 프로그래밍' 카테고리의 다른 글
9.8.5 Screen Space Depth 기반 Rim light 따라잡기 도입글 소개 (0) | 2025.02.09 |
---|---|
10장. 스타일 캐릭터 셰이딩과 사용자화 셰이더라이브러리 제작법. 들어가는 글 소개. (0) | 2025.02.05 |
각주 표기법 (0) | 2025.02.04 |
동차 클립 공간(Homogeneous Clip Space) 동차 좌표 클리핑 공간 (0) | 2025.02.02 |
셰이더에서 FOV 값 계산하기. (0) | 2024.12.09 |