MAKING 3D ITEMS - 3D MAYA
기타

빌트인 쉐이더 가이드

24min

👍 시작하기에 앞서 제페토 빌트인 쉐이더 샘플이 최신 버전으로 다운로드 되었는지 확인합니다. 3.2.12 버전 이상의 최신 프로젝트 파일에는 제페토 빌트인 쉐이더가 포함되어 있습니다.



STEP 1: 준비하기

제페토에서 제공하는 빌트인 쉐이더는 ZEPETO/BuiltIn 경로를 통해 사용할 수 있습니다.

Document image


STEP 2-1: Lit

Document image




Document image




Lit 쉐이더는 기본 Unity 스탠다드 쉐이더에서 디테일 노말 부분만 제거되고 컬러 그레이딩 옵션이 추가된 기본 쉐이더입니다.

📘Unity에서 제공하는 가이드를 참고하여 주세요. [Standard Shader Material Parameters]



  • 컬러 그레이딩 옵션이 항상 켜져있는 상태로 작업합니다.
  • Metallic, Smoothness, Occlusion의 경우 텍스쳐의 R채널(Metallic), G채널(Occlusion), A채널(Smoothness)를 사용하기 때문에 텍스쳐 한장으로 제어가 가능합니다.
Document image




  • 서브스텐스페인터에서 텍스쳐 추출하실 때, Unity HD Render Pipeline(Metallic Standard)로 추출하시면, MaskMap에 해당 정보가 포함된 상태로 추출됩니다. 해당 텍스쳐를 각각 Metallic, Occlusion에 연결해줍니다.



STEP 2-2 : LitWithDetailNormal

Document image




Document image




LitWithDetailNormal 쉐이더는 Lit 쉐이더에서 디테일 노말 부분이 추가된 쉐이더로 다른 타일링을 사용하는 Secondary 텍스쳐를 사용할 수 있습니다.

📘 Unity에서 제공하는 가이드를 참고하여 주세요. [Standard Shader Material Parameters]

👍 해당 쉐이더는 Lit 쉐이더에 비해 많은 연산량을 요구하기 때문에, Secondary Maps을 사용하지 않는 상황이라면 Lit 쉐이더를 사용하는 것이 좋습니다.



  • 컬러 그레이딩 옵션이 항상 켜져있는 상태로 작업합니다.
  • Metallic, Smoothness, Occlusion의 경우 텍스쳐의 R채널(Metallic), A채널(Occlusion), G채널(Smoothness)를 사용하기 때문에 텍스쳐 한장으로 제어가 가능합니다.
  • 서브스텐스페인터에서 텍스쳐 추출하실 때, Unity HD Render Pipeline(Metallic Standard)로 추출하시면, MaskMap에 해당 정보가 포함된 상태로 추출됩니다. 해당 텍스쳐를 각각 Metallic, Occlusion에 연결해줍니다.
  • Secondary maps: A채널에 값을 받는 Detail Mask로 영역을 정해줄 수 있습니다.
  • DetailAlbedo의 A채널에 같이 묶어주면 텍스쳐 개수를 효율적으로 사용할 수 있습니다.
Document image




STEP 2-3 : Cloth

Document image




Document image


Cloth 쉐이더는 벨벳 재질을 표현하는 쉐이더로 공통 프로퍼티에서 Sheen Color와 Sheen Roughness 프로퍼티를 추가로 제어할 수 있습니다.

  • 컬러 그레이딩 옵션이 항상 켜져있는 상태로 작업합니다.
  • Sheen Color: 패브릭 표면에 생기는 광택컬러를 조절할 수 있습니다.
  • Sheen Roughness: 광택의 거칠기를 조절할 수 있습니다.
  • Cloth 쉐이더는 Metallic, Smoothness의 수치에 따른 변화가 Lit 쉐이더와는 다르게 나타납니다.



STEP 2-4 : CustomEnv

Document image




Document image




CustomEnv 쉐이더는 기존 scene에 환경을 반사하는 Lit 쉐이더에서 유저가 원하는 커스텀 환경을 반사할 수 있게 제작된 쉐이더로, 제페토 기본 환경에서 표현하기 어려운 고 광택이나 보석 재질을 표현할 수 있습니다.

  • 컬러 그레이딩 옵션이 항상 켜져있는 상태로 작업합니다.
  • Env cubemap: 반사시킬 HDRI리소스를 적용합니다.(해당 텍스쳐의 Texture Shape은 Cube로 설정 되어있어야 합니다.)
Document image

  • Env horizontal rotation: 머테리얼에 반사되는 HDRI 리소스를 회전시킵니다.
  • CustomEnv 쉐이더는 Metallic, Smoothness의 수치에 따른 변화가 Lit 쉐이더와는 다르게 나타납니다.
Document image




STEP 2-5 : Fur

Document image




Document image


Fur 쉐이더는 털 재질을 표현할 때 사용되는 쉐이더로 기존 Metallic, Smoothness 프로퍼티에 Fur 관련 프로퍼티와 Lighting 관련 프로퍼티가 추가 되었습니다

여기에 반복되는 퍼의 느낌을 표현하기 위해 NormalMap 타일링이 Albedo, MetallicSmoothness 맵 타일링과 별도로 존재합니다.(노말맵이 fur의 offset 되는 방향에 영향을 줍니다.)

  • 컬러 그레이딩 옵션이 항상 켜져있는 상태로 작업합니다.



Fur Property

  • FurMap: Fur관련 property에 사용되는 텍스쳐로 R채널에 Fur패턴, G채널에 Fur마스크, B채널에는 중력에 영향을 받는 정도를 제어합니다.
Document image

  • Fur Length: Fur의 길이를 조절합니다.
  • Fur Density: Fur의 밀도를 조절합니다.
  • Edge Density: 개체 가장자리의 털 밀도를 조정합니다.
  • Fur Gravity: Fur가 offset되는 방향을 조절합니다.



Lighting Property

  • Fur Occlusion Color: Fur 사이사이에 Occlusion 컬러를 조절 할 수 있습니다.(Fur의 깊이감이 생깁니다.)
  • Fur Occlusion Strength: Fur Occlusion의 강도를 조절합니다.
  • Rim Light Mode: Fur가장자리부분의 빛느낌을 선택합니다.(None - 없음, Natural - Albedo컬러에 맞게 자연스럽게, AmbientLight - 씬에 환경광에 맞게, UserDefined - 사용자지정)
  • Rim Factor: 가장자리 부분의 빛 영역을 조절합니다.
  • Use Directional Fresnel: 빛을 받는 부분에만 RimLight를 사용합니다.



❗️ 주의사항

모바일 특성상 최적화를 위해서 Fur 쉐이더에서 계산되는 offset패스는 7개만 사용하고 있습니다. 따라서 Fur Length를 길게하면 털이 자연스럽지 않게 보입니다. 길이가 긴 모피를 표현할 때에는, 크게 모델링하는 것을 추천합니다.



STEP 2-6 : Iridescence

Document image




Document image




Iridescence 쉐이더는 오브젝트 표면에 얇은 필름 코팅층을 씌웠을 때 보이는 무지개 빛의 필름 코팅쉐이더입니다. 필름 코팅층에 생기는 무지개빛 컬러는 사용자가 직접 설정할 수는 없고 [Hal Open Science]에서 제시하는 계산법에 의해 자동으로 생성됩니다.

Document image

  • 컬러 그레이딩이 켜져있을 경우 Iridescence 표현이 잘 나타나지 않을 수 있습니다.
  • Thickness: 코팅층의 두께
  • η2: 필름 코팅층 매질의 굴절률
  • η3: base 물체 매질의 굴절률
  • κ3: The value of calculating the internal complex refractive index η3 + i κ3 of the base material
  • Controllable scale: 여러층에서 spread되는 빛의 각도를 강제로 scale하는 값을 조절
  • Iridescence쉐이더는 Metallic, Smoothness의 수치에 따른 변화가 Lit 쉐이더와는 다르게 나타납니다.

👍 Iridescence 쉐이더를 사용할 때는 직접 각각의 프로퍼티를 조절해보며 표현하고자하는 느낌에 가깝게 맞춰보는 것이 좋습니다.



STEP 2-7 : Sparkle

Document image




Document image


Sparkle쉐이더는 오브젝트 표면에 흩뿌려져있는 얇은 조각층에서 반사되는 빛을 표현하는 쉐이더로 빛과 카메라 방향에 따라서 달라지는 효과를 나타낼 때 사용됩니다.

❗️ 주의사항 쉐이더에서 사용되는 Noise 리소스는 쉐이더 자체에 내장되어있기 때문에 별도로 수정할 수는 없고, 아래의 프로퍼티에서 느낌을 조절 할 수 있습니다.

  • 컬러 그레이딩 옵션이 항상 켜져있는 상태로 작업합니다.
  • Noise Intensity : 반짝이는 정도를 조정합니다.
  • Noise Concentration: 반짝임이 보이는 영역을 조절합니다.
  • Noise Size: 반짝이의 사이즈를 조절합니다.
  • Noise Density: 반짝이의 밀도를 조절합니다.



STEP 2-8 : Toon

📘 다음 가이드를 참고하여 주세요. Toon Shader



STEP 2-9 : HairAlpha

Document image




Document image




hairAlpha 쉐이더는 hair를 제작할 때 사용되는 쉐이더로, 기존 제페토 hair 쉐이더에서 Alpha 지원 및 Bridge(헤어 컬러에 영향을 받지 않는 부분)를 표현할 수 있게 수정 되었습니다.

  • 기본 머테리얼 세팅은 제페토 앱에 포함된 헤어 텍스쳐가 연결되어 있기 때문에 원하는 느낌의 Alpha 텍스쳐를 사용하는 경우가 아니라면 별도의 수정없이 사용합니다.
  • 헤어의 경우 기본 RenderType이 Transparent이기 때문에 렌더큐를 조절할 경우, 다른 투명 머테리얼과 중첩하여 문제가 발생할 수 있습니다. 따라서 렌더큐는 수정하지 않습니다.
  • 헤어를 제작할 때 겹쳐지는 메쉬에 알파소팅 현상을 해결하기 위해서 머테리얼을 여러개 설정한 후 렌더큐를 다르게 설정해서 해결하는 경우가 많습니다. 이 경우 여러개의 머테리얼을 설정하는 것이 아닌 하나의 머테리얼(렌더큐3000)로 버텍스 넘버를 조절하여 해결할 수 있습니다.

❗️ 주의사항

보통 투명한 메쉬를 렌더링 할 때, 버텍스 넘버가 낮은 순서에서 높은 순서대로 차례대로 그립니다. 이때 나중에 그려지는 메쉬는 앞으로 나온 것 처럼 보이게 됩니다.

3D 모델링 프로그램에서는 임의로 버텍스 넘버를 수정할 수 없지만, 메쉬를 합치는(마야에서는 Combine, 블렌더에서는 Join)순서에 따라 나중에 합쳐지는 메쉬의 버텍스 넘버가 높게 설정되기 때문에, 하나의 머테리얼에서도 알파소팅 현상을 해결할 수 있습니다.

📘 다음 가이드를 참조하십시오. [How to solve transparent material alpha sorting issue]