ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서브서피스 스캐터링 (SSS) 표현하는 법 - with Substance Painter
    게임그래픽 2022. 1. 9. 10:00
    728x90

    게임 그래픽 이야기

    사실적인 그래픽을 위해 꼭 필요한 SSS에 대해


     

     저는 게임회사에 다니고 있는 3D 배경 아티스트 입니다. 이번에 제 작품을 하나 만들면서, SSS표현에 대해서 좀 정리해 보면 좋을 것 같다는 생각을 해서 정리하게 되었습니다.

     

    이번에 작업한 도자기 / SSS표현이 잘 안보일 수도 있으나 위 부분이 핑크로 빛나는 것이 SSS 표현이다.

     

     이번 작업은 섭스턴스 페인터 Substance Painter 에서 작업하였습니다. 3D 모델링 작업은 MAYA에서 진행하였고, 생각보다 모델링 작업은 시간을 많이 투자하지는 않았던 것 같습니다. 

     

     이번 작업은 다른 것보다 서브서피스 스캐터링 * ( SubSurface Scattering, SSS) 다른 말로는 서브서피스 라이트 트랜스포트/ 에 신경써서 작업을 하였습니다. 

     

     도자기라는 물체의 특성을 잘 보면 강한 빛을 도자기에 비추어 보면 유약을 바른 부분이 투명해서 빛을 받게되면 안에서 빛 산란이 일어나게 됩니다. 

      

     흔히 지금 당장 해 볼 수 있는 서브서피스 스캐터링 테스트는 우리의 피부로 표현할 수 있는데요. 당장 강한 빛 아래에 우리 손을 가져다 대면 투영하게 보이면서 빛을 강하게 받는 부분이 붉은 색으로 빛나게 됩니다.

     

    이런 현상 종종 경험해 보신 분들도 있을거라고 생각합니다.

     

     이 현상이 바로 서브서피스 스캐터링 = 직역하면 표면 아래 ( 속 ) 의 빛 산란 이라는 현상입니다. 사람의 피부의 경우 평소에는 불투명 처럼 보이는데, 강한 빛을 받으면 반투명으로 보입니다.

     

     이를 게임 엔진 상에서 표현을 하고 안하고는 얼마나 리얼하게 보이느냐 아니냐를 판가름하는 주요한 표현이 됩니다. 

     

     현실에서는 우리가 잘 모르지만, 굉장히 다양한 물건들이 반투명한 속성을 가지고 있는 것들이 많습니다. 제 주변만 봐도 반투명해서 안이 들여다 보이는 플라스틱 재질도 있고, 대리석도 있고, 옥 같은 경우도 불투명합니다.

     

     그외에도 저의 피부도 그렇고, 도자기와 조개같은 물건들 ( 둘다 겉 부분이 투영하고 빛을 강하게 비추면 반투명해 짐 ) 등 수없이 많은 반투명의 물건이 있습니다. 

     

    이번 작업을 하면서 참고했던 레퍼런스 자료 유약부분의 표현이 적나라하게 반투명으로 표현되었다. / 소더비 출처

     

     그것을 우리는 직감적으로는 알고 있을 거라고 생각합니다. 그렇기 때문에 이를 표현해 주면 더 사실적인 그래픽을 표현할 수 있다고 생각합니다. 

     

     그래서 그래픽에서는 반투명한 재질의 밑의 산란되는 값을 표현해 주는 스캐터링 텍스쳐를 한장 더 만들어서 그것을 표현합니다.

     

     CG안에서는 그 표현을 위해 따로 만들어진 쉐이딩 값을 넣어주어야 하고, 언리얼 같은 엔진에서는 머테리얼 속성으로 존재합니다. 

     

     이 것이 제가 만든 작품 오래된 도자기 인데, 잘 보이지는 않을 수도 있지만, 저의 경우에는 윗 부분을 약간 반투명하게 Scattering 값을 주어 약간 핑크 빛의 빛 산란 값 SSS를 주어 투영해 보이는 효과를 표현 했습니다.

     

    좀 더 유약바른 부분을 표현해 주었으면 더 좋은 작품이 됬을 듯?

     

     이 투영한 값을 너무 강하게 표현하게 되면 반투명에 가까워지기 때문에 그 점도 주의하면서 작업했습니다. 도자기의 경우 사람의 피부와는 다르게 약하게 표현해 주어야 합니다. ( 유약을 바른 부분은 제외 )

     

     Scattering은 섭스턴스 페인터의 Texture Set Setting > Channels 에서 + 버튼을 누르시고, Scattering 항목을 추가해주시면 됩니다.

     

     빛이 투과됨이 강한 부분일 수록 하얗게 표현하고, 반대로 빛이 투과하지 않는 불투명의 부분은 검게 표현해 주시면 됩니다. 알파맵과 비슷한 느낌으로 생각하시면 편하죠.

     

     그리고 섭스턴스 페인터의 랜더링 설정에서도 이와 마찬가지로 SSS 관련 부분이 있는데 이 곳에서 체크를 해주셔야 렌더링 화면에서도 위와 같은 반투명한 값을 섭스턴스 페인터 상에서 볼 수 있습니다. 

     

     

    내가 만들었던 포도인데, 잘 보면 반투명한 부분이 올라와 겉의 반투명함을 느낄 수 있다.

     

     어떤 분들은 AO맵을 이용해서 그 AO맵을 반전하는 방식으로 Scattering 표현을 해 주는 경우도 있던데, 각자 용도에 따라서 기존 Meshmap을 변형하는 형식으로 작업을 해주시는 것이 가장 좋을 것 같습니다. 

     

     이 SSS 표현은 빛을 받아서 투영해 보이는 천을 표현할 때에도 굉장히 감각적으로 보일 수 있고, 여러모로 게임 그래픽 분야에서 많이 쓰이는 표현입니다.

     

     배경 하시는 분들은 잘 모를 수도 있지만, 캐릭터 쪽에서는 피부표현이 필수이기때문에 사실적인 게임을 만드는 분이실 수록 이쪽에 대해서 더 잘 아실 거라고 생각하네요.

     

     아무래도 배경은 그렇게 필수적인 부분은 아니기도 하고 이 쉐이더 자체가 상당히 무거운 부분도 있기 때문에 그점에 주의해서 리소스 용량이 늘어나지 않는 선이라면 언리얼 엔진에서 쓰는 것도 나쁘지 않아 보입니다. ( 뭔가 극적인 표현을 할때 좋을 듯? )

     


     

     글 읽어주셔서 감사합니다.

     

     

     

     

     

     

     

     

    728x90
Designed by Tistory.