hswangrui / PrimoToon

Shader for Unity (Built-in Rendering Pipeline) attempting to replicate the shading of Genshin Impact developed by miHoYo. This is for datamined assets, not custom-made ones nor the MMD variants.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PrimoToon.mp4

PrimoToon


GitHub license
GitHub stars Discord GitHub issues


This README.md is WIP


Temporary guide

Make sure ALL your textures have Texture Type set to Default, Compression set to None, and Generate Mip Maps unticked. Some people have told me that for VRChat, compression and generating mip maps are recommended so that avatars are optimized. In that case, you may enable said options for most of the textures except the ramp textures so as to prevent artifacting and precision issues.

All ramp textures should have Wrap Mode changed from Repeat to Clamp. The specular ramp texture must have the sRGB (Color Texture) property unticked.

All lightmaps, normal maps, and the face shadow texture should have their sRGB (Color Texture) property unticked. Keep in mind with what I've said earlier, the normal map should have the Texture Type set to Default. IGNORE THE NORMAL MAP TEXTURE TYPE!

Unity projects in the Built-in Rendering Pipeline default to the Gamma option for color management. This is not what Genshin Impact uses. To avoid color inaccuracy, make sure that the Color Space is set to Linear in the Project Settings.

Genshin Impact models have custom tangents within them. If your model is properly ripped, you'll want to make sure that the Tangents property is set to Import instead of the default Calculate Mikktspace.

Contact / Issues

Rules

  • The GPL-3.0 License applies.
  • If you use this shader as is in avatars for VRChat, renders, animations or any form of medium that does not directly modify the shader, I'd appreciate being credited - you don't have to do it though.
  • If you use this shader as the main reference for your own shader, please give credit where it's due.
  • In compliance with the license, you are free to redistribute the files as long as you attach a link to the source repository.

Contributing

My code is most likely horrible given that this is my first programming project so I'd appreciate any help! Just create a pull request and I'll do my best to get to it ^^

Special thanks

All of this wouldn't be possible if it weren't for:

Disclaimer

This shader isn't meant to be 100% accurate - what I only aim for is to replicate the in-game looks to the best of my ability. Some calculations are exactly how the game does things, some are my own thrown into the mix.

While the shader is developed primarily for datamined assets, this repository does not endorse datamining in any way whatsoever and will never directly provide the assets nor tools in extracting from game files.

Since you've read this far...

Using this shader is completely free if it's not already evident from the license BUT - if and only if you have something to spare and would like to support me, then you can do so on my Ko-fi here. I appreciate every tip and each one motivates me to keep on improving the shader.

About

Shader for Unity (Built-in Rendering Pipeline) attempting to replicate the shading of Genshin Impact developed by miHoYo. This is for datamined assets, not custom-made ones nor the MMD variants.

License:GNU General Public License v3.0


Languages

Language:HLSL 71.4%Language:GLSL 28.6%