Bug Reports

  • No off-topic posts
  • Don't report more than 1 issue at once
  • For isolated issues or customer support visit help.vrchat.com
Thanks for your bug report!
[1801] Face Mirror with Transparency results in transparency issues with some avatars.
Issue This bug seems to primarily affect some Poiyomi configurations where the 'Opaque' preset is reapplied to a material after another preset was applied. Seems to have recently cropped up due to one of the recent mirror fixes in the last update as I and at least one other person on the Poiyomi Discord only noticed this on our avatars in the last two days. Specifically this issue primarily affects materials that have their Alpha Destination Blend set to One as apposed to OneMinusSrcAlpha. Attached IDs are of the same avatar using the exact same poiyomi material with the only difference between them being 'Alpha Destination Blend' being modified (See Attachment 2). Avatar 1 (Has the Mirror Issue): avtr_139d9b9a-03f7-44bc-8625-fc46bda95acc Avatar 2 (Does not have the Issue): avtr_ec659aeb-9359-4fe3-80a7-eb6878838fa9 Repro Steps: Change into an avatar w/ a shader where the 'Alpha Destination Blend' is set to one. Avatar 1 above is one such avatar. Open Face Cam. Change Face Cam Opacity to something less that 100%. In my testing mine was set to 50%. Lower opacity makes the issue more obvious Observe the transparency issues on the avatar. Attachments: Attachment 1 is screenshot is an example of the transparency issues. Personal Mirror is on the Left, Face Cam Mirror is on the Right with the issues. Attachment 2 is a screenshot of the settings of 4 different materials with different Alpha Destination Blend settings. The ones with 'OneMinusSrcAlpha' do not have any issues in the FaceCam while those that are set to 'One' do have issues.
4
·
available in future release
_VRChatCameraMode set to 0 with Spout Stream
When using shaders which omit themselves when _VRChatCameraMode is set to 0 , objects using these shaders are non-visible in the spout stream camera when the camera UI is closed. This is not expected and presumably not intended behavior. _VRChatCameraMode is being set to 0 when the camera UI is closed, despite an active camera still going, and said shaders rendering properly when camera UI is open. Example Shader: Shader "LiveDimensions/ScreenSpaceTexture" { Properties { _Color("Shader Color", Color) = (0.3,0.3,0.3,1) _MainTex ("Texture", 2D) = "white" {} [Toggle] _NoPlayerRender ("Render Highlight in Camera Only", float) = 0 } SubShader { Tags {"Queue" = "Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"} blend One OneMinusSrcAlpha //INSIDE OF SPHERE (USES RENDER TEXTURE) Pass { //Cull back faces so we can write front faces over the last pass Cull Front CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" sampler2D _MainTex; float4 vert(appdata_base v) : SV_POSITION { return UnityObjectToClipPos(v.vertex); } float _VRChatCameraMode; fixed4 frag(float4 i : VPOS) : SV_Target { [branch] switch(_VRChatCameraMode){ case 0: { return fixed4(0.0,0.0,0.0,0.0); break; } default: { fixed4 tex = tex2D(_MainTex, ((i.xy / _ScreenParams.xy))); UNITY_OPAQUE_ALPHA(tex.a); return tex; break; } } } ENDCG } //OUTSIDE OF SPHERE (USES RENDER TEXTURE * COLOR) Pass { Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"} ZWrite Off // AlphaTest Greater 0.01 // blend SrcAlpha OneMinusSrcAlpha blend OneMinusDstColor One, One OneMinusSrcAlpha //Cull front faces first Cull Back CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 2.0 #pragma multi_compile_fog #include "UnityCG.cginc" struct appdata_t { float4 vertex : POSITION; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { float4 vertex : SV_POSITION; UNITY_FOG_COORDS(0) UNITY_VERTEX_OUTPUT_STEREO }; fixed4 _Color; v2f vert (appdata_t v) { v2f o; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.vertex = UnityObjectToClipPos(v.vertex); UNITY_TRANSFER_FOG(o,o.vertex); return o; } float _VRChatCameraMode; float _NoPlayerRender; fixed4 frag (v2f i) : COLOR { fixed4 col = _Color; [branch] switch(_VRChatCameraMode){ case 0: { [branch] switch(_NoPlayerRender){ case 0: { break; } default: { col = fixed4(0.0,0.0,0.0,0.0); break; } } break; } default: { break; } } UNITY_APPLY_FOG(i.fogCoord, col); UNITY_OPAQUE_ALPHA(col.a); return col; } ENDCG } } } (Modified from https://github.com/LiveDimensions/VRC-ScreenSpace-CameraOverride )
2
·
available in future release
Load More