Studio GuideWorld SDK Guide
Log In

ZEPETO BuiltIn Shader

👍

Before you start, make sure that the [Zepeto Studio Project File] is downloaded to the latest version. The latest project file of version 3.2.12 and later includes the Zepeto Built-in Shader.


📘

sample

Zepeto built-in shader sample


STEP 1: Getting Ready

The BuiltIn shader provided by ZEPETO is available through the ZEPETO/BuiltIn path.


STEP 2-1: Lit



The Lit shader is the default shader with only the detail normal removed from the default Unity Standard shader and the color grading option added.

📘

Please refer to the guide provided by Unity. [Standard Shader Material Parameters]


  • Always work with the color grading option turned on.

  • For Metallic, Smoothness, and Occlusion, the texture's R (Metallic), G (Occlusion), and A (Smoothness) channels are used so that you can control them with a single texture.


  • When extracting textures from the Substance Painter, if you extract them with the Unity HD Render Pipeline (Metallic Standard), the corresponding information is included in the MaskMap. Link the textures to Metallic and Occlusion respectively.

STEP 2-2 : LitWithDetailNormal



The LitWithDetailNormal shader is a shader with an added detail in the Lit shader and can use a secondary texture with different tiling.

📘

Please refer to the guide provided by Unity. [Standard Shader Material Parameters]


👍

Because this shader requires more computation than Lit shader, it is recommended to use Lit shader if you are not using Secondary Maps.


  • Work with the Color Grading option always on.
  • In the case of Metallic, Smootheness, and Occlusion, the texture's R, A, and G channels are used, so they can be controlled with a single texture.
  • When extracting textures from the Substance Painter, if you extract them with the Unity HD Render Pipeline (Metallic Standard), the corresponding information is included in the MaskMap. Link the textures to Metallic and Occlusion respectively.
  • Secondary maps: You can define an area with a Detail Mask that receives values from Channel A.
  • You can use the number of textures efficiently by tying them together with DetailAlbedo's A channel.

STEP 2-3 : Cloth



Cloth shader expresses velvet material and allows additional control of Sheen Color and Sheen Roughness properties in common properties.

  • Work with the Color Grading option always on.
  • Sheen Color: You can adjust the glossy color on the fabric surface.
  • Sheen Roughness: You can adjust the roughness of the gloss.
  • Note that the changes based on the values of Metallic and Smoothness in the Cloth shader are different from the Lit shader.

STEP 2-4 : CustomEnv



The CustomEnv shader is a transition from the Lit shader, which reflects an environment into an existing scene, to a shader that can reflect custom environments of your choice, such as high gloss or jeweled materials that are difficult to represent in the default ZEPETO environment.

  • Work with the Color Grading option always on.
  • Env cubemap: Applies the HDRI resource to be reflected (the Texture Shape for this texture must be set to Cube).
  • Env horizontal rotation: Rotates the HDRI resource reflected on the Material.
  • Note that the changes based on the values of Metallic and Smoothness in the CustomEnv shader are different from the Lit shader.

STEP 2-5 : Fur



The Fur shader is used to express fur material, and Fur-related and Lighting-related properties have been added to the existing Metallic and Smootheness properties.

Here, NormalMap tiling exists separately from Albedo, MetallicSmoothness map tiling to express the recurring feeling of fur (The normal map affects the direction in which the fur is offset).


  • Work with the Color Grading option always on.

Fur Property

  • FurMap: Textures used in Fur-related properties; control the Fur pattern in the R channel, Fur mask in the G channel, and how much gravity is affected in the B channel.

  • Fur Length: Adjust the length of Fur.
  • Fur Density: Adjusts the density of Fur.
  • Edge Density: Adjusts the Fur density at the edge of the object.
  • Fur Gravity: Adjusts the direction in which Fur is offset.

Lighting Property

  • Fur Occlusion Color: You can adjust the Occlusion color between the Fur. (This gives the fur a sense of depth.)
  • Fur Occlusion Strength: Adjusts the strength of Fur Occlusion.
  • Rim Light Mode: Select the light feel of the Fur edge (None - none, Natural - natural for Albedo color, AmbientLight - environmental light for the scene, and UserDefined - custom)
  • Rim Factor: Adjusts the area of light at the edge.
  • Use Directional Fresnel: Use RimLight only for areas that receive light.

❗️

Caution

For optimization due to mobile characteristics, we only use 7 offset passes calculated by Fur Shader. Therefore, if you increase Fur Length, the fur will not look natural. When expressing long fur, it is recommended to model it large.


STEP 2-6 : Iridescence



The Iridescience shader is a rainbow-colored film coating shader that is visible when a thin film coating layer is placed on the surface of an object. The rainbow colors on the film coating layer cannot be set by the user and are automatically generated by the calculations presented in Hal Open Science.


  • If color grading is turned on, the Iridescence representation may not show up well.
  • Thickness: Thickness of coating layer
  • η2: Refractive index of film coating layer medium
  • η3: Refractive index of base object medium
  • κ3: The value of calculating the internal complex refractive index η3 + i κ3 of the base material
  • Controllable scale: Adjusts the value that forces the angle of light spread across multiple layers to scale.
  • Note that the changes based on the values of Metallic and Smoothness in the Iridescence shader are different from the Lit shader.

👍

Sparkle shader expresses light reflecting off of a thin layer of fragments scattered across the surface of an object, and is used to create a sparkle effect that varies with light and camera orientation.


STEP 2-7 : Sparkle



The Sparkle shader expresses light reflected from a thin layer of flakes scattered on the surface of an object.
It is used to create effects that vary with light and camera orientation.

❗️

Caution

The Noise resource is built into the shader itself and cannot be modified separately, but you can adjust the feel in the properties below.


  • Work with the Color Grading option always on.
  • Noise Intensity: Adjust the degree of glitter.
  • Noise Concentration: Adjusts the area where the glitter is visible.
  • Noise Size: Adjust the size of the glitter.
  • Noise Density: Adjust the density of glitter.

STEP 2-8 : Toon

📘

Please refer to the following guide. Toon Shader


STEP 2-9 : HairAlpha



The HairAlpha shader is used to create hair, and it has been modified to express Alpha support and Bridge (the part that is not affected by hair color) in the existing ZEPETO hair shader.

  • The basic material setting is connected to the hair texture included in the ZEPETO app, so unless you're using the Alpha texture you want, use it without any modifications.
  • For hair, the default RenderType is Transparent, so adjusting the render queue can cause problems by overlapping with other transparent materials. Therefore, do not modify the render queue.
  • When creating hair, it is common to set up multiple Materials and use different render queues to resolve alpha sorting on overlapping meshes. In this case, instead of setting multiple materials, you can adjust the vertex number with one material (render queue 3000).

❗️

Caution

Usually, when rendering transparent mesh, the vertex numbers are drawn in order from low to high. At this time, the mesh drawn later looks like it came out in front.

While 3D modeling programs do not allow you to modify vertex numbers arbitrarily, the order in which you combine meshes (Combine in Maya, Join in Blender) will set the vertex numbers of the later meshes to be higher, so you can solve alpha sorting even in a single material.


📘

Please refer to the following guide. [How to solve transparent material alpha sorting issue]