{"id":20880130,"url":"https://github.com/cinight/customsrp","last_synced_at":"2025-05-15T16:07:19.799Z","repository":{"id":41176153,"uuid":"169713164","full_name":"cinight/CustomSRP","owner":"cinight","description":"Many mini-custom-SRPs showing how to achieve different things when creating your own SRP. Only SRP Core package is needed.","archived":false,"fork":false,"pushed_at":"2024-12-30T15:59:07.000Z","size":8248,"stargazers_count":622,"open_issues_count":2,"forks_count":77,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-07T21:14:42.126Z","etag":null,"topics":["custom","scriptable-render-pipline","srp","unity","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cinight.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2019-02-08T09:44:50.000Z","updated_at":"2025-04-07T15:48:35.000Z","dependencies_parsed_at":"2024-11-18T07:19:45.024Z","dependency_job_id":"20f1183e-3c11-45cf-a68d-d3a3e277cfa4","html_url":"https://github.com/cinight/CustomSRP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinight%2FCustomSRP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinight%2FCustomSRP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinight%2FCustomSRP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinight%2FCustomSRP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cinight","download_url":"https://codeload.github.com/cinight/CustomSRP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254374475,"owners_count":22060611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["custom","scriptable-render-pipline","srp","unity","unity3d"],"created_at":"2024-11-18T07:19:07.577Z","updated_at":"2025-05-15T16:07:19.780Z","avatar_url":"https://github.com/cinight.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CustomSRP\nA new SRP from scratch\n\nUnity version : 6000.0.30f1+\nCheckout to branches for older versions\n\nTested with : Win DX11\n\n| Scene | Image | Description |\n| --- | - | --- |\n| `SRP0101_Basic` | ![](READMEImages/SRP0101_Basic.JPG) | Super basic SRP that renders unlit material objects |\n| `SRP0102_AssetSettings` | ![](READMEImages/SRP0102_AssetSettings.gif) | Let the SRP Asset to pass some custom variables |\n| `SRP0103_CustomGUI` | ![](READMEImages/SRP0103_CustomGUI.gif) | Have a proper interface for the SRP Asset |\n| `SRP0201_FrustumCulling` | ![](READMEImages/SRP0201_FrustumCulling.gif) | Frustum culling always work. This is a test scene to verify the culling results |\n| `SRP0202_OcclusionCulling` | ![](READMEImages/SRP0202_OcclusionCulling.gif) | Baked Occlusion Culling always work also. This is just a test scene to verify it |\n| `SRP0301_Batching` | ![](READMEImages/SRP0301_Batching.JPG) | Use Static Batching, Dynamic Batching, GPU Instancing and SRP Batcher |\n| `SRP0401_NoSpecificPass` | ![](READMEImages/SRP0401_NoSpecificPass.JPG) | To draw the shaders that do not have a tag, e.g. default Unlit shaders |\n| `SRP0402_Multipass` | ![](READMEImages/SRP0402_Multipass.JPG) | In SRP we need to specify the pass names, so no more infinite pass. But we can specify the orders of passes |\n| `SRP0403_Compute` | ![](READMEImages/SRP0403_Compute.JPG) | Use compute shader to achieve simple edge detection |\n| `SRP0404_DrawCommands` | ![](READMEImages/SRP0404_DrawCommands.png) | using CommandBuffer functions (DrawMeshInstancedIndirect) |\n| `SRP0405_Callback` | ![](READMEImages/SRP0405_Callback.JPG) | Make your custom callback function so that you can insert extra rendering code with other scripts |\n| `SRP0406_ShaderDebugPrint` | ![](READMEImages/SRP0406_ShaderDebugPrint.JPG) | Print pixel values from shader to Console |\n| `SRP0501_SoftParticle` | ![](READMEImages/SRP0501_SoftParticle.JPG) | Setup CameraDepthTexture to achieve soft-particle effect |\n| `SRP0502_Distortion` | ![](READMEImages/SRP0502_Distortion.gif) | No more grab pass but we can implement our own |\n| `SRP0101_Fog` | ![](READMEImages/SRP0101_Fog.gif) | Use Fog on Lighting Settings |\n| `SRP0601_RealtimeLights` | ![](READMEImages/SRP0601_RealtimeLights.JPG) | Directional / Point / Spot lights and setup PerObject light data |\n| `SRP0602_BakedLights` | ![](READMEImages/SRP0602_BakedLights.JPG) | Baked Lightmap / Reflection Probe / Light Probes and setup PerObject data for them |\n| `SRP0603_RealtimeShadowDirectional` | ![](READMEImages/SRP0603_RealtimeShadowDirectional.png) | Directional light realtime shadow |\n| `SRP0701_HDR_MSAA` | ![](READMEImages/SRP0701_HDR_MSAA.gif) | Use HDR and MSAA |\n| `SRP0701_HDR_MSAA_RTHandle` | ![](READMEImages/SRP0701_HDR_MSAA.gif) | Same as above, but using RTHandle instead of RenderTargetIdentifier |\n| `SRP0701_Stencil` | ![](READMEImages/SRP0701_Stencil.JPG) | In order to use stencil, we need the render target having at least 24bit depth. This case we use the same pipeline with 0701 |\n| `SRP0702_Postprocessing` | ![](READMEImages/SRP0702_Postprocessing.gif) | This shows you how to use Postprocessing Stack with SRP (transparent effects e.g. Bloom, Depth of Field) |\n| `SRP0703_MotionVector` | ![](READMEImages/SRP0703_MotionVector.JPG) | Make motion blur works. Use per-object and camera motion vector |\n| `SRP0801_UGUI` | ![](READMEImages/SRP0801_UGUI.JPG) | Use UICamera to render UGUI, also render 3D objects and particle on UI |\n| `SRP0802_RenderPass` | ![](READMEImages/SRP0802_RenderPass.gif) | Use RenderPass to target multiple color attachments and read / write from / to them |\n| `SRP0802_RenderGraph` | ![](READMEImages/SRP0802_RenderGraph.JPG) | Use RenderGraph to modularize rendering passes. Use Window \u003e Render Pipeline \u003e Render Graph Viewer to see RT read/write status in each pass |\n| `SRP0802_RenderGraph_RasterCommandBuffer` | ![](READMEImages/SRP0802_RenderGraph.JPG) | Similar to above but using RasterCommandBuffer in RenderGraph |\n| `SRP0803_MultiRenderTarget` | ![](READMEImages/SRP0803_MultiRenderTarget.JPG) | Use CommandBuffer.SetRenderTarget() to target multiple color surfaces |\n| `SRP0901_SceneViewFix` | ![](READMEImages/SRP0901_SceneViewFix.JPG) | Make the gizmos / icons appear on scene view |\n| `SRP0902_SceneViewDrawMode` | ![](READMEImages/SRP0902_SceneViewDrawMode.gif) | Adding custom Scene View draw modes |\n| `SRP1001_Error` | ![](READMEImages/SRP1001_Error.JPG) | Render the pink shaders on the materials that the SRP doesn't support |\n| `SRP1002_Debug` | ![](READMEImages/SRP1002_Debug.png) | Make the Profiler records the timing for SRP performance debugging |\n| `SRP1003_DefaultShaders` | ![](READMEImages/SRP1003_DefaultShaders.gif) | Set pipeline default materials when creating new material / objects / particle / terrain etc |\n\n-------------\nReferences / Useful Links:\n- [SRP Core Documentation](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest)\n- [Custom SRP template by phi-lira](https://github.com/phi-lira/CustomSRP)\n- [Custom Pipeline for Unity 2018 by Catlike Coding](https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/)\n- [Custom Pipeline for Unity 2019 by Catlike Coding](https://catlikecoding.com/unity/tutorials/custom-srp/)\n- [URP \u0026 HDRP](https://github.com/Unity-Technologies/Graphics)\n- [SRPFromScratch by pbbastian](https://github.com/pbbastian/SRPFromScratch)\n- Siggraph 2018 SRP presentation by Matt Dean\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinight%2Fcustomsrp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcinight%2Fcustomsrp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinight%2Fcustomsrp/lists"}