Developer Update - 2 September 2022

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. :sob: 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? :thinking:

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.

29 Likes

“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.”

I still say the camera shouldn’t go through walls, as it’s a privacy concern, and would make it hard for game worlds that use special mechanics or rely on stealth and subterfuge to win cause it’d be used for cheating in such situations.

12 Likes

Eye-tracked foveated rendering!!

7 Likes

Well you need to relax and take your time to fix it you know you don’t need to be faster I just hope you’re healthy well we will wait this next week beta I know you’re stressing out but I hope you’re all right you need to take a little bit break you need to do. ^-^
#Teams Futures. I hope you have a great day :heart:

2 Likes

Will nVidia’s Variable Rate Shading only work for people with modern Nvida GPUs? What about AMD users or people with older GPUs, wouldn’t those benefit the most from things like this?

4 Likes

Awesome work! I’m really excited to try out the new main menu :slightly_smiling_face: The faux-viated rendering test seems really cool too, especially if it might be paired with the new headsets that are rumored to be coming out soon. I look forward to seeing your developments on this :heart: who knows, I might even test it out on my Vive Eye if I figure out how some day :wink:

Thank you for all the hard work and I hope everyone enjoys a nice, long weekend!!

1 Like

As a vrchat content creator the things that i usually use and want is to search public avatars easly with the search box and doing animations with the camera, set points into the world that the camera follows as i pres play, and config the speed, smoothest and save the animation to use place it and use it quickly for RP.

3 Likes

I love you. Please keep on wanting to implement this, pretty please!

4 Likes

I feel that this is not the right place for community content unless it directly has to do with the development of the game or showing how features work/how to use them. I hope you guys keep the camera allowed to collide with stuff as long as you will be able to see the camera on the other side of the walls. This sort of connects with a problem I have with avis freezing when you hit walls, with programs like ovr you can go across the map and listen in on others conversations, if you just let people avis follow their viewpoint at all times this would not be an issue.

2 Likes

They have said before, avatar search is a thing for the future, but not currently planned and i agree

2 Likes

as long as its an opt in thing per avi that you can easily switch in unity or the website i dont see any issue with it

1 Like

I also am on the side of “Hey what about AMD users?” I do not like the idea of people needing to buy an Nvidia GPU. Nvidia already has so much control over the market, and plus their cards are so expensive.

2 Likes

Hey I want to know if you ever going to or are planning to add a search option for avatars. With update you’re doing making big changes to the game I think it be appropriate to add it. Just asking.

2 Likes

Then have collision be forced enabled on game worlds

3 Likes

Good job you guys! Keep it up, I love to see progress!

And the Eye-tracked foveated rendering is dope, I hope everything goes smoothly on development on that.

See you next Thursday!!

1 Like

Putting the exit button ON the camera face is exactly the opposite of making it more grabbable and will now result in closing the camera frequently when trying to do blind grabs unless there’s some unmentioned feature in place to protect from this. Camera mobility via direct user control (grab and pull) is clearly not the priority here any longer as it’s already too short of a grab distance and too cluttered with UI to be functional at more than 50cm distance. While everything else in the update sounds nice, I’m beginning to see there isn’t demand for infinite camera size / hidden UI / full plane grab (like the new portable mirror) on the camera (stream camera). That’s unfortunate. :frowning:

4 Likes

Searching favorites or globally? If globally, they’d need to implement a “Global” avatar repository… Which I doubt it’s high on their priority.

3 Likes

all of the avis are already in a database

1 Like

That’s true, but they’d still need to have a way to index all of those avatars… Which might or might not be difficult to do.

1 Like

That’s the kind of feedback we wanna see, thank you!

nVidia’s VRS only works on RTX 20XX+ cards. From what I understand there’s not any kind of cross-platform equivalent that approaches its effectiveness. (Yet!)

For people on older GPUs, we’re still looking into solutions, but (again, from what I understand) there really isn’t much out there that’s a good solution. Most things we’ve found either don’t work with VRChat as-is (AMD FSR requires a Unity upgrade, among other things), or break stuff and doesn’t itself improve visual fidelity (the FSR OpenVR hack, as described last time).

We’re not done looking, though. Honestly, it might be best just to offer a “downscale rendering” option without upscaling, since that’s basically what gets you frames in the first place…

Again, just to be clear, eye-tracked variable rate shading is not a feature we’re currently planning implementing natively. The components (VRS, eye-tracking), however, are things we want to implement, so you could just kinda… shove them together with OSC. :smiley:

I could see us implementing something natively one day, though. It just isn’t planned and isn’t on the roadmap.

It requires you click on it with the laser, it isn’t a thing you grab. Grabbing the camera will never close it. It works the exact same way the current button works, except its been moved up.

There isn’t much demand, no, but others have requested it and we still have it noted internally.

Thank you for the feedback! These features get mentioned in basically every thread and we’ve previously responded multiple times that the feedback is known. These are big features that we’re considering, but they need work. Don’t worry, we know you want them. They get posted in every Dev Update. :smiley:

5 Likes