The manual on getting SRP for Unity for creating a custom render pipeline says to get SRP from source, altough I dont really understand why that is necessary, couldnt I just get it through the package manager? This section that the docs link to states that they are distributed as Core packages. Im going to create a pipeline completely from scratch so I dont need the URP source to edit
#Docs unclear on SRP
1 messages · Page 1 of 1 (latest)
Indeed it's a bit misleading, installing render-pipelines.core from the package manager is enough to start to write your own RP.
SRP stands for scriptable render pipeline and it's the base for urp, hdrp or any custom pipeline. Without it you wouldn't be able to build a custom render pipeline, as you wouldn't have any hooks to the engine C++ side.
And you can get it as a package, but modifying packages is not really something you should be doing, because it's mainly generated/downloaded files, so your changes are gonna be lost the next time you update unity or packages or just create a new project. The proper way to do it is download the source code, build on top of it, then you can package it as your own package and distribute or use it.
So its a package thats only meant to be modified? I thought URP and HDRP where build ontop of it using its API, is that how it works? Or is the only way to make a custom pipeline by modifying SRP directly?
That depends on how much you need to extend it I guess. You might need parts of it modified for your needs.
SRP was created in sync with urp and hdrp to a degree, so I'd assume it was specifically implemented to match the expectations of these two.
If you're fine with the existing api, I guess it would be enough to just have it as a package.
Does the api allow me to do things such as hardware raytracing, and a fully non rasterized render pipeline? Or would i need to directly modify the package for that?
Hdrp has hardware raytracing support, so I assume that's fine. Not sure what you mean by a fully non rasterized render pipeline though. In my dictionary rasterization is the process of generating pixels from vertices and polygons(a stage between vertex and pixel shader stages). Not sure how you're gonna render anything without it.
Well thats what the raytracing is for. I was planning on making a fully raytraced pipeline, something like you would see in Blender. I know HDRP has hardware RT, so I was wondering if I would have full access by that using SRP. Im mainly confused on whether the api will be enough or if im going to need to modify the source.
Pretty sure raytracing still makes use of orthodox vertex and pixel shaders as well.
You'll need to research it on your own. I don't think many people here have experience developing a custom rp.
Depends on the implementation, games like cyberpunk use raytracing as an overlay on the raster pipeline. While Blender and some other newer games can do raytracing full from the camera out, skipping rasterisation entirely, which is great with high triangle counts
Fair enough, ill try to read through the docs some more
One benefit I can think of in including the Srp in your source code is if you plan continuous support and distribution to other people to avoid the pain of version differences management.