Avatar Bugs & Feature Requests

Post about current Avatar bugs and Avatar Feature Requests. One item per post!
Non-constructive and off-topic posts will be moved or deleted.
Avatar with Particle Light will always have 2 or more Lights in Performance Stats even when Max Particle Lights is set to 1.
With the recent-ish change that makes particle lights correctly count towards your total light count, I noticed a possible discrepancy with the total count. Steps to recreate: Add a Particle System to the avatar In the Particle System, scroll down to Lights Create a Point Light in the scene but outside the avatar Create a prefab of the Point Light Insert the Point Light prefab into the Light slot inside the Particle System Limit Maximum Lights to 1. Upload to VRChat Observe avatar details of avatar. Lights will be listed as 2/1 Example of an avatar that only has 1 Max Particle Light on the entire avatar but is listed as 2/1 lights in the avatar details https://vrchat.com/home/avatar/avtr_7c80a2a5-3473-421f-86ce-fdda8fa8eb3f Expected behavior: Lights should be listed as 1/1. Though I expect the 2/1 is likely due to the server-side(?) performance check adding both the light in the light prefab itself (Even though that prefab itself is not included in the hierarchy on the main avatar and is only used on the particle system) and the maximum lights in the particle system. I understand that this is a relatively niche usecase as most people would likely just use a a regular light, but having this singular light be part of a particle effect allows for some neat control of the light through manipulation of the particle. i.e. I use it as a way to add noise to the the size and intensity of the light which would be more complicated to implement using a normal light. Also, is it possible to update the performance stat calculation of SDK Test avatars to match the new behavior? It's still using the old behavior that only counts the prefab and not the particle light count itself. I need to upload the avatar to see the correct stats.
1
·
Bug Reports
·
tracked
[SDK] Display Error/Warning in SDK when mipmaps are disabled on main textures
Mipmaps are an important technique used in computer graphics to lower the cost of rendering high resolution textures at oblique/glancing angles or great distances. They store progressively smaller, filtered versions of the main, higher resolution texture. As the size of a surface in real screen pixels becomes smaller, a higher mipmap level is used, resulting in both a reduction in visible aliasing (due to containing an average of the higher resolution texture contents) and an increase in performance (as the lower-resolution mipmaps fit better into the GPU cache, increasing rendering throughput). Mipmaps are great! Unity enables mipmaps by default. On PC, they're essential if you use large textures. And on Quest, having mipmaps can have a big positive impact on performance! However, mipmaps cost a small amount of memory, and it has become commonplace for people who do not understand or care about the performance implications to recommend disabling mipmaps to save on memory, thus causing the GPU cache to be thrashed and various other negative effects. As the SDK currently recommends people reduce their avatars' memory usage by any means necessary, it's created this incentive to disable an important performance optimization. The solution I propose is for the SDK to also provide feedback and some light restraints on mipmap settings. However, it should not force the usage of mipmaps for all textures, as there are many important cases where mipmaps are not useful or harmful due to their extra data not being necessary, or causing calculations to become inaccurate. For instance, a common technique in both stylised cel shaders and realistic shaders is to use look-up textures for things like toon lighting ramps, specular/fresnel distributions, and other types of data which does not benefit from mipmapping. For advanced users, textures are really just a data source, and mipmaps are wasted if data you're reading doesn't benefit from them. Also, this proposal is geared entirely towards avatars. While worlds are technically not any different from avatars in how mipmaps affect things, individual avatars will always use unique textures, while only one world exists at a time. Here is what I recommend: ### On PC: Show a Warning if a texture meets all of the following conditions is above a size threshold (suggested: 256x256) does not have mipmapping enabled is not a render texture, custom render texture, or similar Show an Error if a texture meets all of the following conditions is assigned to a texture slot with the following name: _MainTex, _MetallicGlossMap, _BumpMap, _ParallaxMap, _OcclusionMap, _EmissionMap, _DetailMask, _DetailAlbedoMap, _DetailNormalMap is above a size threshold (suggested: 1024x1024) does not have mipmapping enabled ### On Quest/Mobile/Android: Show a Warning if a texture meets all of the following conditions is above a size threshold (suggested: 256x256) does not have mipmapping enabled Show an Error if a texture meets all of the following conditions is above a size threshold (suggested: 512x512) does not have mipmapping enabled The PC recommendations are designed to be permissive, and only stop users from using textures without mipmapping in places that would cause issues under normal circumstances. It can't cover all cases, but it shouldn't try. Render textures are excluded from the warnings as they require mipmaps to be generated at runtime, which has its own performance impact. The Android recommendations are a bit more heavy handed, as custom shaders don't exist for Android avatars and the performance impact is more notable. Thanks for reading!
2
·
Feature Requests
·
tracked
Load More