Resonite-Issues
Resonite-Issues copied to clipboard
New Rendering Engine (Sauce)
Is your feature request related to a problem? Please describe.
The Resonite development team is slowed down a lot by our dependence on Unity which has also forced other decisions across Resonite.
Some examples:
- Custom shaders are difficult to support with Unity with how Resonite presently uses it
- The classic deferrend renderer is deprecated, and upgrades to other versions of Unity have a tendency to break various things around it in VR
- Certain problems are extremely hard to diagnose, and give we have no source code we're unable to really pursue
- The .NET version for Unity isn't really a .NET version at all - it's using a very old version of Mono that's roughly correlated with .NET 4.7
- It's also a pretty slow implementation, further contributing to Resonite's CPU bound nature
- Unity's deferred renderer is not as flexible as we'd like in order to support complex shaders
Describe the solution you'd like
To resolve most of these problems we'd like to swap over to a brand new renderer.
The renderer we are targeting right now is has a code name of "Sauce" and is a WIP project by @Geenz and their team at Void Anchor.
Presently Sauce is being developed in collaboration with other community members at Void Anchor to achieve the following:
- Custom shaders (#632)
- A clustered forward renderer able to support a similar amount of lights to the current deferred renderer
- .NET 8 compatibility
- This may happen sooner with some work on the existing Unity client
- Better compatibility with multi-process architecture plans (#706)
- Sauce is running off of a modified version of bevy's rendering engine which is already amenable to this.
- This may also happen sooner under Unity depending on development priorities and Sauce's progress
- Mesh shader emulation with compute shaders
- Compute shaders more generally
- Enabling (but not shipping with) standalone support (#5)
Describe alternatives you've considered
N/A
Additional Context
I'm making this item, to provide a landing site for people who are confused by what Sauce is etc. There may be another issue but I couldn't find it.
@Geenz @Frooxius Please edit the issue as appropriate. I just wanted to throw something up so we dont get confused users.
Requesters
N/A
Is Void Anchor a person, team, company, or something else?
A Team and a Company.
A Team and a Company.
So should someone add the "waiting on 3rd party" tag I think that will be appropriate
Complicated. For now, no.
This is a blocker right?
Labels are a tool to allow us to examine issues more easily. We do not currently have a label for blocker or waiting on 3rd party.
What license will sauce be under? I vaguely recall Geenz mentioning that it'll be open source, but will it be under something like LGPL or MIT?
Labels are a tool to allow us to examine issues more easily. We do not currently have a label for blocker or waiting on 3rd party.
I was referencing this label in particular void anchor is a separate company from yellow dog man studios and is worked on separately from the Resonite team so I think a third party tag would be fitting since you said yourself
there is no action the Resonite Team can take to speed this up.
The new rendering engine is in fact being built by someone on the Resonite team, as it is primarily my responsibility. Third party is not entirely accurate in this case- as although I am receiving support from other people at Void Anchor, it is still mainly my responsibility.
A final open source license has not been determined.
I've updated the original issue above to better reflect what the new rendering engine is, Void Anchor's role in its development (largely acting as support for the project since I'm only one person, and our engineering team at YDMS is quite booked on time - including me working on this), and what it's anticipated to achieve.