base on 希望开源能够帮到所有人 # 【ShaderLibrary】 [TOC] ------ # 😉约定 ​ 在Unity里有[**Shader Forge (SF)**](https://www.acegikmo.com/shaderforge/)、[**Amplify Shader Editor (ASE)**](http://amplify.pt/unity/amplify-shader-editor/)、[**Shader Graph (SG)**](https://docs.unity3d.com/cn/Packages/[email protected]/manual/index.html) 三种连连看,代码虽然都是[**ShaderLab**](https://docs.unity3d.com/cn/current/Manual/SL-Reference.html)语法但也主要分了[**CG**](https://en.wikipedia.org/wiki/Cg_%28programming_language%29)和[**HLSL**](https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl)两种,故在此假定我个人的使用规范。 ​ 因为CG语言NVIDIA不再更新,Unity也逐渐放弃,手机成为主流,故大多Shader使用[**URP**](https://docs.unity3d.com/cn/Packages/[email protected]/manual/index.html)管线编写,该工程以[**2021.3.0f1c1以上URP**](https://unity.cn/releases/lts)为基准,我更希望向上升级,尽量不向下兼容,不要再乘坐旧时代的大船了,如果说新的东西不好,那么为什么大家费时费力费钱的去更新这么些的东西。 ​ 命名前缀按照制作Shader的工具类型当作前缀。如:ASE_XXX、SG_XXX... ​ Shader路径按照使用的管线分类,一级为管线类型,二级为类别。如:Default/Base/ASE_XXX、URP/Base/SG_XXX... ​ Shader采用模块化路径,每一个Shader分为一个文件夹,相关的模型材质引用都放在根目录的**ShaderLib**文件夹下,如:Assets/ShaderLib/Base_XXX/S_XXX.shader ## 命名 | 使用工具 | 前缀缩写 | 命名方式:前缀缩写_名称.xxx | | :----------------------------- | :------- | :----------------------------- | | Shader Forge | SF_ | SF_SimpleLit.shader | | Amplify Shader Editor | ASE_ | ASE_SimpleLit.shader | | Amplify Shader Editor 材质函数 | ASEF_ | ASEF_CustomLight.asset | | Shader Graph | SG_ | SG_SimpleLit.shadergraph | | Shader Graph 子图 | SGS_ | SGS_CustomLight.shadersubgraph | | Shader Graph HLSL引用 | SGH_ | SGH_CustomLight.hlsl | | 代码 | S_ | S_SimpleLit.shader | | CG引用 | SIC_ | SIC_CustomLight.cg | | HLSL引用 | SIH_ | SIH_CustomLight.hlsl | | GLSL引用(几乎不用) | SIG_ | SIG_CustomLight.glsl | ## 路径 | 管线 | 命名方式:管线类型/类别/文件名 | | :---------------------- | :------------------------------ | | Default(默认渲染管线) | Default/Base/S_SimpleLit.shader | | LWRP(轻量渲染管线) | LWRP/Base/S_SimpleLit.shader | | **URP(通用渲染管线)** | **URP/Base/S_SimpleLit.shader** | | HDRP(高清渲染管线) | HDRP/Base/S_SimpleLit.shader | **引用材质函数/子图路径** 如果不通用只用一次就放在原材质旁边,如果通用就要放在对应的Include文件夹内,如项目文件夹路径:Assets/Arts/**Shaders**/Include/ASE | 使用工具 | 文件夹路径 | 命名方式 | | ------------------------------ | -------------------------------- | -------- | | Shader Forge 材质函数 | Assets/Arts/Shaders/Include/SF | SFF_xxx | | Amplify Shader Editor 材质函数 | Assets/Arts/Shaders/Include/ASE | ASEF_xxx | | Shader Graph 子图 | Assets/Arts/Shaders/Include/SG | SGS_xxx | | Shader Graph HLSL引用 | Assets/Arts/Shaders/Include/SG | SGH_xxx | | CG引用 | Assets/Arts/Shaders/Include/CG | SIC_xxx | | HLSL引用 | Assets/Arts/Shaders/Include/HLSL | SIH_xxx | | GLSL引用 | Assets/Arts/Shaders/Include/GLSL | SIG_xxx | ## 类别 ​ 该工程为模块化文件夹,是为了方便导出,以及导出后的在新工程的顺利的检索和迁移,与实际项目工程文件夹会有所出入。如: ​ 模块化文件夹路径:Assets/ShaderLib/**Base_SimpleLit**/S_SimpleLit.shader ​ 项目文件夹路径:Assets/Arts/Shader/**Base**/S_SimpleLit.shader | 类别 | 文件名 | 文件夹名称:类别_名称 | | :--------------------- | :----------------- | :-------------------- | | Base(基本的) | S_SimpleLit.shader | Base_SimpleLit | | Car(车漆相关) | | | | Character(角色相关) | | | | Cloud(云相关) | | | | Effect(效果类型的) | | | | Fog(雾效相关) | | | | FX(给特效使用的) | | | | Geometry(几何着色器) | | | | Glass(玻璃相关的) | | | | PPS(后处理相关) | | | | Render(渲染效果) | | | | Sky(天空盒相关) | | | | Tool(功能性材质) | | | | Vertex(顶点相关的) | | | | Water(水相关的) | | | ------ # 🤡目录 ## Base ### Base_SimplePBR ![](./ShaderLib_2021/Recordings/Base_SimplePBR/Base_SimplePBR.png) ![](./ShaderLib_2021/Recordings/Base_SimplePBR/Base_SimplePBR.gif) ------ ### Base_Unlit ![](./ShaderLib_2021/Recordings/Base_Unlit/Base_Unlit.png) ![](./ShaderLib_2021/Recordings/Base_Unlit/Base_Unlit.gif) ------ ## Car ### Car_CarPaint ![](./ShaderLib_2021/Recordings/Car_CarPaint/Car_CarPaint.png) ![](./ShaderLib_2021/Recordings/Car_CarPaint/Car_CarPaint.gif) ------ ## Character ### Character_Hair(**Anisotropic Highlight Calculation**) ![](./ShaderLib_2021/Recordings/Character_Hair/Character_Hair.png) ![](./ShaderLib_2021/Recordings/Character_Hair/Character_Hair.gif) ------ ### Character_Hair2(UVNoise) ![](./ShaderLib_2021/Recordings/Character_Hair2/Character_Hair2.png) ![](./ShaderLib_2021/Recordings/Character_Hair2/Character_Hair2.gif) ------ ### Character_SimpleSSS ![](./ShaderLib_2021/Recordings/Character_SimpleSSS/Character_SimpleSSS.png) ![](./ShaderLib_2021/Recordings/Character_SimpleSSS/Character_SimpleSSS.gif) ------ ### Character_Stockings ![](./ShaderLib_2021/Recordings/Character_Stockings/Character_Stockings.png) ![](./ShaderLib_2021/Recordings/Character_Stockings/Character_Stockings.gif) ------ ### Character_StarRail ![](./ShaderLib_2022/Recordings/Character_StarRail/Character_StarRail_布洛妮娅.png) ![](./ShaderLib_2022/Recordings/Character_StarRail/Character_StarRail_布洛妮娅.gif) ![](./ShaderLib_2022/Recordings/Character_StarRail/Character_StarRail_流萤.png) ![](./ShaderLib_2022/Recordings/Character_StarRail/Character_StarRail_流萤.gif) ------ ## Cloud ### Cloud_ParallaxCloud ![](./ShaderLib_2021/Recordings/Cloud_ParallaxCloud/Cloud_ParallaxCloud.png) ![](./ShaderLib_2021/Recordings/Cloud_ParallaxCloud/Cloud_ParallaxCloud.gif) ------ ## Effect ### Effect_BoxWire ![](./ShaderLib_2021/Recordings/Effect_BoxWire/Effect_BoxWire.png) ![](./ShaderLib_2021/Recordings/Effect_BoxWire/Effect_BoxWire.gif) ------ ### Effect_Dissolve ![](./ShaderLib_2021/Recordings/Effect_Dissolve/Effect_Dissolve.png) ![](./ShaderLib_2021/Recordings/Effect_Dissolve/Effect_Dissolve.gif) ------ ### Effect_Fluid ![](./ShaderLib_2021/Recordings/Effect_Fluid/Effect_Fluid.png) ![](./ShaderLib_2021/Recordings/Effect_Fluid/Effect_Fluid.gif) ------ ### Effect_Glitch ![](./ShaderLib_2021/Recordings/Effect_Glitch/Effect_Glitch.png) ![](./ShaderLib_2021/Recordings/Effect_Glitch/Effect_Glitch.gif) ------ ### Effect_HexagonDiffusion ![](./ShaderLib_2021/Recordings/Effect_HexagonDiffusion/Effect_HexagonDiffusion.png) ![](./ShaderLib_2021/Recordings/Effect_HexagonDiffusion/Effect_HexagonDiffusion.gif) ------ ### Effect_Portal ![](./ShaderLib_2021/Recordings/Effect_Portal/Effect_Portal.png) ![](./ShaderLib_2021/Recordings/Effect_Portal/Effect_Portal.gif) ------ ### Effect_RhythmLED ![](./ShaderLib_2021/Recordings/Effect_RhythmLED/Effect_RhythmLED.png) ![](./ShaderLib_2021/Recordings/Effect_RhythmLED/Effect_RhythmLED.gif) ------ ### Effect_RhythmLEDScreen ![](./ShaderLib_2021/Recordings/Effect_RhythmLEDScreen/Effect_RhythmLEDScreen.png) ![](./ShaderLib_2021/Recordings/Effect_RhythmLEDScreen/Effect_RhythmLEDScreen.gif) ------ ### Effect_RhythmLight ![](./ShaderLib_2021/Recordings/Effect_RhythmLight/Effect_RhythmLight.png) ![](./ShaderLib_2021/Recordings/Effect_RhythmLight/Effect_RhythmLight.gif) ------ ### Effect_RhythmLineWave ![](./ShaderLib_2021/Recordings/Effect_RhythmLineWave/Effect_RhythmLineWave.png) ![](./ShaderLib_2021/Recordings/Effect_RhythmLineWave/Effect_RhythmLineWave.gif) ------ ### Effect_Shield ![](./ShaderLib_2021/Recordings/Effect_Shield/Effect_Shield.png) ![](./ShaderLib_2021/Recordings/Effect_Shield/Effect_Shield.gif) ------ ### Effect_TextureDiffusion ![](./ShaderLib_2021/Recordings/Effect_TextureDiffusion/Effect_TextureDiffusion.png) ![](./ShaderLib_2021/Recordings/Effect_TextureDiffusion/Effect_TextureDiffusion.gif) ------ ### Effect_ThermalChange ![](./ShaderLib_2021/Recordings/Effect_ThermalChange/Effect_ThermalChange.png) ![](./ShaderLib_2021/Recordings/Effect_ThermalChange/Effect_ThermalChange.gif) ------ ### Effect_TransitionPixel ![](./ShaderLib_2021/Recordings/Effect_TransitionPixel/Effect_TransitionPixel.png) ![](./ShaderLib_2021/Recordings/Effect_TransitionPixel/Effect_TransitionPixel_Random.png) ![](./ShaderLib_2021/Recordings/Effect_TransitionPixel/Effect_TransitionPixel_A.gif) ![](./ShaderLib_2021/Recordings/Effect_TransitionPixel/Effect_TransitionPixel_B.gif) ![](./ShaderLib_2021/Recordings/Effect_TransitionPixel/Effect_TransitionPixel_C.gif) ------ ### Effect_Transitions ![](./ShaderLib_2021/Recordings/Effect_Transitions/Effect_Transitions.png) ![](./ShaderLib_2021/Recordings/Effect_Transitions/Effect_Transitions.gif) ------ ### Effect_Transitions2 ![](./ShaderLib_2021/Recordings/Effect_Transitions2/Effect_Transitions2.png) ![](./ShaderLib_2021/Recordings/Effect_Transitions2/Effect_Transitions2.gif) ------ ### Effect_Transitions3 ![](./ShaderLib_2021/Recordings/Effect_Transitions3/Effect_Transitions3.png) ![](./ShaderLib_2021/Recordings/Effect_Transitions3/Effect_Transitions3.gif) ------ ### Effect_XRay ![](./ShaderLib_2021/Recordings/Effect_XRay/Effect_XRay.png) ![](./ShaderLib_2021/Recordings/Effect_XRay/Effect_XRay.gif) ------ ## Fog ### Fog_HeighFog ![](./ShaderLib_2021/Recordings/Fog_HeighFog/Fog_HeighFog.png) ![](./ShaderLib_2021/Recordings/Fog_HeighFog/Fog_HeighFog.gif) ------ ### Fog_UnderWaterFog ![](./ShaderLib_2021/Recordings/Fog_UnderWaterFog/Fog_UnderWaterFog.png) ![](./ShaderLib_2021/Recordings/Fog_UnderWaterFog/Fog_UnderWaterFog.gif) ------ ## FX ### FX_UniversalParticleTransparent ![](./ShaderLib_2021/Recordings/FX_UniversalParticleTransparent/FX_UniversalParticleTransparent.png) ![](./ShaderLib_2021/Recordings/FX_UniversalParticleTransparent/FX_UniversalParticleTransparent.gif) ------ ## Geometry ### Geometry_Grass ![](./ShaderLib_2021/Recordings/Geometry_Grass/Geometry_Grass.png) ![](./ShaderLib_2021/Recordings/Geometry_Grass/Geometry_Grass.gif) ------ ### Geometry_Wireframe ![](./ShaderLib_2021/Recordings/Geometry_Wireframe/Geometry_Wireframe.png) ![](./ShaderLib_2021/Recordings/Geometry_Wireframe/Geometry_Wireframe.gif) ------ ## Glass ### Glass_BlurGlass ![](./ShaderLib_2021/Recordings/Glass_BlurGlass/Glass_BlurGlass.png) ![](./ShaderLib_2021/Recordings/Glass_BlurGlass/Glass_BlurGlass.gif) ------ ### Glass_Bubble ![](./ShaderLib_2021/Recordings/Glass_Bubble/Glass_Bubble.png) ![](./ShaderLib_2021/Recordings/Glass_Bubble/Glass_Bubble.gif) ------ ### Glass_MatcapGlass ![](./ShaderLib_2021/Recordings/Glass_MatcapGlass/Glass_MatcapGlass.png) ![](./ShaderLib_2021/Recordings/Glass_MatcapGlass/Glass_MatcapGlass.gif) ------ ### Glass_RefractGlass ![](./ShaderLib_2021/Recordings/Glass_RefractGlass/Glass_RefractGlass.png) ![](./ShaderLib_2021/Recordings/Glass_RefractGlass/Glass_RefractGlass.gif) ------ ## PPS ### PPS_Bloom ![](./ShaderLib_2021/Recordings/PPS_Bloom/PPS_Bloom.png) ![](./ShaderLib_2021/Recordings/PPS_Bloom/PPS_Bloom.gif) ------ ### PPS_BokehBlur ![](./ShaderLib_2021/Recordings/PPS_BokehBlur/PPS_BokehBlur.png) ![](./ShaderLib_2021/Recordings/PPS_BokehBlur/PPS_BokehBlur.gif) ------ ### PPS_DOF_BokehBlur ![](./ShaderLib_2021/Recordings/PPS_DOF_BokehBlur/PPS_DOF_BokehBlur.png) ![](./ShaderLib_2021/Recordings/PPS_DOF_BokehBlur/PPS_DOF_BokehBlur.gif) ------ ### PPS_GaussianBlur ![](./ShaderLib_2021/Recordings/PPS_GaussianBlur/PPS_GaussianBlur.png) ![](./ShaderLib_2021/Recordings/PPS_GaussianBlur/PPS_GaussianBlur.gif) ------ ### PPS_HueBrightnessSaturationContrast ![](./ShaderLib_2021/Recordings/PPS_HueBrightnessSaturationContrast/PPS_HueBrightnessSaturationContrast.png) ![](./ShaderLib_2021/Recordings/PPS_HueBrightnessSaturationContrast/PPS_HueBrightnessSaturationContrast.gif) ------ ### PPS_Mosaic ![](./ShaderLib_2021/Recordings/PPS_Mosaic/PPS_Mosaic.png) ![](./ShaderLib_2021/Recordings/PPS_Mosaic/PPS_Mosaic.gif) ------ ### PPS_VolumeLighting ![](./ShaderLib_2021/Recordings/PPS_VolumeLighting/PPS_VolumeLighting.png) ![](./ShaderLib_2021/Recordings/PPS_VolumeLighting/PPS_VolumeLighting.gif) ------ ## Render ### Render_Ink ![](./ShaderLib_2021/Recordings/Render_Ink/Render_Ink.png) ![](./ShaderLib_2021/Recordings/Render_Ink/Render_Ink.gif) ------ ### Render_Ink2 ![](./ShaderLib_2021/Recordings/Render_Ink2/Render_Ink2.png) ![](./ShaderLib_2021/Recordings/Render_Ink2/Render_Ink2.gif) ------ ### Render_Ink3 ![](./ShaderLib_2021/Recordings/Render_Ink3/24_加个暗角.png) ![](./ShaderLib_2021/Recordings/Render_Ink3/19_混合雾.png) ![](./ShaderLib_2021/Recordings/Render_Ink3/18_水墨边缘光法线外扩描边(近大远小).png) ![](./ShaderLib_2021/Recordings/Render_Ink3/Render_Ink3_Sequence.gif) ![](./ShaderLib_2021/Recordings/Render_Ink3/Render_Ink3_Test.gif) ------ ### Render_SimpleJelly ![](./ShaderLib_2021/Recordings/Render_SimpleJelly/Render_SimpleJelly.png) ![](./ShaderLib_2021/Recordings/Render_SimpleJelly/Render_SimpleJelly.gif) ------ ### Render_SimpleToon ![](./ShaderLib_2021/Recordings/Render_SimpleToon/Render_SimpleToon.png) ![](./ShaderLib_2021/Recordings/Render_SimpleToon/Render_SimpleToon.gif) ------ ### Render_ThreeColor ![](./ShaderLib_2021/Recordings/Render_ThreeColor/Render_ThreeColor.png) ![](./ShaderLib_2021/Recordings/Render_ThreeColor/Render_ThreeColor.gif) ------ ### Render_Townscaper ![](./ShaderLib_2021/Recordings/Render_Townscaper/Render_Townscaper.png) ![](./ShaderLib_2021/Recordings/Render_Townscaper/Render_Townscaper.gif) ------ ## Sky ### Sky_CustomSkybox ![](./ShaderLib_2021/Recordings/Sky_CustomSkybox/Sky_CustomSkybox.png) ![](./ShaderLib_2021/Recordings/Sky_CustomSkybox/Sky_CustomSkybox.gif) ------ ### Sky_StylizedSky ![](./ShaderLib_2021/Recordings/Sky_StylizedSky/Sky_StylizedSky.png) ![](./ShaderLib_2021/Recordings/Sky_StylizedSky/Sky_StylizedSky.gif) ------ ### Sky_StylizedSky2 ![](./ShaderLib_2021/Recordings/Sky_StylizedSky2/Sky_StylizedSky2.png) ![](./ShaderLib_2021/Recordings/Sky_StylizedSky2/Sky_StylizedSky2.gif) ------ ## Tool ### Tool_Billboard ![](./ShaderLib_2021/Recordings/Tool_Billboard/Tool_Billboard.png) ![](./ShaderLib_2021/Recordings/Tool_Billboard/Tool_Billboard.gif) ------ ### Tool_BlendModePS(含GUI) ![](./ShaderLib_2021/Recordings/Tool_BlendModePS/Tool_BlendModePS.png) ![](./ShaderLib_2021/Recordings/Tool_BlendModePS/Tool_BlendModePS.gif) ------ ### Tool_BlendModeUnity(含GUI) ![](./ShaderLib_2021/Recordings/Tool_BlendModeUnity/Tool_BlendModeUnity.png) ![](./ShaderLib_2021/Recordings/Tool_BlendModeUnity/Tool_BlendModeUnity.gif) ------ ### Tool_CubeMap ![](./ShaderLib_2021/Recordings/Tool_CubeMap/Tool_CubeMap.png) ![](./ShaderLib_2021/Recordings/Tool_CubeMap/Tool_CubeMap.gif) ------ ### Tool_Decal ![](./ShaderLib_2021/Recordings/Tool_Decal/Tool_Decal.png) ![](./ShaderLib_2021/Recordings/Tool_Decal/Tool_Decal.gif) ------ ### Tool_Displacement ![](./ShaderLib_2021/Recordings/Tool_Displacement/Tool_Displacement.png) ![](./ShaderLib_2021/Recordings/Tool_Displacement/Tool_Displacement.gif) ------ ### Tool_FlowMap ![](./ShaderLib_2021/Recordings/Tool_FlowMap/Tool_FlowMap.png) ![](./ShaderLib_2021/Recordings/Tool_FlowMap/Tool_FlowMap.gif) ------ ### Tool_Fwidth ![](./ShaderLib_2021/Recordings/Tool_Fwidth/Tool_Fwidth.png) ![](./ShaderLib_2021/Recordings/Tool_Fwidth/Tool_Fwidth.gif) ------ ### Tool_MatCap ![](./ShaderLib_2021/Recordings/Tool_MatCap/Tool_MatCap.png) ![](./ShaderLib_2021/Recordings/Tool_MatCap/Tool_MatCap.gif) ------ ### Tool_PlanarShadow ![](./ShaderLib_2021/Recordings/Tool_PlanarShadow/Tool_PlanarShadow.png) ![](./ShaderLib_2021/Recordings/Tool_PlanarShadow/Tool_PlanarShadow.gif) ------ ### Tool_PolarCoord ![](./ShaderLib_2021/Recordings/Tool_PolarCoord/Tool_PolarCoord.png) ![](./ShaderLib_2021/Recordings/Tool_PolarCoord/Tool_PolarCoord.gif) ------ ### Tool_ScreenSpaceOutlines ![](./ShaderLib_2021/Recordings/Tool_ScreenSpaceOutlines/Tool_ScreenSpaceOutlines.png) ![](./ShaderLib_2021/Recordings/Tool_ScreenSpaceOutlines/Tool_ScreenSpaceOutlines.gif) ------ ### Tool_ScreenUV ![](./ShaderLib_2021/Recordings/Tool_ScreenUV/Tool_ScreenUV.png) ![](./ShaderLib_2021/Recordings/Tool_ScreenUV/Tool_ScreenUV.gif) ------ ### Tool_Sequence(含Billboard) ![](./ShaderLib_2021/Recordings/Tool_Sequence/Tool_Sequence.png) ![](./ShaderLib_2021/Recordings/Tool_Sequence/Tool_Sequence.gif) ------ ### Tool_Stencil ![](./ShaderLib_2021/Recordings/Tool_Stencil/Tool_Stencil.png) ![](./ShaderLib_2021/Recordings/Tool_Stencil/Tool_Stencil.gif) ------ ## Vertex ### Vertex_VertexAnimaionTexture ![](./ShaderLib_2021/Recordings/Vertex_VertexAnimaionTexture/Vertex_VertexAnimaionTexture.png) ![](./ShaderLib_2021/Recordings/Vertex_VertexAnimaionTexture/Vertex_VertexAnimaionTexture.gif) ------ ### Vertex_VertexAnimaionUVCut ![](./ShaderLib_2021/Recordings/Vertex_VertexAnimaionUVCut/Vertex_VertexAnimaionUVCut.png) ![](./ShaderLib_2021/Recordings/Vertex_VertexAnimaionUVCut/Vertex_VertexAnimaionUVCut.gif) ------ ## Water ### Water_LiquidWater ![](./ShaderLib_2021/Recordings/Water_LiquidWater/Water_LiquidWater.png) ![](./ShaderLib_2021/Recordings/Water_LiquidWater/Water_LiquidWater.gif) ------ ### Water_LiquidWater2D ![](./ShaderLib_2021/Recordings/Water_LiquidWater2D/Water_LiquidWater2D.png) ![](./ShaderLib_2021/Recordings/Water_LiquidWater2D/Water_LiquidWater2D.gif) ------ ### Water_RealWater ![](./ShaderLib_2021/Recordings/Water_RealWater/Water_RealWater.png) ![](./ShaderLib_2021/Recordings/Water_RealWater/Water_RealWater.gif) ------ ### Water_SimpleLava ![](./ShaderLib_2021/Recordings/Water_SimpleLava/Water_SimpleLava.png) ![](./ShaderLib_2021/Recordings/Water_SimpleLava/Water_SimpleLava.gif) ------ ### Water_ToonWater ![](./ShaderLib_2021/Recordings/Water_ToonWater/Water_ToonWater.png) ![](./ShaderLib_2021/Recordings/Water_ToonWater/Water_ToonWater.gif) ------ # 🥰巨人的肩膀 ## 函数相关 [Cg Toolkit | NVIDIA Developer](https://developer.nvidia.com/cg-toolkit) [Cg标准函数库 - 简书 (jianshu.com)](https://www.jianshu.com/p/c789aff2d6e9) [Unity Shader目录-初级篇 - 简书 (jianshu.com)](https://www.jianshu.com/p/3db29c182669) [Unity Shader目录-中级篇 - 简书 (jianshu.com)](https://www.jianshu.com/p/8c3f1b363768) ## 光照相关 [Unity URP GI,Meta Pass,脚本切换Light Map学习 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/606484690) ", Assign "at most 3 tags" to the expected json: {"id":"8668","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"