Skip to content

Many mini-custom-SRPs showing how to achieve different things when creating your own SRP. Only SRP Core package is needed.

Notifications You must be signed in to change notification settings

yangtzehina/CustomSRP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CustomSRP

A new SRP from scratch

Unity version : 2022.2+ Checkout to branches for older versions

Tested with : Win DX11

Scene Image Description
SRP0101_Basic Super basic SRP that renders unlit material objects
SRP0102_AssetSettings Let the SRP Asset to pass some custom variables
SRP0103_CustomGUI Have a proper interface for the SRP Asset
SRP0201_FrustumCulling Frustum culling always work. This is a test scene to verify the culling results
SRP0202_OcclusionCulling Baked Occlusion Culling always work also. This is just a test scene to verify it
SRP0301_Batching Use Static Batching, Dynamic Batching, GPU Instancing and SRP Batcher
SRP0401_NoSpecificPass To draw the shaders that do not have a tag, e.g. default Unlit shaders
SRP0402_Multipass In SRP we need to specify the pass names, so no more infinite pass. But we can specify the orders of passes
SRP0403_Compute Use compute shader to achieve simple edge detection
SRP0404_DrawCommands using CommandBuffer functions (DrawMeshInstancedIndirect)
SRP0405_Callback Make your custom callback function so that you can insert extra rendering code with other scripts
SRP0406_ShaderDebugPrint Print pixel values from shader to Console
SRP0501_SoftParticle Setup CameraDepthTexture to achieve soft-particle effect
SRP0502_Distortion No more grab pass but we can implement our own
SRP0101_Fog Use Fog on Lighting Settings
SRP0601_RealtimeLights Directional / Point / Spot lights and setup PerObject light data
SRP0602_BakedLights Baked Lightmap / Reflection Probe / Light Probes and setup PerObject data for them
SRP0603_RealtimeShadowDirectional Directional light realtime shadow
SRP0701_HDR_MSAA Use HDR and MSAA
SRP0701_HDR_MSAA_RTHandle Same as above, but using RTHandle instead of RenderTargetIdentifier
SRP0701_Stencil In order to use stencil, we need the render target having at least 24bit depth. This case we use the same pipeline with 0701
SRP0702_Postprocessing This shows you how to use Postprocessing Stack with SRP (transparent effects e.g. Bloom, Depth of Field)
SRP0703_MotionVector Make motion blur works. Use per-object and camera motion vector
SRP0801_UGUI Use UICamera to render UGUI, also render 3D objects and particle on UI
SRP0802_RenderPass Use RenderPass to target multiple color attachments and read / write from / to them
SRP0802_RenderGraph Use RenderGraph to modularize rendering passes. Use Window > Render Pipeline > Render Graph Viewer to see RT read/write status in each pass
SRP0803_MultiRenderTarget Use CommandBuffer.SetRenderTarget() to target multiple color surfaces
SRP0901_SceneViewFix Make the gizmos / icons appear on scene view
SRP0902_SceneViewDrawMode Adding custom Scene View draw modes
SRP1001_Error Render the pink shaders on the materials that the SRP doesn't support
SRP1002_Debug Make the Profiler records the timing for SRP performance debugging
SRP1003_DefaultShaders Set pipeline default materials when creating new material / objects / particle / terrain etc

References / Useful Links:

About

Many mini-custom-SRPs showing how to achieve different things when creating your own SRP. Only SRP Core package is needed.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 56.7%
  • ShaderLab 28.4%
  • HLSL 14.9%