그럼 이번에는 본격적으로 엔진을 이용해서 물리 기반 Shader를 다뤄보도록 하겠습니다. 먼저 유니티 엔진으로 한번 물리 기반 Shader를 다루어 볼 건데요. 어셋 스토어에 들어가서 이 버튼을 누르면 유니티 에센셜이라고 나오거든요. 거기서 두 번째 페이지에 보면 여기 Shader 캘리브레이션 씬이라고 있습니다. 이 씬을 불러오도록 하겠습니다. 이걸 직접 검색하셔도 되고요. 이렇게 불러온다 하면 준비가 되고 임포트를 눌러서 불러와지게 만듭니다. 만들면 여긴 지금 제가 미리 불러놔 뒀는데, 이렇게 캘리브레이션 씬이 만들어집니다. 캘리브레이션 씬을 더블 클릭해서 씬을 열어보면 씬이 열렸고요. 이제 씬 창으로 가보면 이런 씬이 열려져 있습니다. 게임 창에 가면 이렇게 보이게 되고요. 씬에 가면 이렇게 되어 있고요.
여기서 샘플 스피어가 이렇게 숨겨져 있습니다. 이 샘플 스피어를 일단 이렇게 보이게 했습니다. 여기 있던 샘플 스피어를 보이게 했습니다. 이 중에서 만만한 녀석으로 골드가 좋을까요? 골드인 이 녀석을 선택해서 단축키 에프를 눌러서 화면에 가득 채워보겠습니다. 이 재질은 금 재질이죠. 그리고 매트리얼에 가보면 이 재질이 골드라고 되어 있죠? 그러면 골드 매트리얼이 찾아지고 이 주변에 수많은 다른 재질들의 매트리얼에 들어와 있습니다. 이걸 하나씩 켜볼까요? 알루미늄, 브래스, 브러쉬드 메탈, 코퍼, 패브릭, 그래스, 골드, 레더도 있고 머드도 있고 플라스틱 있고 이런 식으로 하나씩 만져보시면 공부를 할 수 있습니다. 이 중에서 제일 만만한 플라스틱을 가지고 해보죠. 플라스틱 메탈을 보면 이렇게 스탠다드 Shader가 나옵니다. 유니티에 있는 기본 Shader인 스탠다드 Shader가 물리 기반 Shader니까요.
물리 기반 Shader이고 그 다음에 여기 보면 아까 얘기했던대로 알배도와 메탈릭, 스무스니스 같은 게 있습니다. 일단 알배도는 물체의 기본 색깔이죠. 현재 약간 푸른 빛으로 되어 있는데 예를들어 녹색이나 붉은색으로 바꿀 수 있습니다. 지금 반짝이는 플라스틱 재질이죠?
플라스틱은 메탈이 아니죠? 메탈이 아니니까 메탈릭이 0으로 되어 있습니다. 이걸 이쪽으로 해주면 이제 금속이 되죠. 메탈릭을 올리면 금속이 돼요. 그리고 메탈릭을 0으로 하면 이제 금속이 아닌 비금속 재질이 됩니다. 보통 중간에 쓸 일은 별로 없는데 그렇다고 1이나 0으로 바로 쓰기는 좀 그런게 모든 재질은 약간씩 섞여 있기 때문에 적당히 어울릴 정도로 해주면 되고요. 그 다음에 여긴 스무스니스, 이 녀석이 얼마나 주변을 반사할만큼 이제 맨들맨들하냐의 수치기 때문에 이걸 내려주면 둔탁해지고요. 올려주면 선명해집니다. 금속에도 마찬가지고요. 내리면 둔탁해지고, 올리면 선명해집니다. 이게 기본 조작법이죠. 내가 만드려고 하는 게 금속이고 맨들맨들하다 이걸 조절하면 이렇게 만들면 되는 거죠. 근데 물리 기반 Shader는 말씀드렸다시피 물리적으로 굉장히 옳은 그런 기준으로 만들어져 있기 때문에 이미 물리적으로 세상에 존재하는 물체들의 그런 수치가 여기에 존재하고 있어요. 여기에 표가 있습니다. 여기 어셋에 들어가면 여기 유니티 메탈릭이라고 하는 이런 문서가 있습니다.
이 문서를 확대해서 보면 여기에 어떤 물체의 기본적인 컬러나 메탈릭 설정 수치, 스무스니스 설정 수치들이 들어와 있습니다. 매뉴얼이예요. 예를 들어서 금일 경우에는 알배도가 보통 이색이다, 코퍼일 경우에는 보통 이색이다, 그래서 이 색을 참고하면 되고요. 그 다음에 메탈 재질일 경우에는 주로 밝기가 이 쪽 밝기이고 이제 논메탈일 경우에는 주로 이 쪽 밝기를 쓰면 된다는 이런 메뉴얼들이 있습니다. 이미 실생활에 존재하는 물체이기 때문에 여기 있는대로 하면 크게 틀릴 일이 없다는 거죠. 그리고 이건 메탈릭 수치고요. 이건 스무스니스 수치 가이드라인이 있습니다. 이렇게 해서 이걸 기본적으로 조절하면 현재 존재하는 굉장히 많은 것들을 갖다 만들 수 있죠. 금이라면 약간 이렇게 노란색. 아까 그 수치를 보고 하는 게 맞겠죠? 지금은 적당히 해보겠습니다. 적당히 금이라고 생각되는 좀 틀린 것 같지만 이렇고 금은 메탈이니까 메탈로 놔두고요. 금인데 굉장히 잘 닦아놨냐, 아니면 좀 덜 닦아서 둔탁하냐 이렇게 혹은 질감을 주고 싶으면 여기다가 노말 맵을 주시면 되겠죠?
이게 첫 번째 사용 방법입니다. 이것이 메탈이냐 아니냐, 그리고 이것이 둔탁한지, 선명한지, 이것을 결정해주면 피부와 같은 특수 재질을 빼놓고 모든 재질을 표현할 수 있다는 얘기입니다. 이게 첫 번째 물리 기반 Shader의 사용법입니다. 그렇다면 이번에는 조금 더 고급 조작법을 익혀보도록 하죠. 모든 오브젝트가 하나의 재질로 이루어져 있다면 지금 배운 것만으로도 모든 재질을 표현할 수 있겠지만 재질들은 사실 되게 복잡할 수밖에 없죠. 예를 들어서 당장 일부는 금속이고 일부는 플라스틱이라던가, 아니면 금속인데 녹이 쓸었다던가 이런 여러가지 복합 재질이 나올 수밖에 없는 상황이 자주 일어납니다. 이럴 때 복합 재질을 갖다가 만드려면 하나의 오브젝트지만 어느 부분은 메탈릭이 높고 어느 부분은 메탈릭이 없고 어느 부분은 스무스니스가 높고 어느 부분은 낮고 알배도도 다르고 이런 일이 벌어질 수 있겠죠. 이번에는 이걸 제어하는 걸 갖다가 한번 실습해보도록 하겠습니다. 우선 제가 빈 파일을 하나 만들었는데요. 여기 알배도라고 되어 있는 텍스처를 만들었는데 이건 그냥 하얀색 사각형입니다. 이 하얀색 사각형은 이름만 알배도입니다. 알배도 칸에 이렇게 드래그해서 집어 넣으면 별 변화가 없죠? 이게 노란색이어서 흰색 텍스처를 넣어도 아무 문제가 없습니다. 이것도 흰색으로 놔둘게요. 근데 이 메탈릭이 문제입니다. 이 메탈릭은 메탈릭이냐 아니냐와 스무스니스냐 아니냐를 구분해야 하는데요. 이것을 제어할 때 이 메탈릭이라고 하는 흰 텍스처를 갖다가 준비해 놨습니다. 근데 이 텍스처는 보시면 약간 좀 달라요. 알파 채널이 있습니다. 눌러보면 알파 채널이 굳이 검정색으로 되어 있는 걸 알 수 있죠. 이렇게 알지비는 흰색이고 알파 채널은 검정색입니다. 이게 무엇을 의미하냐? 일단 넣어서 볼까요? 얘를 메탈릭에 넣는 겁니다. 이렇게 넣으면 재미있게도 메탈릭 수치바가 없어졌고요. 스무스니스 수치바 밖에 없습니다. 근데 스무스니스는 1로 올렸는데도 불구하고 굉장히 둔탁하죠.
마치 스무스니스를 제로로 한 것 같습니다. 이 이미지의 비밀을 알아보도록 하죠. 이 표가 바로 그 이미지의 비밀입니다. 일단 알배도는 흰색을 넣었죠? 흰색을 넣었으니까 별 변화가 없습니다. 이건 그냥 나오는대로 하면 돼요. 메탈릭이 문제입니다. 메탈릭에 텍스처를 넣었죠? 메탈릭의 텍스처는 알쥐비 그리고 알파로 이루어져 있습니다. 아까 넣었던 메탈릭의 알지비와 알파 모양의 색깔이 어땠는지 기억 나시나요? 알지비는 흰색이었습니다. 즉, 여기 있는 알도 사실 흰색이죠. 알지비가 흰색이니까 당연히 알은 흰색이죠. 그러니까 메탈릭이냐 아니냐에서 흰색이니까 여기입니다. 흰색이니까 1.0. 즉, 이 녀석은 100% 메탈입니다. 얘는 100% 메탈인 거예요. 왜냐? 메탈릭의 흰색이 들어와 있기 때문이죠. 근데 전혀 빛나지 않죠? 다시볼까요? 이번에는 문제가 스무스니스입니다. 스무스니스는 방금 넣은 텍스처의 알파 채널로 제어됩니다. 여기 증거가 있어요. 스무스니스의 소스는 메탈릭의 알파라고 이렇게 되어 있죠? 이 텍스처에 알파 채널의 바로 일부분이 스무스니스입니다. 그러면 검정색입니다. 잘 생각해보세요. 그러니까 검정색이니까 현재 재질은 메탈이면서 알파가 검정색이라서 굉장히 둔탁한 메탈이 된거죠. 그렇다면 이거를 바꿔보겠습니다. 아까 본 이미지예요. 아까 본 이미지를 불러서 한번 보죠. 이걸 이렇게 더블 클릭해서 열어본 다음에 보면 알파가 검정색으로 들어가는 걸 알 수 있죠. 이 녀석을 약간 밝게 바꿔준다면 어떻게 될까요? 회색 정도로 해줄까요? 알파가 밝아졌습니다. 그럼 세이브 하고 가보면 조금 선명해졌습니다.
스펙큐러틱하게 반짝이게 됐습니다. 이제 알파의 색깔을 더 올려볼까요? 거의 흰색으로 올려보겠습니다. 세이브 하고 가보면 이번에는 굉장히 반짝반짝합니다. 이제 대충 사용법을 아시겠죠? 만약에 메탈이 아니게 만들면 어떻게 하면 되겠습니까? 이 알지비를 검정색으로 만들면 메탈이 아닌 거예요. 세이브 하고 가봅니다. 이러면 메탈이 아니면서 반짝반짝한 녀석이 됐죠. 메탈릭에서의 알지비는 검정색이고 알파는 흰색이 되었으니까요. 이게 아까 봤던 여기 있는 텍스처로 이 부분을 제어하는 겁니다. 이걸 이용하면 다중 메탈을 만들 수 있습니다. 한번 해볼까요? 예를 들어서 반은 플라스틱이고 반은 금인 이런 재질을 만들어 볼까요? 알배도를 갖다가 제어해보죠. 알배도의 반을 플라스틱으로 만들까요? 대충 이런 색의 플라스틱으로 만들어 본다고 하겠습니다. 이쪽은 금을 만들까요? 금을 만들고 싶으면 가이드가 필요하겠죠? 바로 여기 가이드가 있습니다. 골드 좋은 가이드가 있네요. 여기 있는 골드의 색깔을 찍어보고 그 다음에 이걸로 여기다가 이렇게 색깔을 칠해봅니다. 금 색깔이 칠해진 거죠. 세이브 하고 가보면 이쪽은 파랑, 밑은 노랑인데요. 지금은 둘 다 플라스틱 같죠? 그냥 절반이 갈라진 플라스틱 공입니다. 이제 위에는 메탈릭이 아닌 거고, 밑에는 메탈릭인 걸로 수정하면 되겠죠? 다시 포토샵에 들어가서 이번에는 메탈릭 텍스처를 바꿉니다. 아까 했죠? 위에는 메탈릭이 아니니까 0. 즉, 검정색으로 놔두고, 밑에는 메탈이잖아요. 메탈이니까 흰색으로 놔둡니다. 세이브 하고 가볼까요? 이렇게 정확하게 선이 안맞는 그런가보다 해주시고요. 밑에는 금이 되고 위에는 플라스틱이 되었습니다. 이번에는 둔탁한 것과 선명한 것도 당연히 제어할 수 있겠죠? 어떻게요? 알파 채널을 제어하면 되니까요. 이 재질은 조금 장난을 쳐볼까요? 위의 플라스틱은 살짝 둔탁한 겁니다. 근데 제가 실수로 잘 닦아서 일부는 선명하다고 할게요. 막 하겠습니다. 밑에는 이렇게 굉장히 금이 잘 닦여서 선명한데, 여기는 또 반대로 너무 안 닦은 부분이 있다고 칩니다. 세이브 하고 가볼까요?
일부분은 지금 너무 세서 스펙큐러가 오히려 안보이는 거예요. 너무 흰색을 넣으면 또 안되거든요. 스펙큐러가 너무 작아져서 아무것도 안보입니다. 약간 색깔을 죽여놓는 게 좋을 것 같아요. 색깔을 전반적으로 살짝 낮춰볼게요. 세이브 하고 가보겠습니다. 보이시죠? 이렇게 일부분은 선명하게 보이죠. 밑에는 금속이라 아주 선명한데, 일부분은 선명하지 않은 게 보이시죠? 이런 식으로 마스킹 재질을 만들어서 어떤 재질을 표현할 수가 있습니다. 이게 물리 기반 Shader를 아까 배운대로 텍스처로 조절하는 방법입니다. 여기에 노말 맵을 갖다가 집어 넣는다던가 하면 훨씬 더 괜찮아지겠죠? 아무거나 집어 넣어 볼까요? 이렇게 질감이 살아나죠? 위에는 둔탁해졌고요. 밑에는 금이 되었습니다. 이렇게 물리 기반 Shader를 이번에는 조금 고급으로 텍스처를 이용해서 제어하는 방법에 대해서 알아봤습니다. 그럼 마지막으로 지금 좀 빨리 만들었는데, 다른 툴에서 정성스럽게 만들어 온 텍스처로 조금 더 고급 조작을 해보도록 하겠습니다. 조작 내용은 이전과 똑같고요. 퀄리티가 좀 좋을 뿐입니다. 예를 들어서 서브스탠스 디자이너나 이런 좋은 툴들이 많이 생겼거든요. 그런 툴에서 만들어가지고 오면 좋은 물리 기반 Shader 텍스처들을 얻을 수 있습니다. 이번에는 새로운 메탈을 만들고 한번 시작해볼게요. 새로운 메탈을 만들고 적용해 보겠습니다. 이렇게 적용이 되어 있죠? 하얀색 공이예요. 그리고 제가 서브스탠스 디자인에서 만들어 온 재질이 있습니다.
여기다가 텍스처를 갖다가 넣겠습니다. 텍스처를 이렇게 해서 알배도에다가 이렇게 제가 준비해 온 알배도를 넣겠습니다. 이건 쇠 재질이예요. 여러분들도 이제 인터넷에서 쇠 재질의 사진을 가져다가 넣게 되면 이렇게 나오게 됩니다. 서브스탠스 디자이너 같은 걸 써보시는 것도 굉장히 좋습니다. 이렇게 하면 지금은 돌 같죠? 이제 설정을 바꿔보죠. 얘는 쇠니까 메탈릭이 최고로 높겠죠? 벌써 쇠가 되었네요. 그리고 스무스니스를 약간 좀 줄여서 어느 정도로 잘 닦아 놓은 쇠냐 이렇게 조절을 해주는 겁니다. 노말 맵을 여기에 맞게 줘도 되겠죠? 일단 노말 맵을 줘볼까요? 살짝 노말 맵이 은근히 들어가 있는 녀석이라서 노말 맵이 별로 티가 안납니다. 여기에 이렇게 하면 우리가 원하는 쇠 재질을 넣을 수 있는데, 만약에 이게 녹슬었다고 생각되면 어떻게 할까요? 제가 미리 준비해 왔습니다만 여러분들은 만들어보면 시간이 많이 걸리겠지만 여기서 해 볼 시간이 없어서 제가 미리 준비해 왔습니다.
그럼 여기서 한번 작업해 볼게요. 우선 알배도입니다. 알배도는 이렇게 생겼는데요. 만약에 녹이 슬었다면 알배도는 이런 식으로 녹이 슬어서 이렇게 된 모양으로 바뀌었겠죠? 알배도를 이렇게 제작했다고 하겠습니다. 포토샵에서 하셔도 되고요. 아니면 아까 얘기한 물리 기반 Shader 텍스처링 툴로 사용해도 되고요. 저장할게요. 저장해서 가보겠습니다. 이렇게 곰팡이 피듯이 녹이 슨 거예요. 하지만 지금은 녹이 슬었다고 하기에는 그냥 검게 얼룩무늬가 되었다 이런 느낌이죠? 녹슬었다면 그 부분은 더이상 금속이 아니죠? 근데 여기서는 전부 다 금속이예요. 전부 다 스무스니스가 한번에 조절됩니다. 역시 메탈릭 텍스처가 필요하겠죠? 준비해 왔습니다. 이게 메탈릭 텍스처입니다. 흰 부분은 메탈릭이고, 검은 부분은 메탈릭이 아닌 거죠. 회색 부분은 살짝 섞인 거고요. 알파 채널은 스무스니스죠? 알파 채널을 볼까요? 이 금속인 약간 밝은 부분은 너무 잘 닦아진 건 아니고 약간 70%의 느낌으로 반들반들한 거고, 그 다음에 어두운 부분은 40-50%인 느낌으로 좀 더 둔탁해진 거죠. 이렇게 세이브 되어 있는 텍스처를 여기다 적용해 보겠습니다. 어떻게 적용하면 되죠? 이렇게 해서 메탈릭에다가 이 텍스처를 그냥 집어 넣으면 되죠. 집어 넣으니까 어떻게 됐습니가? 금속으로 남아있던 부분은 이렇게 반짝반짝하고요. 녹슨 부분으로 여겨지는 부분은 확실히 둔탁해졌습니다. 스펙큐러가 확실히 안 나타나기 시작했죠. 이렇게만 하면 기본적으로는 재질이 표현되는데요. 이것만으로는 부족하니까 노말 맵까지 함께 해주는 게 좋겠죠? 노말 맵도 보통 이런 재질이었는데, 이런 식으로 높낮이를 주는 거죠. 이런 식으로 여기는 확실히 녹슬어서 들어간 것처럼 그런 표현이 가능해지게 됩니다. 즉, 여기 있는 이 텍스처들을 갖다가 잘 조절하시면 이런 복합 재질도 퀄리티 높게 표현할 수 있다는 거죠. 이렇게 해서 공 재질의 녹슨 부분이 완성되었습니다. 이런 식으로 제어하시면 물리 기반 Shader를 갖다가 이 원리에 맞게 제어하실 수 있게 되는 겁니다. 감사합니다.
01. 이 강좌에 대해서
게임 엔진에서 물리 기반 셰이더가 어떻게 사용되는지 알아보고 Albedo , Metallic, Smoothness 적용 등의 실습과정을 안내합니다.
02. 강사 소개
정종필 (청강대 게임스쿨 교수)
03. 강사 이력
- 청강문화산업대학교 게임콘텐츠스쿨 교수 - 前 ㈜ 엔도어즈 테크니컬 아트 디렉터 - 前 ㈜ 조이온 아트 디렉터 - 前 ㈜ 드림웨어 그래픽 팀장 - 前 H.Q.TEAM 그래픽 팀장
[저서] - 01년 앗싸! 게임 만들기 -실무자에게 배워보는 게임그래픽-(공저)-비비컴' 집필 - 05년 사이버게임 아카데미 ‘게임이펙트’ 사이버강의 과정 집필 - 06년 (재)한국게임산업개발원 5차년도 교재 - 게임영상연출&이펙트 - 집필 (공저) - 07년 사이버게임 아카데미 ‘기획자가 알아야 할 2D 게임 그래픽’ 사이버강의 과정 집필 - 08년 모바일 기기용 게임 개발을 위한 가변 인덱스 컬러 응용 - 한국 콘텐츠 학회 논문지 - 10년 텍스쳐 스플레팅 방식에서의 게임 지형 표현을 위한 전이타일의 표현 방법 개선 - 한국 게임학회 - 10년 게임 배경 표현을 위한 진보된 타일 텍스쳐 제작 방법 - 상명대학교 - 14년 Game Graphics / 3D Technical Art 참여 - 비엘북스