Artoke

머티리얼과 셰이더: 컴퓨터가 그림에 색을 입히는 마법

머티리얼과 셰이더: 컴퓨터가 그림에 색을 입히는 마법

게임 속 캐릭터의 반짝이는 갑옷, 촉촉해 보이는 물, 거친 바위. 이 모든 것은 사실 계산으로 만들어져요. 그 계산을 맡은 작은 일꾼이 바로 셰이더(shader)랍니다. 오늘은 셰이더와 머티리얼을 아주 쉽게 알아봐요.

셰이더가 뭐예요?

셰이더는 "이 부분을 무슨 색으로 칠할까?"를 정해 주는 작은 프로그램이에요.

색칠 공부 책을 떠올려 보세요. 그림의 선은 이미 그려져 있고, 우리는 그 안을 색연필로 칠하죠. 셰이더는 컴퓨터 안에서 이 색칠하는 규칙을 담당하는 친구예요.

다만 셰이더는 아주아주 빠릅니다. 화면의 점 수백만 개를 눈 깜짝할 사이에 칠해요. 그래서 게임 화면이 부드럽게 움직이는 거랍니다.

컴퓨터는 그림을 순서대로 그려요

컴퓨터가 화면에 그림을 그릴 때는 정해진 순서를 따라가요. 이 순서를 렌더링 파이프라인이라고 불러요. 물이 관(파이프)을 따라 흐르듯, 정보가 한 단계씩 흘러가는 길이에요.

머티리얼과 셰이더: 컴퓨터가 그림에 색을 입히는 마법 도식

위 그림처럼, 모양 정보가 들어오면 셰이더가 색을 계산하고, 마지막에 우리가 보는 그림이 완성돼요.

진짜 파이프라인은 이렇게 생겼어요

아래 그림은 실제 컴퓨터 그래픽이 흘러가는 길을 간단히 보여 줘요. 노란색 칸이 바로 우리가 직접 규칙을 정할 수 있는 셰이더 단계예요. 나머지 칸은 컴퓨터가 알아서 처리하는 부분이고요.

그래픽 파이프라인 그림. 노란색 칸이 프로그래머가 규칙을 정할 수 있는 셰이더 단계다.
A simplified illustration of the graphics pipeline in the Vulkan API. The yellow sections are programmable shader stages which can modify the different data being processed by the pipeline. · 출처: 머티리얼과 셰이더

칸이 많아서 어려워 보이지만 걱정 마세요. 핵심만 기억하면 돼요. "노란 칸 = 내가 규칙을 바꿀 수 있는 곳"이라는 것만요.

정점과 조각, 두 친구를 소개할게요

셰이더가 다루는 재료는 크게 두 가지예요.

  • 정점(vertex): 모양의 꼭짓점이에요. 종이접기를 할 때 접히는 모서리 점 같은 거죠. 세모는 정점이 3개, 네모는 4개예요.
  • 조각(fragment): 화면을 채우는 아주 작은 색점이에요. 모래알처럼 작은 점들이 잔뜩 모여 그림 하나가 돼요.

정점을 다루는 셰이더는 "모양을 어디에 놓을까?"를 정하고, 조각을 다루는 셰이더는 "이 작은 점을 무슨 색으로 칠할까?"를 정해요. 둘이 힘을 합쳐 그림을 완성한답니다.

셰이더는 요리사와 비슷해요

셰이더를 요리사라고 생각해 봐요.

  • 재료(정점과 조각)가 부엌으로 들어와요.
  • 요리사(셰이더)가 정해진 요리법대로 재료를 다뤄요.
  • 맛있는 요리(색칠된 그림)가 완성돼 나와요.

요리법을 바꾸면 요리 맛이 달라지죠? 셰이더의 규칙을 바꾸면 화면의 느낌도 확 달라져요. 같은 캐릭터도 반짝이게, 혹은 유령처럼 흐릿하게 만들 수 있어요.

그럼 머티리얼은 뭐예요?

머티리얼(material)은 우리말로 "재질"이에요. 물건의 겉모습 성질을 말하죠. 나무는 거칠고, 유리는 매끈하고, 쇠는 반짝여요. 이런 느낌이 바로 머티리얼이에요.

언리얼 같은 게임 프로그램에서 머티리얼은 셰이더를 쉽게 쓰도록 포장한 상자 같은 거예요. 안에는 복잡한 셰이더 계산이 들어 있지만, 우리는 상자 겉의 버튼만 만지면 돼요.

  • "색깔" 버튼 → 물건의 기본 색
  • "반짝임" 버튼 → 얼마나 매끈하게 빛나는지
  • "울퉁불퉁" 버튼 → 표면이 거친지 매끈한지

버튼을 조금씩 바꾸면 같은 공이 축구공도, 유리구슬도, 쇠구슬도 될 수 있어요. 어때요, 마법 같죠?

셰이더와 머티리얼, 어떻게 다를까요?

헷갈리기 쉬우니 짧게 정리해요.

  • 셰이더: 색을 계산하는 실제 프로그램. 요리법 그 자체.
  • 머티리얼: 셰이더를 쉽게 쓰게 만든 포장. 요리법에 붙은 간단한 버튼들.

즉, 머티리얼 안에 셰이더가 숨어서 일하고 있어요. 우리는 머티리얼 버튼만 만져도 멋진 표면을 만들 수 있는 거예요.

오늘 배운 내용 정리

  • 셰이더는 화면의 점을 무슨 색으로 칠할지 계산하는 빠른 일꾼이에요.
  • 컴퓨터는 파이프라인이라는 순서를 따라 그림을 그리고, 노란 칸이 셰이더 단계예요.
  • 정점은 모양의 꼭짓점, 조각은 화면의 작은 색점이에요.
  • 머티리얼은 셰이더를 쉽게 쓰게 포장한 상자로, 물건의 재질 느낌을 정해요.

이제 게임을 할 때 반짝이는 물이나 거친 바위를 보면 이렇게 생각해 보세요. "아, 저건 셰이더가 계산하고 머티리얼이 꾸민 거구나!" 여러분은 벌써 그래픽의 비밀을 하나 알게 된 거예요.

출처

광고

리깅 파이프라인 자동화 도구

반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.

리깅 도구 보기