RED_SIM

RED_SIM

@sim.red

Game developer, technical artist, engineer, VR/AR enthusiast, dreamer. I also make shaders for VRChat creators.

799 followers91 following241 posts

VRC Light Volumes v.3.0.0 released! New features: EVSM shadows, separate speculars, light clustering, animated cookies, area light cookies, shader stripping, improved performance and more! github.com/REDSIM/VRCLi... #VRCLV #VRChat #Gamedev #Unity #Shader #VR

I want to talk about a big Steam Frame problem no one seems to mention: image quality. SteamVR's streaming pipeline has a serious bug that blurs high-contrast edges. I managed to partially fix it. These are real screenshots from the headset after decoding and lens correction.

View full thread

As you can see, the fix doesn't remove all the blur. That's why we need 4:4:4 color sampling. In this comparison you can see that Pyrowave looks much cleaner in my vibe-coded prototype on Frame. However, it doesn't work in runtime yet. So, Valve, please... you know what to do!

Here's the bug: SteamVR's PC VRLink shader genforencode_ps_chroma_full_stack.fxo doubles chroma derivatives that already account for 4:2:0, blurring color before HEVC. My patch averages matching 2x2 RGB pixels after sRGB conversion, then computes Cb/Cr.

I want to talk about a big Steam Frame problem no one seems to mention: image quality. SteamVR's streaming pipeline has a serious bug that blurs high-contrast edges. I managed to partially fix it. These are real screenshots from the headset after decoding and lens correction.

I used 250% supersampling here, so it's not an effect of the small resolution. If you thought the excess blur came from the optics, now you know it starts on the PC, before compression! I'd really like someone at Valve to see this and fix it. Details below.

My opinion on Steam Frame. I'm not going to overhype it or something, but long story short: overall, it's the best headset I ever used with minimum amount of tradeoffs, and thats why:

View full thread

10. Passthrough is... there. It's as bad as on Quest 2, but it's not that bad, when we have an external module for that. Will get it soon and share my experience too. Ah, it also has super bright IR LEDs, so you'll have a nice tracking in a complete darkness too.

11. A very important thing I forgot to mention! Lens has visible distortion. Not as crazy and bad as in BSB, but for me, it's a slightly visible distortion in the center or the bottom of the view, hard to tell where, to be honest. But I can feel it.

My opinion on Steam Frame. I'm not going to overhype it or something, but long story short: overall, it's the best headset I ever used with minimum amount of tradeoffs, and thats why:

View full thread

8. Sound is very good. Maybe not as good as with Index BMR drivers, but it's really nice, times better than Vive Deluxe Audio Strap ones or Koss Pro from BSB headstrap. Mic is good, but needs some equalizer tuning. Internal fan is not loud at all, especially comparing to the BSB.

9. Tracking is perfect. In my opinion, much better than Lighthouse tracking. It even tracks controllers behind your head, unlike the Quest 3. Not as perfectly precise, as when in front of you, but surprisingly, great. You just don't have to worry about it.

My opinion on Steam Frame. I'm not going to overhype it or something, but long story short: overall, it's the best headset I ever used with minimum amount of tradeoffs, and thats why:

View full thread

6. Eye and face tracking is yet to be configured. It works, works really fast with foveated streaming, works natively in VRC over OSC, but can't tell if it's good or not, really want to hear Hash's opinion :D And waiting for the Project Babble external FT module.

7. Battery life is fine if you use an external powerbank. 1.5+ hours on internal battery, but think of it as a hotswappable feature for your external powerbank :D I'd recommend buying several small 10k mAh ones for long VRC sessions.

My opinion on Steam Frame. I'm not going to overhype it or something, but long story short: overall, it's the best headset I ever used with minimum amount of tradeoffs, and thats why:

View full thread

4. Video streaming and compression are noticeable. Less visible than on Quest, but really noticeable. Foveated streaming is also noticeable, but not bad. In my opinion, the best visuals with no visible compression are at 300%+ supersampling. Ideally 500%, but will require a 5090

5. Software is currently bugged, but usable. I spent 1 hour trying to pair my wireless dongle (had to disable USB power saving mode in Windows). Playspace mover works bugged with dashboard UI when installed on PC. Will maybe work better if I install it directly on Frame.

My opinion on Steam Frame. I'm not going to overhype it or something, but long story short: overall, it's the best headset I ever used with minimum amount of tradeoffs, and thats why:

View full thread

2. Visuals as good as on Quest 3, maybe slightly bigger FOV. Screendoor is visible, but only slightly. Almost no glare. On Quest 3 I had a weird problem: after one hour of play, my eyes always started to hurt really bad. Here I can play hours with no discomfort at all.

3. Controllers are very good for my hand size (medium but slim hand size?). TMR joysticks are a pure JOY. Finger tracking range is times less than on Index, which is grate, but it's fine. Haptic feedback as PS5-like - very good! Straps are super comfortable.

My opinion on Steam Frame. I'm not going to overhype it or something, but long story short: overall, it's the best headset I ever used with minimum amount of tradeoffs, and thats why:

1. Very comfortable to wear. I know it depends on your head size and your face shape, but for me it's 100 time better than BSB with their individually built face gaskets, much better that Quest, as comfortable as Index, but lighter, more balanced.

It was the first time for me to have an interview in VRChat! You can check it out if you want to know a little bit more about me :P

Armani’s Parlour@armanisparlour.bsky.social

For this interview series, ArmaniXR meets with @sim.red to hear more about how he created VRC Light Volumes and so much more for worlds in social VR! You can learn more about his journey below. #VRChat #computeshaders #socialVR #gamedev 💙💛 armanixr.substack.com/p/vrc-light-...

I made a shader stripping feature for VRC Light Volumes v.3.0.0! It's something similar to what Poiyomi or lilToon does when you lock your shader, but for worlds, not avatars. And I can say, it's a game-changer in terms of world performance!

It will do nothing to avatar shaders/materials cuz avatars can be viewed in different worlds with different features, so we can't strip them. It will also require no extra work for shader developers to implement the stripping support.

Working on a GPU particles rain system that can work together with VRC Light Volumes and my prototype of a volumetric fog. Every raindrop creates ripples and small droplets from it. Bluesky compresses the quality like crazy, it looks 100 times better in game.

Some less compressed screenshots. Here you can see that the rain is much more detailed than it is on video :D

Testing VRC Light Volumes 3.0.0 in some real conditions. Here's an example of a world fully lit up with VRCLV 3. No baked lightmaps here at all, only semi-realtime lights that are baked in game. Every light can be controlled separately in runtime. 70+ active light sources here.

Today, my absolute favorite visual novel, got a remake - Steins;Gate RE:BOOT! So, to immerse myself even deeper in the novel, I made an app that fully syncs my IRL DIY Divergence Meter with the in-game one! #シュタゲ #シュタゲリブート #SteinsGate #SteinsGateReboot

A new clustered froxel-based lighting prototype for Light Volumes 3.0.0! It uses froxels to precompute visible light IDs, so shader don't have to iterate through every light. This scene has 128 active lights and performs around 60 FPS on Android. ~13 FPS with no clustering.

60 FPS was tested on Google Pixel 9 Pro Fold - not the greatest GPU at all. Quest 3 was up to 45-50 FPS based on my test. And I still plan to improve it, so it will most probably be even better. And it's completely back compatible with VRCLV v.2.x.x, but will just ignore froxels.

RED_SIM reposted

I really enjoy working on this project, and it's awesome to see people actually using it. I also want to be a bit more open about where the project is going, so I put together a small list of what I'm planning to work on next: www.patreon.com/vard/posts/f... #VRChat

Starlight Projector is out now! An interactive projection sphere powered by VRCLV 3.0 that projects beautiful animated effects onto your world and avatars. Every purchase supports VRC Light Volumes development. 30% off this week! Links to Booth, Jinxxy, Gumroad and Pateron below:

RED_SIM reposted

Updated "2000s Classroom" to VRC Light Volumes 3.0 by @sim.red with advanced features: Animated Cookies, EVSM Shadows and Froxel Based Volumetric Fog (not included in VRCLV). That means: almost "real-time" and "physically correct" light and shadows. Must be enabled in the world menu #VRChat

VRC Light Volumes v.3.0.0 is now ready for a public BETA test! It's a beta test that is mostly for creators: I want you to check if it works in your worlds an if you have problems integrating it in your shaders. (Enable Pre-Releases in your VCC to get it) github.com/REDSIM/VRCLi...

VRCLV v.3.0.0 is back compatible with v.2.x.x shaders, so it's should be safe to update your worlds! It also has new shadows so if you used older occlusion volumes, you should remake it with a new solution. Also I'm already looking for the worlds for the 3.0.0 trailer video ;P

RED_SIM reposted

2.0 is here! Featuring experimental screen sharing, along with many fixes and stability improvements. Unfortunately, screen sharing is currently available only for self-hosted servers because it's too expensive for me to support it on the public one. I also...

Vard@vard.cc

Made a browser-based low-latency audio streamer for #VRChat because apparently I enjoy deleting tiny annoyances from existence. No app install. Pick a tab or mic, copy link into a video player, done. also open source btw Link: vard.cc/vrcstreamer/

This is incredibly useful! It's crazy that you made such a service for free.

Vard@vard.cc

Made a browser-based low-latency audio streamer for #VRChat because apparently I enjoy deleting tiny annoyances from existence. No app install. Pick a tab or mic, copy link into a video player, done. also open source btw Link: vard.cc/vrcstreamer/

I made physically correct speculars for VRC Light Volumes v.3.0.0. Now we'll have them separate per each light, so no specular-leaking artefacts anymore! Also now speculars use light source size to look much more physically correct.

It's obviously less performant, but not that bad. Shader makers will still have a choice which approach to use. Older and cheaper speculars are still supported (I suggest using them on Quest and Mobile). BTW: Here you can see speculars and shadows depending on the light size.

VRC Light Volumes v.3.0.0 will support Area Light realtime texture emission, almost like LTCGI. Less physically accurate, but very performant!

It supports Textures, Render Textures, Custom Render Textures and Materials. It also uses fallback average color for shaders that supports Light Volumes v.2.x.x, so your older avatars will not stand out anyway. The performance cost of it seems very cheap.

I watched "The Amazing Digital Circus: The Last Act" today. No context, so it's not a spoiler, but I made something related on VRC Light Volumes v.3.0. I can already imagine how great it will fit VRC chill worlds...

Still working on VRC Light Volumes v.3.0 Here are some realtime shadows with volumetric fog... (Extremely expensive but cool)

I really love new VRC Light Volumes shadows! But I have to tell you that realtime feature is very expensive, more expensive than Unity's default shadows. So such shadows should mostly be used in baked-realtime mode, when players can only receive shadows, but not cast.

So I'd recommend not to use more than one fully realtime light at the same time. The real use case of runtime shadows baking is to trigger it for one frame to rebake shadows if your scene changed. After being baked, these shadows are almost free.