본문 바로가기
공허의 유산/표현의 자유

[opengl].[#2.GLSL] 08. 잔소리...Toon shading

by 바른생활머시마 2023. 1. 11.
728x90
반응형

이전 시간에 Vertex Shader에 외부에서 조정되는 값을 넣어, Animation 효과를 내어 보았습니다.

https://learn-and-give.tistory.com/34

 

[opengl].[#2.GLSL] 07. Vertex Shader에서 간단한 애니메이션 구현

앞에서 Vertex Shader에서 수식을 이용하여 Vertex 좌표를 변경 할 수 있는 것을 보았고, 이것이 Vertex의 좌표를 변경 할 뿐, Vertex로 구성 된 메쉬의 Topology와는 관계가 없다는 사실, 그리고 Pixel 수준에

learn-and-give.tistory.com

 

이번에는 조명에 들어가기 전에, (Code 없이) 잔소리만 좀 하려고 합니다. 

 

 

Toon shading

 

조명 효과의 대표적인 예인 Toon shading은 무엇일까요?  아래 태권브이 그림을 보면 잘 알 수 있는데, 팔이나 허벅지의 음영을 보면 두 단계, 혹은 세 단계로 되어 있습니다. 물론 각이 져 있는 것이 아닌데, 이런 방식으로 만화 영화에서 음영을 표현하는 방식을 그렇게 부르는 것 같아요. 부드러운 음영 처리를 하기에는 손이 많이 가기 때문에 단순하게 만든 것이 아닌가 생각 되네요. 우리에게는 이미 이런 스타일이 익숙해서 만화는 만화의 스타일로 이해되기 때문에 덜 현실적이라서 나쁘다거나 부족한 느낌이 아니고 단지 표현 방법의 차이로 느껴지는 것 같습니다.

 

매우 부드럽고 자연스러운 표현으로 만들어진 디즈니의 만화 영화에서도 이러한 표현을 쓰고 있는데요, 아래 백설 공주의 치마또한 그렇습니다. 그런데, 치마는 현실적으로 표현을 해도 어두운 곳에서 조명 가까이 있으면 그림자 부분의 경계가 또렷해져서 Toon shaing 처럼 보일 수 도 있겠네요. 일단, 아래 그림만 보면, 배경의 음영은 매우 정밀하게 되어 있으나, Animation의 대상이 되는 인물은 매 프레임을 이렇게 배경처럼 정밀하게 그릴 수가 없기 때문에 Toon shading을 한 것 같습니다. .

 

사실, 만화는 꼭 음영 표현을 사실적으로 해야 하는 것은 아니죠. 졸라맨은 음영 표현은 고사하고 입체감 조차도 없었지만 한(짧은) 시대(?)를 풍미했죠. 주제나 특징을 잘 살릴 수 있는 방법이면 어떤 표현 방법이든 상관 없는 것 같아요. 오히려, 그 느낌을 잘 전달하기 위해서는 경우에 따라서는 더욱 비현실적인 표현이 적합한 경우도 있는 것 같습니다.

 만약, 아래 둘리 그림에 음영이 들어가고, 반사광이니 뭐니 하면서 Gradation 들어가고 그러면 전혀 둘리같은 느낌이 들지 앟을 것입니다.

 

 

최근의 수준을 보여주는 대표작, 아바타2와 슬램덩크

 

 컴퓨터 그래픽으로 현실과 거의 구분하기 어려운 장면을 그려 낼 수도 있지만, 최근에는 의도적으로 비현실적인 표현을 컴퓨터로 표현하고 있으며, 특히, 손으로 그렸던 만화의 느낌까지 그대로 살려서 3D로 표현하는 방식도 인기를 끌고 있습니다. 바로 최근에 개봉한 슬램덩크 예고편을 보면, 만화책에서 보던 그 선의 느낌까지 3D 애니메이션에 잘 녹여져 있어서 그 향수가 더한 것 같습니다. 매우 사실적인 표현을 극한의 수준으로 끌어올린 아바타2와 비교해서, 표현하고자 하는 느낌이 다른 것일 뿐 우열을 가르는 것이 별로 의미가 없죠.

 

  잠시 피끓는 영상 ㅋ

 

 

 

 이처럼, 컴퓨터 그래픽은 이제 더 이상 사실적 표현만을 지향하지 않고 있으며, 이런 다양한 표현을 컴퓨터 기반으로 고급지게 한 그 기반 기술의 한 분야로써, (이제는 꽤 오래 된 분야가 되었지만). 비사실적인 영상을 만들어 내는 방식이라 불렸던 Non-photorealistic Rendering(NPR)이라는 분야가 있습니다. Toon-shading 외에도 여러가지가 있는데요, 예전에 SIGGRAPH의 예를 보면 수묵화 기법으로 그려주는 방식이 매우 인상적이어요. 예전엔 논문에 적혀있던 실험적인 표현 방식이었는데 이제는 그 기술을 이용한 상업적 콘텐츠와 예술 작품들이 쏟아지고 있을만큼 기술이 많이 발전했습니다.

 여기에는, 표현하고자 하는 느낌을 수식으로 구현 할 수 있게 된 Shader의 역할이 매우 컸을 것 같습니다.

 

 이렇게 화려한 기술이 널려있는 시점에, 옛날 기술을 다시 살펴보는 것이 사실 얼마나 도움이 될지는 모르겠습니다만, 알고 쓰는 것과 모르고 쓰는 것에 조금 차이가 있을 것이라 믿고, 다음 시간부터 옛날 기술들 조금 살펴 보도록 하겠습니다. 우선은 Shader 없이 OpenGL로 조명을 구현 해 보고, Shader 없이 Toon Shading의 느낌을 내어 보도록 노력(?) 해 본 후, Shader가 그 수고를 얼마나 획기적으로 줄여주며 그 결과물의 품질을 얼마나 극적으로 높혀주는지 살펴보겠습니다.

728x90
반응형

댓글