{"id":18149921,"url":"https://github.com/lereldarion/unity-shaders","last_synced_at":"2026-02-08T02:11:39.158Z","repository":{"id":260607727,"uuid":"871262901","full_name":"lereldarion/unity-shaders","owner":"lereldarion","description":"Collection of useful Unity shaders, mainly made for VRChat","archived":false,"fork":false,"pushed_at":"2026-02-04T07:28:28.000Z","size":2219,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-04T16:35:24.259Z","etag":null,"topics":["hlsl","shaders","unity","vrchat"],"latest_commit_sha":null,"homepage":"","language":"ShaderLab","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lereldarion.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-11T15:35:08.000Z","updated_at":"2026-02-04T07:28:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"6f7982e1-60c3-498b-af65-63c45bbe286a","html_url":"https://github.com/lereldarion/unity-shaders","commit_stats":null,"previous_names":["lereldarion/unity-shaders"],"tags_count":17,"template":false,"template_full_name":"vrchat-community/template-package","purl":"pkg:github/lereldarion/unity-shaders","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lereldarion%2Funity-shaders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lereldarion%2Funity-shaders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lereldarion%2Funity-shaders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lereldarion%2Funity-shaders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lereldarion","download_url":"https://codeload.github.com/lereldarion/unity-shaders/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lereldarion%2Funity-shaders/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29217763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T00:10:47.190Z","status":"online","status_checked_at":"2026-02-08T02:00:07.642Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hlsl","shaders","unity","vrchat"],"created_at":"2024-11-02T00:04:58.468Z","updated_at":"2026-02-08T02:11:39.153Z","avatar_url":"https://github.com/lereldarion.png","language":"ShaderLab","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lereldarion Unity Shaders\nCollection of useful Unity Shaders, made for VRChat.\nThey are not dependent on its SDK but some features rely on [VRChat shader globals](https://creators.vrchat.com/worlds/udon/vrc-graphics/vrchat-shader-globals/).\nUnless specified, they have only be tested in a PC VR VRChat context : DX11, unity built-in render pipeline.\n\nInstall :\n- using VCC at https://lereldarion.github.io/vpm-listing/.\n- or from Unity Packages from [releases](https://github.com/lereldarion/unity-shaders/releases).\n\n[Github repository](https://github.com/lereldarion/unity-shaders/) in case you found this documentation from an installed package.\n\n## Overlays\nThese overlay shaders are useful on avatars for world analysis (wireframe, normals, grid, HUD), or adjusting lighting (GammaAdjust).\n\nThey all support an `_Overlay_Fullscreen` toggle to make them take the entire field of view of the camera ; useful for first person view without clipping problems.\nIf you use this toggle, **animate it only locally** using the `IsLocal` VRChat parameter, to avoid annoying other users.\nNote that this fullscreen effect only works if the mesh renderer is not culled by Unity, so ensure that the mesh bounds are in view of the player camera.\nOn avatars, this toggle ignores the mirror instances and only works on the player camera to not be annoying.\n\nThe `Demo` scene demonstrate their use on a dummy scene.\n\n### Gamma Adjust\nAdjust the gamma of the scene image behind it, like a post process effect.\nUses a `GrabPass`.\n\nThis is very useful to simulate low-light vision in dark spaces (without a dynamic light !), or decrease luminosity in worlds that are too bright.\n\n![](.github/overlay_gamma_adjust.jpg)\n\n### Depth Scene Reconstruction : Grid / Normals / Wireframe\nThese 3 overlays reconstruct the position of the scene pixels, and use it for various display effects :\n- `Grid` overlays a 1m (dependent on Zoom) world space grid on the scene objects, along X/Y/Z planes\n- `Normals` shows the world space normals of the actual triangle geometry of the scene (without the normal maps !), color coded\n- `Wireframe` displays scene triangles with white edges on dark\n\nAll of these overlays use the `_CameraDepthTexture`, a unity feature to access the depth of scene pixels.\nThis texture is only available if required by the render pipeline, usually if a realtime dynamic light with shadows is present on the scene.\nFor worlds without dynamic light and shadows, you can force `_CameraDepthTexture` by adding a light on your avatar at the cost of avatar Rank : https://github.com/netri/Neitri-Unity-Shaders?tab=readme-ov-file#types.\nI personnaly choose to not put a light on my avatars for performance reasons (they are really bad !), and accept that the `_CameraDepthTexture` is not always available.\n\nThese shaders are inspired by similar ones from https://github.com/netri/Neitri-Unity-Shaders, but they have been improved to be more numerically precise and do not use any `GrabPass`.\n\n#### Grid\n![](.github/overlay_grid.jpg)\n\n#### Normals\n![](.github/overlay_normals.jpg)\n\n#### Wireframe\n![](.github/overlay_wireframe.jpg)\n\n### HUD\nThis shader shows various world positionning data in a fighter jet like HUD with emission :\n- world position X/Y/Z in meters\n- world compass : azimuth and elevation\n- a range in meters to the object pointed by the central crosshair, if the `_CameraDepthTexture` is available (see note for depth).\n- camera far plane distance\n- local fps\n\nThe HUD displays like a skybox that is anchored to the object on which the shader is applied ; like a [reflector sight](https://en.wikipedia.org/wiki/Reflector_sight).\nThe central crosshair will we aligned with the surface normal vector.\nThis works well on a simple quad.\nFor more complex geometries, you must ensure that all triangles have the same normal vectors ; this can be done with custom normals in blender.\n\nThis shader uses a small internal texture for the font (MSDF strategy).\n\n![](.github/overlay_hud.jpg)\n\n## Debug tools\nOther debug / introspection tools which are not overlays\n\n### Lighting\nApply to any mesh (only 1 vertex required), and it will display lighting configuration elements that touch the mesh renderer as gizmos in the world :\n- Unity realtime lights : pixel directional / point / spot lights, vertex point lights, colored by the light color.\n- Unity reflection probes : displays the bounding boxes and their center, with a sphere to show the raw cubemap. Color of the lines shows the blend factor when 2 probes are active.\n- Unity light probes : sphere with lighting values applied to it. Positions are not available in the shader so they cannot be displayed.\n- [LTCGI](https://github.com/PiMaker/ltcgi) v1 : emitting surfaces as rectangle edges + diagonals. A normal line at center. Solid lines. Color is item index.\n- [Light Volumes](https://github.com/REDSIM/VRCLightVolumes) v2 :\n    - volume bounding boxes, dashed lines (dash size is texture resolution). Color hue represents indexes.\n    - lights with simpler dashed patterns compared to unity equivalents. Color is the light color. Dash size is 1m and line lengths indicate culling distance. Display light cookies on spheres if used.\n\n![](.github/debug_lighting.png)\n\n### TBN\nApplied to mesh, this shaders displays the tangent space at each vertex as small 3D lines.\n\n![](.github/debug_tbn.png)\n\n## Hidden\nMaterial that does not render anything.\n\nThis is useful to fill material slots that cannot be disabled by animators on avatars (skinned mesh slots).\n\nThis shader comes with a material configured to use the [Material.SetShaderPassEnabled](https://docs.unity3d.com/ScriptReference/Material.SetShaderPassEnabled.html) trick by d4rkpl4y3r (https://github.com/d4rkc0d3r/UnityAndVRChatQuirks?tab=readme-ov-file#skipping-draw-call-for-material-slot).\nIf this is used properly, the material does not generate any draw call.\nAs a fallback, this sets the clip space positions to `NaN` to discard all geometry.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flereldarion%2Funity-shaders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flereldarion%2Funity-shaders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flereldarion%2Funity-shaders/lists"}