Using/understanding the rendering pipeline

Hi,
I am totally new to VRChat/Unity … despite being over 20 years I am coding stuff in … “all the possible architectures you can think of” ( really ).

I can do DX11/12/OpenGL/Vulkan/Switch/Quest Native … no problem … but I am struggling to understand things like :

  • what kind of “Rendering Pipeline” the current version of VrChat uses ?

  • why it’s not possible to use a ‘scriptable’ one ? i.e. they say use the legacy only ? Not the SRP/URP ?

  • is any way to say ‘what you want to render when/what’ using some scripts ? I mean suppose “at the start of each frame, before to render the rest of the world, I’d like to do a set of rendering passes in some objects”

  • where one can find ( links ? ) the best set of documentation about all this, if it exists ?

So far I learnt how to put up a simple world, write a simple shader and have it applied to some objects but it the whole “scripting thing” that I want to learn about.

Thanks in advance for any help, I am patience and this is a long term project if you tell me there’s a ton of docs to read, fine, as long as there is something that explains :slight_smile:

Cheers.

For some of this, you can step back a step and ignore VRChat. Like for the graphics pipeline, is it possible to use different pipelines for different objects within a scene? Probably not. But maybe they can in future.

VRChat is kind of a technical debt game for the devs. We don’t really see it much on this side, but it means they have written code to import asset bundles from older versions of unity. Kinda amusing to hear that importing a Unity 2019 bundle into 2021 causes unity to crash.

With VRChat being all user generated content, they’ve had to limit what can be done.

For the scriptable pipeline I wonder how well avatars and worlds would mix if they have scripting written without coordination.

My understanding with the scriptable pipeline is that it’ll break any shader not meant for it