여러분 안녕하세요. 최근 영화업계나 게임업계에서는 영상의 재질을 더욱 더 사실적으로 표현하기 위해서 예전 방식과는 확연히 수준이 다른 ‘물리 기반 Shader’ 라고 하는 것이 각광받기 시작했습니다.
이 물리 기반 Shader의 기본 목적은, Shader를 보다 더 물리적으로 옳게 작동하도록 만들어서 그래픽 아티스트가 원하는 질감을 보다 더 사실적이고 편하게 표현하도록 도와주는 것입니다. 그런데, 생각과는 다르게 이 물리 기반 Shader를 처음 사용해 보신 분들은, 굉장히 많이 바뀐 조작방식과 개념 때문에 여러움을 겪으시는 경우가 꽤 많더군요. 그래서 이번 시간에는, 물리 기반 Shader를 쉽게 이해하고 접근할 수 있도록 그 기본이 되는 이론을 간략하고 쉽게 설명드려 보도록 하겠습니다.
그럼 이제부터 물리 기반 셰이드에 대해서 배워보도록 하겠습니다. 오늘 배운 순서는요. 일단 첫 번째로 빛의 물리적인 이론에 대해서 배워보게 될 것입니다. 빛의 물리적인 이론을 제대로 배우려면 굉장히 복잡한데요. 우리는 여기서 그래픽 아티스트들이 필요한 만큼 굉장히 간략하게 배우게 될 겁니다. 우리가 텍스처링 작업을 하게 되면서 필요한 만큼만 공부하게 될 거예요. 그 다음에는 기존 Shader에서 빛을 어떻게 표현했냐라고 하는 이론에 대해서 배워보게 될 것입니다. 그 다음 세 번째로는 이제 물리 기반 Shader에서는 그렇다면 이 빛을 어떻게 표현하게 되었냐 하는 이론을 배우게 될 것입니다. 물리 기반 Shader를 제대로 사용하기 위해서는 이 이론을 정확히 알고 있어야 제대로 사용할 수 있으니까요. 그럼 첫 번째 시간으로 빛의 물리적인 이론에 대해서 말해보도록 하겠습니다.
세부적으로 들어가서 빛의 물리적 이론 중에서 첫 번째로는 디퓨즈와 스펙큐러 리플렉션에 대해서 배우게 될 것이고요. 두 번째는 스펙큐러 컬러에 대해서 배우게 될 것입니다. 사실 여기서 더 들어가면 비알디에프 라던가 여러 가지 복잡한 규칙이나 법칙을 배워야 되지만 우리가 간단하게 다루기 위해서는 이 정도만 알고 있으면 기본적으로 어느 정도까지는 쓸 수 있게 됩니다. 그럼 시작해보도록 하죠. 여기 맛있어 보이는 사과가 있습니다. 그리고 역시 맛있어 보이는 딸기가 있죠. 사과랑 딸기가 무슨 색이죠? 빨간색으로 보입니다.
이게 왜 빨간색으로 보일까요? 이걸 설명하기 위해서 우리는 먼저 빛의 삼원색을 얘기하지 않을 수 없습니다.
빛의 삼원색은 여러분들이 중학교 때 보셨나요? 그런 것처럼 색의 삼원색과는 다르게 더하면 더할수록 흰색이 되죠. 더하면 더할수록 흰색이 됩니다.
여기가 가장 더하면 더할수록 흰색이 되는 거죠. 빛의 요소죠. 흰 빛의 요소는 여기 있는 붉은색과 여기 있는 파란색과 여기 있는 녹색 이렇게 이루어져 있다. 보통 이렇게 얘기하죠? 실상은 약간 더 복잡합니다만 이 정도만 돼도 기본적으로 큰 문제가 없죠. 그래서 이것들이 합쳐지면 흰 빛이 되는 거죠.
그럼 빛이 여기에 들어온단 말입니다. 여기 사과나 딸기에 빛이 이렇게 들어오게 된다는 거죠.
빛이 이렇게 들어오지 않겠네요. 흰 빛이 들어오는데 이 흰 빛에는 파란 요소가 있을 것이고, 빨간 요소가 있을 것이고, 녹색 요소가 이렇게 섞여서 들어오는 거죠. 사과한테도 마찬가지고요. 그렇게 되면 이제 빛의 파란 요소는 이 딸기에 붙었을 때 딸기가 먹습니다. 파란 빛을 냠냠냠 먹어요.
그 다음 녹색 빛도 냠냠냠 먹습니다. 그래서 이 안에 흡수해서 들어가는 거죠. 다른 에너지로 변하겠죠. 열이라던가 그런 식으로 변하겠죠. 하지만 빨간색은 이 딸기나 사과가 튕겨내는 거죠. 사방으로 튕겨냅니다. 튕겨내서 사람의 눈에 빨강색으로 인지할 수 있게 되는 거죠. 이게 이 오브젝트, 물체가 그 색으로 보이게 되는 이론입니다.
이걸 도식적으로 보면 이런 식으로 볼 수 있죠. 파란 오브젝트는 들어와서 빨간색이나 녹색인 요소를 반사하지 않고 파란색만 반사하기 때문에 우리 눈에 파랗게 보이게 된다. 이런 얘기죠. 이렇게 첫 번째로 그 색으로 보이게 되는지에 대해서 알아봤습니다. 그런데 조금 생각해 볼게 있습니다. 물체의 표면이 어떻냐는 거예요. 물체의 표면은 현미경으로 크게 보면 굉장히 거칠게 있습니다. 한번 그려볼까요? 이렇게 되어 있습니다.
그럼 빛이 이렇게 들어왔다고 칩시다. 보면 색은 반사한다 치고 어느 쪽으로 반사할까요?
딱 부딪쳤을 때 여기 거울처럼 반사되는 쪽이기 때문에 여기에 부딪쳤으면 여기로 반사가 되겠죠? 이번에는 여기로 들어왔습니다. 여기로 들어 왔으면 이번엔 이렇게 반사가 되겠네요?
그럼 이렇게 들어왔으면요? 이쪽으로 이렇게 들어왔으면 여기 예를 들어서 이렇게 반사될 수도 있겠죠.
그러면 이제 빛이 굉장히 어지럽게 사방으로 반사되는 겁니다. 이런 식으로요.
표면이 거칠기 때문에 어느 쪽으로 반사할지 알 수가 없죠. 굉장히 거칠죠.
그래서 어지럽게 반사한다 해서 우리는 이것을 난반사라고 합니다. 그리고 영어로 얘기하면 어지러울 난자인 난반사가 디퓨즈 리플렉션이라고 합니다. 그래서 여기 있던 딸기나 사과가 어느 각도에서 봐도 빨갛게 보이는 이유가 바로 빛을 사방으로 반사하기 때문이에요. 바로 난반사 덕분이죠. 그렇다면 이번에는 이 바닥 표면이 거칠지 않고 이렇게 아주 깨끗하다고 생각해 봅시다. 물론 현미경으로 보면 이것도 약간은 거칠어요. 약간 거친데, 아까는 막 이렇게 거칠었으면 지금은 상당히 덜 거칠죠. 그냥 평평하게 이렇게 보도록 하죠. 이게 분자 구조에서 일어나는 정도의 수준이기 때문에 매끈해 보여도 사실 분자 구조로 들어가면 굉장히 거칠다고 합니다. 빛이 이렇게 들어오면 어떻게 되겠어요? 제대로 반사하겠죠. 미세하게 거칠기 때문에 사실은 정확히 반사하는 게 아니고 약간씩은 각도가 달라지겠지만, 어쨌거나 대부분은 들어온 각도랑 거의 비슷한 각도로 튀어나갈 겁니다. 이렇게 되는 것을 정확히 반사하는 거죠. 정확히 반사한다 해서 뭐라고 부를까요? 아까는 난반사였고, 지금은 정반사. 정확히 반사한다는 얘기죠. 그래서 이것은 영어로 뭐라고 하느냐? 스펙큐러 리플렉션이라고 부릅니다. 이것이 정반사와 난반사의 이론입니다. 표면이 거칠면 난반사가 많이 일어나겠죠? 그리고 표면이 맨들맨들 할수록 정반사가 많이 일어나는 구조가 되겠죠. 이렇게 정반사와 난반사는 상호 보완 관계가 있죠. 이 그림을 보시면 이제 도식적으로 표현한 건데, 이건 난반사를 표현한 것이죠. 그리고 이것도 역시 이 이론을 표현한 건데, 이건 너무 이상적으로 그려서 사방으로 되게 동일하게 퍼지는 것처럼 보이지만 어쨌건 디퓨즈 리플렉션과 스펙큐러 리플렉션을 그린 겁니다.
이게 만약에 실제 오브젝트가 이렇다고 생각해보죠. 실제 오브젝트가 디퓨즈가 강할 수 밖에 없는 거친 표면을 가지고 있으면 어떻게 될까요? 거칠게 반짝반짝 하지 않고 둔탁하게 보이겠죠?
그 다음 스펙큐러가 굉장히 센 것처럼 맨들맨들한 이런 표면을 가진 녀석은 반사가 잘 되겠죠? 이렇게 표현할 수 있습니다. 왼쪽에 있는 녀석은 굉장히 거칠죠.
거칠다. 이쪽은 맨들맨들 하죠? 선명하다, 부드럽다. 표면이 매끈하다. 그래서 이쪽으로 갈수록 디퓨즈하다.
디퓨즈가 많다. 이쪽으로 갈수록 스펙큐러가 많다. 이쪽으로 갈수록 난반사스럽다.
이쪽으로 갈수록 정반사스럽다. 이렇게 볼 수 있는 거죠. 이게 일단 가장 기본적인 빛의 이론입니다.
물체가 거칠면 난반사가 많아져요. 물체가 선명하면 정반사가 많아집니다.
이렇게 해서 첫 번째 이론을 이야기 했습니다. 디퓨즈와 스펙큐러 리플렉션에 대한 가장 기본적인 이론이었어요.
그럼 두 번째는 스펙큐러 컬러에 대한 이론을 간단하게 알아보죠.
그럼 두 번째 얘기로 빛의 스펙큐러 컬러에 대한 이야기입니다.
간단하게 한 번 알아볼게요. 금을 생각해볼까요? 이 금이 있습니다. 금은 흰 빛을 갖다가 쏴도 보시면 노랗게 빛나죠. 이게 금속의 특징입니다. 금속은 특정한 자기 고유의 스펙큐러 컬러를 가지고 있습니다. 복잡한 얘기는 빼놓고 이렇게 생각하시면 간단합니다. 금은 흰 빛을 비춰도 노란색으로 반사한다. 여기도 보시면 흰 빛을 비춰도 노란색으로 반사하죠. 금속은 고유의 스펙큐러 컬러를 가지고 있습니다. 그에 비해 금속이 아닌 것들, 여기 보시면 이게 소화기인데요. 소화기의 이런 부분들은 금속이겠지만 나머지 부분들, 이런 부분이나 이런 부분은 금속이 아니죠? 이게 페인트가 칠해져 있으면 더이상 금속이 아니니까요. 금속이 아닌 부분은 스펙큐러 컬러가 따로 있지 않고 그냥 스펙큐러 컬러가 흑백으로만 구성되어 있습니다. 즉, 이렇게 외우시면 됩니다. 금속은 고유의 스펙큐러 컬러가 있고, 비금속은 고유의 스펙큐러 컬러가 없다. 도식적으로 보면 이렇게 볼 수 있죠. 이쪽이 금속이고요. 금속의 스펙큐러 컬러들입니다. 그리고 이쪽이 비금속의 스펙큐러 컬러들입니다. 이게 물체의 재질에 특성입니다.
그러면 이번에는 기존 Shader에서의 빛 표현 방법에 대해서 얘기해 보도록 하겠습니다. 여기서 얘기할 거는요.
여태까지 썼던 물리 기반 Shader가 나오기 이전에 사용했던 Shader에서의 표현 방법입니다. 여기서는 디퓨즈와 스펙큐러, 그 다음에 이제 엠비언트에 대해서 얘기하게 될 것입니다. 디퓨즈와 스펙큐러에 대해서는 아까 얘기했죠?
맨 먼저 디퓨즈부터 얘기를 한번 해보죠. 디퓨즈는 아까 빛이 난반사 하는 거라고 얘기했죠? 여기에 이런 물체가 있습니다. 물체가 이 색으로 보이는 이유가 디퓨즈 때문이죠. 여기 있는 소화전도 빨갛게 보이고 꽃도 노랗게 보이는 이유가 바로 디퓨즈 때문이죠. 이걸 컴퓨터 그래픽으로 구현할 때는 이렇게 했습니다. 바로 빛이 들어오는 부분이 그 색깔이 난다, 그리고 빛이 없는 부분은 색깔이 어둡다. 여기 색깔이 밝은 부분이 빛이 닿는 부분이고요.
이쪽에 어두운 부분은 빛이 닿지 않는 부분입니다. 이런 식으로 되어 있죠? 이런 식으로 빛이 이쪽에서 오니까 여기가 밝아지고 이쪽은 어둡죠. 이게 디퓨즈를 구현하는 방식이었습니다. 원리상으로는 여기에 노말 백터와 나이트 백터와의 관계가 있지만, 그런건 모른다 치고요. 디퓨즈를 봤고요. 이번에는 스펙큐러입니다. 스펙큐러는 여기 보시다시피 좀 반짝반짝 하는 것들이죠. 우리가 하이라이트라고 부르는 것들이죠. 여기 금속은 아주 스펙큐러 덩어리들이고요. 여기 스펙큐러가 보이죠? 이런 것들이 보입니다. 여기도 스펙큐러가 보이죠? 이걸 컴퓨터 그래픽에서 옛날 방식의 Shader를 어떻게 구현했냐하면 이렇게 구현했습니다. 흰 동그라미 보이시죠?
계산하는 방식은 이거 였습니다. 빛이 여기 있다고 쳤을 때, 빛이 이쪽으로 내려올 때 이게 반사하는 방향과 눈에 오는 빛의 각도와 빛이 반사되는 각도가 얼마나 차이나느냐에 따라서 흰 동그라미를 그려주는 것이었습니다.
이게 스펙큐러의 기본 원리였어요. 이렇게 되면 현재 이 그림은 디퓨즈와 스펙큐러가 함께 보이는 그림입니다.
이게 옛날 방식이죠. 근데 이 방식에는 문제가 있었습니다.
그래서 나오게 된 게 엠비언트죠. 엠비언트는 뭐냐하면 아까 얘기했던 디퓨즈와 스펙큐러에는 없던 얘기인데요.
이건 디퓨즈 쪽이예요. 일단 난반사 쪽에 해당되는 녀석입니다. 아까 그림에서 뭔가 이상한 게 있었죠? 반대편은 이 부분이 굉장히 새까맣습니다. 빛이 닿지 않으니까 새까만거죠. 근데 빛이 닿지 않는 지금 현재 우리 책상 밑을 보시면 책상이 새까만가요?새까맣지 않아요. 빛이 닿지 않아도 사실은 밝단 것입니다. 이 사진을 볼까요? 굉장히 맑은 날인데, 오른쪽은 빛이 닿아서 굉장히 밝습니다. 하지만 빛이 닿지 않는 그림자 부분은 까맣지가 않죠. 무슨색입니까? 파란색입니다. 왜 파랗죠? 여기 있죠. 여기 하늘에서 파란 빛이 들어온다고 생각하는 겁니다.
즉, 마치 파란 방 안에 들어와 있는 느낌이죠. 그래서 어두운 부분도 파란 빛이 들어오게 되는 겁니다.
이건 직접광이 아니예요. 직접광이 아니고 간접광들이 들어온 겁니다. 주변에서 반사되어 복잡하게 들어오는 간접광들이예요. 간접광이고, 이것을 다른 말로 환경광이라고 합니다.
바로 이게 엠비언트죠. 그래서 보통 파란색을 많이 쓰는 이유가 하늘이 파라니까 파랑색을 많이 써요.
그래서 이걸 컴퓨터 그래픽에서 어떻게 계산했느냐? 환경광은 이제 간략화 시킨 겁니다. 사방에서 들어오는 복잡한 빛을 시뮬레이팅 해야 되는데, 다하기는 너무 무거우니까 그냥 여기처럼 단색으로 한색만 정한거죠.
보통 파란색을 많이 쓰는 이유가 그것입니다. 이렇게 디퓨즈와 엠비션트와 스펙큐러가 다 더해지면 이렇게 됩니다.
이건 디퓨즈죠. 디퓨즈가 있어요. 이제 엠비언트를 더해볼까요?
엠비언트는 그냥 단색 컬러를 더한 겁니다. 이렇게요. 이게 환경광이라고 생각하는 거죠. 얘를 그냥 전체에 더해버린 거죠. 이러면 엠비언트가 되는 거죠. 여기에 스펙큐러는 옛날 방식에 따르면 그냥 적당한 부분에 흰 동그라미를 칠해 주는 거죠. 이게 스펙큐러입니다. 즉, 이렇게 된 것이 여기 빨간게 디퓨즈죠?
디퓨즈 더하기 스펙큐러 더하기 엠비언트 이렇게 해서 빛을 갖다가 표현했던 것입니다. 이렇게 하면 무슨 문제가 있을까요? 뭔가 좀 부정확하죠. 부정확하지만 옛날에 컴퓨터가 빠르지 않았을 때는 이 정도 계산만으로도 어느 정도 비슷하게 만들 수 있었으니까 타협을 한 겁니다. 그래서 우리가 다루던 쓰리디 맥스나 그런 툴들도 이런 식으로 디퓨즈가 따로 되어 있고, 스펙큐러가 되어 있고, 엠비언트가 되어 있던 거죠. 그래서 보통 텍스처를 넣을 때 디퓨즈를 많이 넣었던 것입니다. 여기다가 넣으면 물체의 칼라가 나오게 되는 거였고요. 스펙큐러가 특정한 색깔이 있을 때, 아까 금속같은 경우는 여기에다가 텍스처를 넣어야 했던 거죠. 이게 옛날에 사용하던 Shader의 방식이었습니다. 디퓨즈와 스펙큐러와 엠비언트. 이 방식은 리플렉션 같은 게 표현할 수 없기 때문에 리플렉션을 추가로 표현해야 됐었죠. 추가로 더해서 연산해서 넣어야 했었죠. 정리해보죠. 그러니까 옛날 방식은 물리적으로 부정확합니다. 부정확할 수 밖에 없어요. 그냥 단순한 계산이니까요. 디퓨즈 플러스 스펙큐러, 서로의 상관관계가 없습니다.
그리고 주변 환경 변화 반응에 대응하기가 힘들어요. 파란색을 그냥 무작정 더한다는 건 사실 굉장히 불합리하죠.
하늘에서는 파랗지만 땅에서는 갈색이 올라오지 않았습니까? 그런 걸 전혀 대응할 수 없고요. 노을이 진다던가, 하늘이 좀 흐리다던가, 이럴 때 대응할 수 없습니다. 그리고 이런 걸 다 대응하려면 이게 금속이냐 아니냐, 하늘이 흐리냐, 밤이냐, 노을이냐, 그런 걸 다 Shader를 가지고 따로 만든다는 거예요. 그래서 Shader의 개수가 너무 많아지고 그래픽 아티스트가 이걸 일일이 조절했어야 됐습니다. 이게 옛날에 사용하는 구형 방식의 단점이죠.
그럼 이번에는 세 번째로 물리 기반 Shader 이론에 대해서 본격적으로 알아보도록 하겠습니다. 이제는 앞서 얘기했던 것에서 다 이야기가 되었던 거예요. 그래서 이번에 알아볼 거는 일단 첫 번째 에너지 보존 법칙, 두 번째 스펙큐러 컬러에 관한 이야기입니다. 물론 다른 내용도 더 있지만 일단 이 내용만 알면 기본적인 물리 기반 Shader 조작법은 다룰 수 있다 생각하시면 문제가 없습니다. 일단 기존에 Shader 체계에서는 확실히 간략화 되어 있었죠?
주변 환경을 갖다가 제대로 반영하지 못한다던가, 물리적으로 정확하지 않다던가, 그래서 영화 쪽도 마찬가지고 게임 쪽도 유니티에이 파이브라든가 언리얼 포부터는 물리 기반 Shader를 기준으로 모든 Shader 기반이 바뀌게 되었습니다. 근데 이제 사용하는 사람들이 이게 뭔지 잘 모르는 거죠. 갑자기 바뀌었으니까요.
그리고 굉장히 개념적으로 바뀌었기 때문에 제대로 알고 다뤄야 한다는 겁니다. 그럼 이제부터 물리 기반 Shader가 어떻게 구현되어 있는지를 알아보도록 하겠습니다. 첫 번째 알아야 될 것은 에너지 보존 법칙입니다.
여태까지 얘기했던 거예요. 물체는 거칠기를 표현하는 걸로 디퓨즈와 난반사가 나오게 되는 거고, 그 다음에 정확히 선명하게 매끈하게 그런 면은 스펙큐러가 나오게 된다고 말씀드렸죠. 그럼 잘 생각해보면 디퓨즈만 가진 오브젝트는 존재하지 않고요. 스펙큐러만 가진 오브젝트도 존재하지 않습니다. 둘은 서로 상호 보완 관계고, 둘은 일반적으로 보통 동시에 나타납니다. 이 그림을 볼까요? 이 그림을 보시면 위에 있는 건 확실히 디퓨즈가 강하죠.
디퓨즈가 강하지만 주변을 어스름히 반사는 하고 있습니다. 살짝 보이죠? 그래서 이것은 디퓨즈가 강하고 스펙큐러가 적은 겁니다. 스펙큐러가 없는 건 아니예요. 거울이 이상적으로 100% 스펙큐러라고 할 수 있지만, 거울도 사실은 100%는 아닙니다. 미세하게 디퓨즈가 있어요. 아래로 내려갈수록 디퓨즈가 점점 스펙큐러화 되어가고 있죠.
스펙큐러가 늘어나서 디퓨즈가 적어지고 있습니다. 여기는 더 스펙큐러가 강해져서 굉장히 주변을 거울처럼 반사하고 있죠. 그러니까 이렇게 생각하면 되는 겁니다. 정반사와 난반사는 이렇게 정반사가 늘어나면 난반사는 줄어든다. 그리고 난반사가 늘어나면 정반사는 줄어든다. 이것이 에너지 보존 법칙입니다. 사실 빛은 흡수, 투과, 이런 게 있지만 이런 것까지 생각 안하고 단순하게 생각해보는 거죠. 그래서 총 합이 무조건 1, 100% 들어오는 양 이상을 넘을 수 없다라고 하는 것이 기본 원칙입니다. 근데 이 그림을 한번 볼까요? 첫 번째 위에 있는 그림에서 이 공은 굉장히 스펙큐러가 강한 녀석이죠. 굉장히 맨들맨들한 녀석이예요. 빛을 갖다가 쨍 하고 반사하고 있죠.
두개가 있습니다. 근데 아래 걸 볼까요? 아래 건 스펙큐러가 커졌습니다. 스펙큐러가 커졌단 얘기는 뭐예요?
점점 디퓨즈스럽게 바뀌고 있다는 소리입니다. 난반사가 많아지고 있다는 뜻이예요. 근데 아래는 뭔가 문제가 있습니다. 뭐냐하면 똑같은 빛이 이렇게 작았다가 스펙큐러가 커졌는데 밝기가 그대로입니다. 그 말은 이제 퍼지는 빛이 세졌다는 소리거든요. 나오는 빛이 이렇게 클 수 없어요. 위에 거랑 비교해보면 확실해집니다. 위에는 이 스펙큐러 빛이 퍼지면서 거칠어지니까요. 점점 넓게 퍼지니까 당연히 약해지죠. 이 쪽이 옳은 겁니다. 위 쪽이 물리 기반 Shader예요. 근데 과거의 방법은 디퓨즈랑 스펙큐러를 단순히 더했기 때문에 이게 이제 과거의 방법으로 하게 되면이렇게 나오게 되는 거죠. 이럴 때는 아티스트가 수동으로 이 부분을 좀 더 스펙큐러 컬러를 일일이 조정해서 어둡게 만들어줘야 됐었어요. 하지만 물리 기반 Shader에서는 이것이 자동화되는 겁니다. 이렇게 되서 주변을 제대로 반사하냐, 얘가 거치냐에 따라서 ?? 그 전에 또 바뀐게 이제 옛날에는 하얀 공이 스펙큐러였다면 이번에는 그냥 주변을 얼마나 반사하냐가 물리 기반 Shader의 핵심이 된 거죠. 하얀 공은 더 이상 존재하지 않습니다.
스펙큐러란, 주변을 제대로 반사하게 되는 거죠.
이것을 조절하는 인자가 바로 러프니스냐, 스무스니스냐 이렇게 두 개로 나눠집니다. 사실은 똑같은 말이에요.
언리얼에서는 러프니스라고 씁니다. 그리고 유니티에서는 스무스니스라고 씁니다. 실제 시장에 존재하는 많은 엔진들도 이 두개로 나눠져 있는데요. 재미있게도 둘은 같은 내용인데 반대 속성을 가지고 있어요.
러프니스는 한국말로 하게 되면 거칠기예요. 스무스니스는 뭘까요? 매끄럽기. 이렇게 쓰죠. 둘은 반대의 의미죠.
그래서 러프니스는 0으로 하면 제로, 아무것도 없는 거잖아요. 거칠기가 제로니까 0으로 하면 선명한 거고요. 1로 하면 거친 거예요. 여기가 선명한 거고 이쪽이 거친 겁니다. 왜냐하면 러프니스는 거칠기라는 뜻이니까요. 스무스니 스는 정반대입니다. 이건 매끄럽기니까 0으로 하면 스무스니스가 0, 매끄러운 게 0이니까 거칠다는 뜻이예요.
그 다음에 1이라고 하면 선명해집니다. 정반대죠. 이것은 엔진에 따라서 그냥 이렇게 만들어져 있습니다.
어떤 규칙이나 그런 게 없어요. 그냥 그렇게 만든 것 뿐이예요. 그래서 두 엔진을 쓸 때는 조심해야 됩니다.
러프니스를 쓸 때는 선명한 게 0이고, 거친 게 1. 스펙큐러가 강한 게 선명한 거죠. 1로 하면 디퓨즈가 강한 거죠.
그 다음에 스무스니스일 때는 0으로 하면 거칠어서 디퓨즈가 강한 거고, 1로 하면 굉장히 스펙큐러가 강해서 선명해진 거고요. 이렇게 하고 나니까 디퓨즈라는 의미가 없어졌습니다. 이게 보니까 러프니스와 스무스니스가 사실은 디퓨즈와 스펙큐러를 갖다가 양을 결정해주는 게 되어 버렸어요. 이 얘기예요.
디퓨즈가 바로 거칠기고, 스무스니스가 선명하기가 되었죠? 그러니까 옛날에 있던 디퓨즈 맵이란 개념이 사라졌습니다. 그래서 옛날에 있던 디퓨즈 맵은 다른 이름으로 불립니다. 디퓨즈는 디퓨즈 맵이라는 이름은 더 이상 쓰지 않고요. 이제는 알배도나 베이스 칼라라고 하는 순수한 색깔을 나타내는 이름으로 바뀌어서 불립니다.
둘은 같은 뜻이예요. 이게 물리 기반 Shader에서 가장 중요하게 바뀐 에너지 보존 법칙에 대한 이야기입니다.
두 번째로 스펙큐러 컬러죠. 스펙큐러 컬러도 아까도 얘기했듯이 금속이냐 아니냐에 따라서 색깔이 달라진다고 했죠? 그래서 이 점을 구현한 거죠. 금속이 아닌 것들은 흑백의 스펙큐러 컬러를 가지고요. 금속인 것들은 스펙큐러 컬러가 칼라로 되서 옛날에는 우리가 수동으로 그려줘야 됐었어요. 금속일 경우에는 스펙큐러 컬러의 색깔있는 텍스처를 넣어주던가, 아니면 스펙큐러 칼라를 흑백으로 만들던가, 수동으로 했어야 됐는데 지금은 이제 그게 자동으로 된 거죠. 어떻게 정하냐? 바로 메탈릭이라는 수치가 있습니다. 메탈릭을 0으로 하면 메탈이 아닌거죠. 그래서 스펙큐러의 컬러가 그냥 흰색, 흑백으로 그냥 나오게 됩니다. 메탈이 아니니까요.
하지만 메탈릭을 1까지 올리면 완벽한 메탈입니다. 이상적인 메탈이 되서 알배도 칼라가 바로 스펙큐러에 들어가 버리게 됩니다. 금이라면 노란색을 칠해줘야겠죠? 이렇게 메탈릭으로 금속이냐 아니냐를 결정해주면 스펙큐러 컬러가 영향을 받게 되는 겁니다. 정리해볼까요? 우선 첫 번째, 알배도라는 개념이 생겼죠? 알배도는 더 이상 디퓨즈라 불리지 않는 겁니다. 옛날에 디퓨즈였던 그거랑 비슷한데, 더 이상 디퓨즈라고 불리지 않고 알배도 혹은 베이스 컬러라 불리게 된다는 것이었습니다. 왜냐하면 디퓨즈는 더 이상 맞지 않으니까요. 그리고 디퓨즈랑 스펙큐러의 양을 결정해주는 것은 러프니스 혹은 스무스니스라고 불리게 되는 인자로 조절하게 되었습니다. 물론 애석하게 두 조절 인자는 서로 정반대의 의미를 갖고 있죠? 그리고 마지막으로 스펙큐러 컬러의 색깔을 결정해주는 건 메탈릭으로 결정해주는 겁니다. 이렇게 물리 기반 Shader로 되면서부터 물리적으로 좀 더 정확해졌어요. 좀 더 자동화가 되고요. 이렇게 되니까 좋은 것이 Shader 하나로 거의 모든 재질이 표현 가능하게 됐죠. 아까 말한 수치만 조절해주면 존재하는 거의 대부분의 질감들을 갖다가 표현할 수 있으니까요. 물론 피부나 이런 건 안됩니다.
대신에 기존의 조명 연산 개념이 상당히 바뀌게 되어서 이제 아티스트들이 이 원리를 알고 사용해야 정확히 사용할 수 있게 되었단 것입니다. 이게 물리 기반 Shader를 다루기 위한 기본적인 이론을 간략하게 설명한 것입니다.
01. 이 강좌에 대해서
최근 영화업계나 영상업계에서는 각광받고 있는 물리 기반 셰이더를 쉽게 이해하고 접근할 수 있도록 그 기본이 되는 이론을 간략하고 쉽게 설명드립니다.
02. 강사 소개
정종필 (청강대 게임스쿨 교수)
03. 강사 이력
- 청강문화산업대학교 게임콘텐츠스쿨 교수 - 前 ㈜ 엔도어즈 테크니컬 아트 디렉터 - 前 ㈜ 조이온 아트 디렉터 - 前 ㈜ 드림웨어 그래픽 팀장 - 前 H.Q.TEAM 그래픽 팀장
[저서] - 01년 앗싸! 게임 만들기 -실무자에게 배워보는 게임그래픽-(공저) - 비비컴' 집필 - 05년 사이버게임 아카데미 ‘게임이펙트’ 사이버강의 과정 집필 - 06년 (재)한국게임산업개발원 5차년도 교재 - 게임영상연출&이펙트 - 집필 (공저) - 07년 사이버게임 아카데미 ‘기획자가 알아야 할 2D 게임 그래픽’ 사이버강의 과정 집필 - 08년 모바일 기기용 게임 개발을 위한 가변 인덱스 컬러 응용 - 한국 콘텐츠 학회 논문지 - 10년 텍스쳐 스플레팅 방식에서의 게임 지형 표현을 위한 전이타일의 표현 방법 개선 - 한국 게임학회 - 10년 게임 배경 표현을 위한 진보된 타일 텍스쳐 제작 방법 - 상명대학교 - 14년 Game Graphics / 3D Technical Art 참여 - 비엘북스