Welcome to the Developer Update for Friday, September 2nd, 2022!
If you’d like to catch up, you can read our previous Developer Update from Aug 30th, and also our latest Update Notes for VRChat 2022.2.2p3.
Schedule Change
As we mentioned in the last Dev Update, this is the final week we’ll be doing two Dev Updates per week! Starting on the week of 4 September, we will be reverting to one Dev Update a week, probably on Thursday.
This change in pace also allows us to cover things that are less “active development” related, such as proposals, ideas, long-range plans, or even interviews with team members. We’re also considering good ways to highlight community content that stands out.
Assuming nothing changes, the next Dev Update will be on Thursday, Sept 8. Past then, we’ll update you on Thursdays except when we’re out of the office.
Releases and Betas
Main Menu Live Beta
Unfortunately, we’re not getting the Main Menu Live Beta out this week. We’ve done a lot of polishing and gotten a lot of bugfixes out of the way, but things aren’t quite ready just yet.
Additionally, since this weekend is a three-day weekend (Monday is Labor Day in the US), releasing late in the week or today would mean that we’d have three days of unsorted, unmonitored feedback to dig through come Tuesday. That’s a lot harder to deal with instead of managing the flow as it comes in! As such, we’re trying to release early in the week, whatever week we drop it to Live Beta.
In addition to the polishing and bugfixing, we’re also working on our communications and media that’s going out alongside the Live Beta.
Feature Work
Even More Camera Updates
We didn’t stop with the Desktop camera! There’s a lot more changes on the way for the camera. Yes, we’ve heard you on the “avatar clones” and “animated camera track” feature requests – those aren’t on the way quite yet, but they’re something we’re looking at trying to fit into our roadmap soon.
Most of this stuff should go out with the Main Menu beta.
We’ve talked about some of these before, but we thought we’d go over it again.
Here’s the changes that we’ve got internally, and are waiting on a release.
The VR camera has a flying mode now! It’s similar to the Desktop camera.
We’ve added a Camera Mode sub-menu, so you can swap the mode that the camera is in. In addition to Photo or Stream mode, you can also choose Gallery or User Icon mode, where taking a photo allows you to edit and upload those images to the Gallery or as a User Icon.
The Camera “exit” button has been moved off the menu, and onto the camera’s surface itself. We’ve also changed where the warning that pops up when you select large resolutions appears.
Photo filenames have been changed to VRChat_{date}_{resolution}
so different resolutions and orientations don’t mess up your filename sorting.
The QM Camera tab is better organized:
When exiting/entering a new world, if the camera is in World mode it instead becomes re-attached to the camera.
We’ve also added a subtle effect to the camera to indicate that an image was taken.
We’re still working on collision for the flying camera mode. We’re actually considering letting collision sit a bit, and want to see what people’s feedback is before implementing. We thought having collision would be very important, but we’re not so sure anymore after seeing the Desktop camera in Live. Let us know!
Visual Adjustments
As a reminder, this feature allows you to adjust your view by applying filters to help those with color-blind vision, to reduce the impact of Bloom effects and more. We’ve talked about it in previous developer updates.
This feature is going to come in alongside the Main Menu update! It’s getting some additional work currently, namely on fixing some issues that prevent it from working properly on Quest.
Calibration Visualization
This feature shows a visualization for your calibration, helping you perfect your tracker positioning and calibration pose! We talked about it in a previous Developer Update.
This task is pretty much complete, and should also make it into the Main Menu update.
Portal Placement
Since our last update, this task went into QA for testing! It returned with a few bugs:
The portal placement graphic does not rotate to face you.
There’s some overlapping text with portal confirmation, whoops…
On Desktop, the selection laser needs to be removed from the user’s line of sight so only the portal placement visual indicator is present:
These issues are getting worked on, and the task will flip back to QA once its ready for another round.
OSCQuery
As part of the OSC project, we’re looking into implementing OSCQuery into VRChat, which will make it easier for OSC apps to find and communicate with each other and with VRChat on your local network. In this tiny demo, an OSC Sender starts up on the left with a random name, port and list of integer values. Then an OSC Receiver starts up on the right, finds the Sender, and reads the current state of its values.
We’re a few weeks away from releasing our open-source OSCQuery library. Once released, this should make things a LOT easier for those who want to release generalized OSC applications for use with VRChat without having to worry about creating an “OSC router” to mux many applications and signals together.
Nameplates and Chatboxes in Mirrors
We actually had a good bit of chatter and development over the last week or so about a subject that’s near and dear to many a VRChatter’s heart: mirrors! In particular, how chatboxes and nameplates appear in mirrors.
In almost all worlds in VRChat, world creators have turned off the UI from displaying. In worlds where that’s offered as an option (or its been left on), nameplates appear in a strange way. Unfortunately, so do Chatboxes! We did some work to fix that.
Oh, right – it’s important to note that a lot of this discussion was a product of us having the Personal Mirror be a thing now, too, because users can turn UI on and off in their own mirror. So seeing your UI in your own mirror is something that might be a lot more common.
Anyhow, here’s some changes we’ve been working on:
Nameplates for both local and remote players now face the local camera in mirrors. This is for both personal mirror and world mirrors with UI enabled. Camera nameplates and chatbox do the same. All of this works with foreign languages and characters as well.
Our text textures have been regenerated with more padding, and we fixed some broken materials as well. This fixes several issues with blurry text, even outside of mirrors. It’s more noticeable in them because you get more distance and weird angles easily.
This also fixes an issue with text on the Action Menu going blurry on super tiny avatars until an option was selected.
Finally, we did some minor fixes to the nameplate shaders – for example, we fixed a case where weird outlining could appear around the voice “aura” in mirrors.
We also looked into adding a new global shader property to distinguish mirror rendering, but that had to be rolled back because the way it was implemented was not compatible with the eventual case of us making mirrors single-pass.
Future Development
nVidia VRS and… OSC?
Previously, we talked about nVidia’s Variable Rate Shading system. It’s quite promising, and actually delivers some pretty impressive improvements to framerate in a way we’re comfortable with. Development is still continuing on this, but we thought it might be cool to show you something!
One of our team members has a fancy HMD with eye tracking, and uses it for eye movement. But… what if you tied that eye tracking into the VRS build using OSC?
If you’re not sure what’s going on here, VRChat is rendering with full resolution in the blue circle, which is where this person is looking! The green and yellow areas are rendered with lower resolutions. This decreases GPU load by a significant amount without affecting perceived fidelity.
While it certainly isn’t silicon-level-response-time “true” foveated rendering, it actually works quite well! The person who implemented this said that the lag isn’t really noticeable after a short period of use. Like many prototypes, it has some jank, but it has promise.
It’s important to note that this eye-tracking-driven nVidia VRS isn’t a native feature we’re implementing. (Eyetracking and nVidia VRS are things we want to implement natively, tho.) Regardless, it is a cool experiment that will almost certainly tie into our continued development… and that we thought you might be interested in seeing!
Conclusion
That’s it for today! As a reminder, you won’t see another text Developer Update until September 8th – which is next Thursday.