Developer Update - 29 June 2023

Is there a proper tag for that? might be interesting to look at some worlds like that.

This world should have problems

Adding the shadowcaster pass will solve both tickets at once, since both effects rely on the depth information provided by the pass

Transparency is unfortunately quite expensive on Quest hardware which is why it’s recommended to be avoided at all costs. Unless they come up with something very clever, it’s unlikely we’ll be able to see it any time soon.

FSR and DLSS are not a perfect thing, they can only reduce pixel shader overhead but not geometric shader overhead.

Not to mention that the treatment has side effects and must be considered carefully.

As someone mentioned above, the use of the pipeline must be changed on a large scale, the current level of official technology is estimated to be necessary on the SRP in the URP to be possible.

This means that almost all existing assets have to be abandoned and rebuilt. From the current level of Unity3D construction, it is recommended to start experimenting at least from 2022.3.

A successful conversion will require years of processing, and eventually a one-time replacement of the version.

Then you can have motion vectors (new version of Unity), allowing the implementation of DLSS2.0 and FSR2.0.

Maybe include geometry and CPU overhead if it’s DLSS3.0.

But it’s too early to say all this, the effort required to replace from BRP to SRP is huge, for vrchat.

ClientSim is open-source, so if you can demonstrate a better fix for this, we’d be happy to review it!

So here’s my question: will this effect fallback shader behavior and if it does could shader authors have the options to control what texture is for what channel?

I think you’d want to keep in mind how the underlying fall back works. With these shaders when you’re making a material it has parameters with names. So like maybe it’s named _occlusionmap for for a texture and the info is in the green channel, you’d want to follow that. (Not exact name of parameters)

If you write a shaders that packs differently, like the ready player me avatars, the information is either ignore or improperly used. Last I checked smoothness and metallic are available if you download your rpm avatar, but not used in the version attached to your account. They are packed differently from what the mobile shaders required.

Thanks. I dug around my projects and found one with “2022.06.03.00.04”, it has the bug, but out of 3.1.11, 3.1.13 and 3.2.0 all of them work fine with the mobile matcap shaders


Afterwards, we’ll move to an open ik-beta similar to the one we did in the past. We understand the way your body moves in VRChat is a very personal thing, so we’ll be looking for your feedback once the ik-beta is available!

Please tell me this means the spine tilting with the head in 3pt might actually get fixed, actually the most noticable flaw of the current IK without FBT IMO
gif

The issues mentioned are not with matcap, they are with VRC standard lite and a few of the other shaders

1 Like

But that is the right sort of fog to look at, right?

Edit: I checked Standard Lite and Toon Lit, those both have a problem with last years SDK, and not with current ones. From what I’m seeing the problem is fixed in more modern SDK versions.

That’s good to hear that ClientSim is open source!

So the idea is to use a custom UI Shader with ZTest set as “Always”, that means that the depth test will always pass, allowing the pixel to be rendered regardless of its depth compared to other pixels.

All we need is a custom shader, for this, I used the UI template provided by Amplify, but the Default UI from unity should be enough too.
Make a material and assign it to every “Images” and “Text” in the ClientSimMenu Prefab.

Done!

PS: That solution could also be used in VRChat for UI Elements?

1 Like

The idea is for those that make shaders that some VRChat fallback properties could be exposed such as the metallic smoothness map. For the case of poiyomi it’s be optimal for use of their map packing or if users make their own custom methods of packed maps including cases where emission may be used

very great maj for shader but do you add the transparency one day ?

I have a quick question, are you guys planning on adding support for bakery light volumes?.

I apologize if this has already been answered, or if it is and I just messed up a test I did a few months back

1 Like

I want to know why would you guys rely on Unity and why use FSR1? If it were up to me I wouldn’t want to use Unity’s solution since FSR 1 is a little bit outdated and would want to use the latest build of FSR 2. Some people have been able to get it to work with the Built in pipeline and older versions of Unity as old as Unity 2017 as well as using the available APIs in Unity like DX11 and OpenGL. The only issues I think are present are the motion blurring artifacts, getting it to properly work with PPSv2, and the lack of proper VR support from those creators.

FSR2 has the same issue as DLSS as it would require motion vectors.

possibility to have double side render ? with vrchat shaders and don’t use poiyomi or ranbow rim shaders

My suspicion on transparency on quest shaders is that it’ll have to wait until the quests can handle a large amount without bogging down.

I appreciate all the explanation, but FSR worked before as a mod and a lot of people used it without much issue. I know it’s not “technically correct”, but it worked.

Is it not possible to whitelist the FSR mod? Thankfully I have a 3080 now, but I used to run a 1070 and it was quite a nightmare. It was very hard to read text setting SteamVR to about 40-50% just to get semi-playable framerates. I can imagine that FSR would be better than that.

Perhaps the performance losses will be helped a bit when impostors are introduced, so people can see avatars without them running awfully with too many mats and poorly optimized shaders. But even then, just running certain worlds was difficult on that 1070. Having the option for some upscaler would be great, even if it technically may look worse in some scenarios (hence why user choice and it being a toggle/custom injection is important).