여러분 안녕하세요. 첫 번째 강의에서는 ‘Shader Forge‘를 설치하는 방법과 기본적인 조작법, 오브젝트의 적용 방법에 대해서 알아보았습니다. Shader는 원래 내부적으로 복잡한 수학 연산과 코딩으로 작동되고 있지만, 지난 강의를 통해 ‘Shader Forge‘를 이용하면 복잡한 연산과 코딩 없이 쉽게 Shader를 제작할 수 있다는 것을 알 수 있었습니다. 이번 시간에는 Shader Forge의 Properties 부분에 대해서 계속해서 알아보는 시간을 갖고, 간단한 색상 연산에 대해서도 실습을 통해 본격적인 Shader를 제작해보도록 하겠습니다.
자, 그럼 계속해 보도록 하겠습니다, Texture와 Diffusepower가 연결되어서 이렇게 만들었죠. 자, texture가 되어있고 Diffusepower는 빛을 이렇게 날카롭게 받다가 부드럽게 받다가 하는 식을 추적하게 되어있습니다. 컬러는 현재 아무런 영향도 주고 있지 않고 있죠. 자, 여기서도 컬러 노드는 아무런 영향을 주고 있지 않고 있는 것을 알 수 있습니다. 자, 일단 texture랑 Diffusepower치워 놓고 칼라를요, specular에 연결해 보겠습니다. 컴파일 shader하면 이렇게 specular가 만들어지는 것을 볼 수 있습니다. 자, 이렇게 한번 가보면, specular가 만들어졌죠? 여기 빨강 색으로 만들었기 때문에 빨간색으로 나와 있는데요. 흰색으로 만들어 보겠습니다. 네. 이렇게 specular가 만들어진 것을 알 수 있습니다. 다음은 gloss. gloss를 눌러보니까 일단 RGB를 받지는 않죠? R이나, B나, G나 A처럼 한자리. 한자리만 받는다는 뜻입니다. 세자리는 받지 않고요. 자, 그럼 한자리 interface를 만들어 보겠습니다. 오른쪽 클릭해서요. properties에서 slider을 해도 괜찮고요. Value를 해도 괜찮습니다. slider과 다른 점은 이것은 직접 숫자를 입력한다는 것이 다르죠. slider은 이 slider로 한다는 것과 value는 직접 숫자를 입력한다는 차이 밖에 없습니다. 이번에는 이것을 한번 써보겠습니다. 이렇게 해서 컴파일 하면요. 굉장히 넓어졌죠? 숫자가 한 10되면 어떻게 되는지 보겠습니다. 거의 안보이네요. 1 해볼까요? 1을 하니까 굉장히 작아지네요. 0.5를 하면 이렇게 되네요. 기본 값은 1로 해보겠습니다. 이렇게 하고, 컴파일 shader합니다. 기본 값이 0 으로 들어가 있네요. 자, 1로 바꿀게요. 1로 바꾸면, 이렇게 되어있습니다. 자, 여기서 이것을 0으로 바꾸면 이렇게, 0으로 바꿀수록 넓어지는 거죠. slider로 해도 아무 상관이 없겠죠? slider과 다른 점은, slider은 이렇게 slide하는 것이고, Value는 직접 숫자를 입력한다는 것이 다른 점입니다. 자, 이렇게 value를 이용해서 gloss를 만들어 보았습니다. 다음은 Normal map을 집어넣어 보겠습니다. Normal map은 일종의 Texture죠. 역시 properties, texture to 2D로 texture을 적용해서 이렇게 RGB를 집어넣으면 됩니다. 그런데 뭔가 이상하게 나오죠? 이렇게 하면 되는 것이 아니라, texture을 집어넣을 때, Normal인 경우, 여기서 Normal map 체크를 해줘야 합니다. 자, Normal map. 이렇게 체크 됐고, 이것만 체크 해주면 별 문제 없죠? 자, 이렇게 하고 파일 shader로 가보면, 이렇게 되어 있고요. Interface에 보면 Normal Map을 넣을 수 있는 texture 항목이 하나 더 생겨있습니다. select 눌러서 적당한 Normal map을 집어 넣어보겠습니다. 이렇게 Normal map이 적용되어 있는 것을 보실 수 있습니다. 우리는 지금 Normal map이 적용되어 있는 texture을 만들었습니다. specular color을 조정할 수 있고요. Texture과 Normal map을 집어넣을 수 있고 Diffusepower과 여기 있는 gloss를 조절할 수 있는 기능의 shader을 지금 만든 것입니다. 자, 계속 해 볼까요? 조금 정신이 없으면, 이름을 정리해 주는 것도 좋겠습니다. 여기를 specular 컬러라고 해 주고요,여기를 gloss라고 해주고요. 여기를 Normal이라고 해주면 좋겠습니다. 컴파일 shader해주면 이름이 보기 좋게 정리되어 있는 것을 알 수 있겠죠. Interface의 위치를 바꾸고 싶으면, 여기 있는 properties를 눌러서 여기 있는 부분의 위치를 바꿔주면 됩니다. Specular 컬러는 개인적으로 조금 아래로 내려왔으면 좋겠고요. Diffusepower은 texture 밑에 있었으면 좋겠고요. Gloss와 Normal, Normal을 위로 올릴까요? 이렇게 있으면 좋겠습니다. 컴파일 해보면, 제가 원한대로 변했네요. Normal map을 바꾸면서, Normal map의 texture가 다시 지워진 것을 다시 집어넣어 보겠습니다. 이렇게, 잘 적용이 됐습니다. 다음은 Emission에 적용해 보겠습니다.
Emission은 발광, 색깔이 밝게 빛나는, 스스로 빛을 발하는 그런 부분이기 때문에 일단 컬러를 하나 만들어서 RGB로 넣어보면, 컴파일 하면, 빛납니다. 이 부분은 까만색이 되어야 빛이 나지 않고 하얗게 날아가고요. 그 색깔로 빛을 방사하는 그런 재질입니다. 컴파일 하면요, 자, 이렇게 되어있죠? 회색으로 되어있죠? 자, 여기를 검정색으로 하면 빛을 방사하지 않고 흰색으로 하면 빛을 방사하고 빨강색이나 기타 이런 식으로 빛이 밝게 빛나게 만들 수 있습니다.
이번에는 diffuse texture에 색상을 연산하는 것을 해보겠습니다. diffuse texture은 현재, diffuse texture의 고유한 색만 나오게 되어 있습니다. 이 diffuse texture에 색을 바꾸는 법입니다. 자, 이번엔 properties에서 컬러를 하나 만들어 보겠습니다. 이름을 하나 지어볼까요? 예를 들어서 Main color. 이 컬러가 diffuse color를 바꿀 것입니다. 바꾸기 위해서, 수학 계산 공식이 필요합니다. 수학이라고 어려워 할 것 없이요. 여기에 보면, Arthmetic 이라고 나와 있죠? 여기에 Add. 더하기가 Add입니다. 더하기를 이용해서 연산해 보겠습니다. 둘을 더하는 것입니다. 둘을 더하면요. 이렇게 더해서 나오는 값을 diffuse에 집어넣으면, 컴파일 하면, 밝아지겠죠? 자, interface를 보기 편하게 바꿔보겠습니다. 메인컬러를 맨 위로 올려보겠습니다. 이렇게 올리고요. 컴파일 shader하고요. 메인 컬러 흰색이 texture과 더해진 것입니다. 검정색과 더하면 아무 일이 없겠죠? 빨강색을 더합니다. 이렇게. 색상을 더하는 것입니다. 곱하기도 가능합니다. 여기서 multiply를 꺼내서요. 이 컬러와 texture을 곱해서 넣으면 Add는 필요 없으니까, 선택을 해서 지우죠. 컴파일 해보면 이번에는 어두워집니다. 왜냐하면, 검은색을 곱했기 때문이죠. 흰색을 곱해야 원래 색이 나오고요 검은색이 곱해지면 어두워집니다. 이것은 간단한 산수입니다. 자, 여기서 빨간색을 입히면 빨게지죠. 여기서 texture의 색상을 변하게 할 수 있습니다. 이것이 가장 기본적인 색상의 연산방법입니다.
다시 한번 정리해볼까요? 이번 시간에는 Shader Forge의 추가적인 인터페이스 제작과 간단한 이미지 연산 노드를 만들어 보았습니다. 다음 시간에는 이미지나 색상의 자연스러운 전환을 위해서 내장된 선형보간 함수를 이용해 보고, 투명도가 있는 오브젝트 제작을 위해서 알파 블렌딩을 가동시키는 법을 배워보도록 하겠습니다.
01. 이 강좌에 대해서
Shader는 원래 내부적으로 복잡한 수학 연산과 코딩으로 작동되고 있지만, 지난 강의를 통해 ‘Shader Forge‘를 이용하면 복잡한 연산과 코딩 없이 쉽게 Shader를 제작할 수 있다는 것을 알 수 있었습니다.
이번 시간에는 Shader Forge의 Properties 부분에 대해서 계속해서 알아보는 시간을 갖고, 간단한 색상 연산에 대해서도 실습을 통해 본격적인 Shader를 제작해보도록 하겠습니다.
02. 강사 소개
정종필 (청강대 게임스쿨 교수)
03. 강사 이력
- 청강문화산업대학교 게임콘텐츠스쿨 교수 - 前 ㈜ 엔도어즈 테크니컬 아트 디렉터 - 前 ㈜ 조이온 아트 디렉터 - 前 ㈜ 드림웨어 그래픽 팀장 - 前 H.Q.TEAM 그래픽 팀장
- 01년 앗싸! 게임 만들기 -실무자에게 배워보는 게임그래픽:(공저)-비비컴' 집필 - 05년 사이버게임 아카데미 ‘게임이펙트’ 사이버강의 과정 집필 - 06년 (재)한국게임산업개발원 5차년도 교재 : 게임영상연출&이펙트 - 집필 (공저) - 07년 사이버게임 아카데미 ‘기획자가 알아야 할 2D 게임 그래픽’ 사이버강의 과정 집필 - 08년 모바일 기기용 게임 개발을 위한 가변 인덱스 컬러 응용 : 한국 콘텐츠 학회 논문지 - 10년 텍스쳐 스플레팅 방식에서의 게임 지형 표현을 위한 전이타일의 표현 방법 개선 : 한국 게임학회 - 10년 게임 배경 표현을 위한 진보된 타일 텍스쳐 제작 방법 : 상명대학교 - 14년 Game Graphics / 3D Technical Art 참여 : 비엘북스
연계과정
Unity를 이용한 Shader 제작 기초 3 - Shader 함수 사용과 Alpha Blending
중급
온라인교육ㆍ
렌더링/셰이더
Unity를 이용한 Shader 제작 기초 1 - Shader Forge의 기본 조작과 인터페이스