Feature Requests

Please check out the following guidelines before suggesting a feature! Off-topic posts will be deleted.
Add Support for Streaming Mipmaps for Avatars and Worlds
This feature request is to add support for streaming mipmaps for avatars and worlds. Steaming mipmaps ( unity docs ) allows textures to be downscaled and dynamically loaded into VRAM. It does increase the size of each mipmapped texture by 33%, so package sizes will be larger. However, it allows textures to be loaded dynamically based on distance. This would mean that a texture that traditionally may be 2.8 MB DXT1 at 2048x2048, may be under 44 KB if it is reduced to 256x256 in VRAM. So in worlds, this means significantly reduced VRAM usage when texutures are a certain distance away. Same with avatars if they are a certain distance away. If tuned properly, this could mean that avatars that may traditionally take up 200 MB of VRAM, can instead take up magnitudes less. Often, 2K textures look just fine on most avatars from even 0.25 meters away. So being able to unload them for a smaller one would be significantly useful, especially for large meetup events. Fax did mention that VRChat currently does not have mipmap streaming. The reasons are the following: > Most notably - some user avatars may lack mipmaps, have them disabled, or have a maximum priority. This would adversely affect mipmaps with streaming enabled: Once you run out of VRAM, they’d appear blurry and stuck at a lower mipmap. Users might run into this issue maliciously, or accidentally. Considering that the VRChat application currently allows avatars to be created with mipmaps, but they aren't shown, perhaps there is a way to allow the client to choose if they want them enabled? I do know many games have texture streaming as a togglable option, so perhaps VRChat can do this here? I would even be happy if this was an experimental feature that had risks associated with it, if it's for the sake of testing. Fax also mentioned: > Unfortunately, that wouldn’t fully solve the problem, as avatars uploaded without streaming mipmaps enabled effectively have an ‘infinite’ priority. I see this as a non-issue, unless there are some other contingencies. Unity docs mention that it can load non-mipmapped textures alongside mipmapped textures. Considering VRChat doesn't have mipmap streaming already, this means that the game will be identical with or without mipmap streaming if all avatars don't have mipmap streaming. But in the event that half the lobby does, then there will be at least that many avatars that will save on resources, even if the others don't. Also, perhaps (idk if this can work), but this may also mean that the avatar hider can unload textures properly? At least in theory, if the avatar is not loaded, it may load the smallest mipmap? This would save a LOT of VRAM for users that want to use the avatar hider. This feature would help a lot for people that do not want to optimize their avatars. I do think VRAM over-utilization is one of the worst offenders in terms of VRChat performance. Solving this issue would help many, especially those with less VRAM.
17
·

interested

[Settings] Implement "Show Unless Hidden (Globally)" Alongside "Hide Avatar Globally"
Preface Whilst it is understandable that the VRChat staff do not wish to confuse users with "Hide Avatar Globally" when "Show Avatar" is set, there are numerous reasons why the chosen behavior to always show avatars is bad . Namely, the usefulness of Hide Avatar Globally is to hide avatars which the user may find discomforting, upsetting , or even technically poor performing on their platform of choice. Likewise, even amongst players the user may trust to "Show Avatar" , the user cannot control them nor their ability to wear said globally hidden avatars. Furthermore , due to the safety system on Quest, it is common to use Show Avatar on your friends list, as the minimum performance setting cannot go below poor , and it has been established elsewhere that the Quest's ranking system is perhaps aggressive, albeit with good reason. Additionally , there has become a social, shall we say, practice, amongst some, to have aggressive safety settings, then Show Avatar for those they directly interact with. This does not guarantee trust in that user, and can result, in fringe cases , in a large list of players in which Show Avatar has been toggled. Ultimately however, Show Avatar is a per-user setting and Hide Avatar Globally is a per avatar setting . The avatar setting should always take precedence. — It even says "Globally" in the name! It's not really global if something else can override it, is it? — Solution To remedy this conflict , the 3-Way avatar display toggle on user profiles should be adjusted into a 4-Way toggle, with the following options: Hide Avatar : Hides this user's avatar always Use Safety Settings: Shows the player's avatar, unless hidden globally, or blocked by the user's performance and safety settings Show Avatar: Always shows the player's, unless hidden globally; "Show Unless Hidden (Globally)", in essence Always Show Avatar: Always shows the player's avatar, even if globally hidden; An override Upon updating to this system, all existing uses of Show Avatar will be set to the new Show Avatar , as to avoid confusion as to "why Hide Avatar Globally is not working with some people". Users who wish to override HAG on specific users may do so from the profile page with this new fourth setting.
9
·

interested

Load More