34 yo dude creating and exploring worlds on VRChat. I am mostly posting about WIP stuff, Unity and world recommendations.

Joined November 2019
Pinned Tweet
21
200
9
1,895
93,173
One interesting thing about Light Volumes is that they can be updated at runtime, allowing for baked lighting toggles! Here, I have two switches controlling two Light Volumes, plus an additional one for the light shining through the window. Everything is baked. #VRChat
6
31
468
6,526
Setting this up is a bit more cumbersome, Basically: - You need to bake each Light Volume separately to ensure that each volume is only affected by a specific group of light sources. The "Bakery Lightmap Group Selector" component cannot be used here. Personally, I chose to bake each light volume in a separate scene. - Set each Light Volume as "Additive Volume" to ensure they don't override each other. I could have used Point/Spotlight volumes instead, but I felt like using regular volumes would give better results since they also support bounced lighting. Personally, I also implemented a separate system to change the color of the lightmaps at runtime, this is done entirely in the shader.
1
15
283
Actually, one more thing : I added an elevator door, but I still need to add the control panel. Baked Specular makes a huge difference here, especially with smooth metallic surfaces (notice the flower pot on the left too). Baked Specular ON ↔ OFF ↔ Unbaked #VRChat
Replying to @MyroDev
Day 5~6 : Mostly done. I added water, and used Mochie's water shader for caustics. Added a little art installation at the end to not make the end feel empty. And added LV support, I don't always add LVs, but I think it makes sense here given the more varied lighting conditions. No post processing added yet.
1
19
364
7,406
If your baked specular light looks weird or unatural: Orels1 standard shader has a "Specular Roughness Mod" setting that lets you make them look rougher without making the actual surface roughter (pretty nice for larger area lights). Default (1) ↔ Slightly lower (0.8) ↔ No baked specular
6
467
MyroP retweeted
My world Paranormal house was ripped and re-uploaded as "Spectrophobia". Blatant one-to-one rip. Hopefully this can be dealt with soon. #VRChat
8
16
2
96
14,434
I've seen too many fully AI-generated VRChat worlds lately, so I tried Astra myself for an hour (so you don't have to) to form a better-informed opinion and arguments. (pic 1) A picture is worth a thousand words. Notice the object count, and nothing is instanced by default! (pic 2) It seems to mostly generate beveled primitives. Not every object shares the same mesh, so instancing isn't always possible. I've noticed similar primitives in some VRC worlds, so this could be one sign that certain assets are AI-generated, though I could also see someone new to Blender making meshes like this. Objects are often placed in weird ways, like floating slightly too far from the surface. (pic 3) For instance, those are two separate meshes with two separate mesh filters, even thought they could have been the same meshes rotated 180° Conclusion (from my quick test) : It's not meant to replace Blender or generate a finished world!
10
5
85
6,413
If you're a world creator and dislike seeing AI-generated worlds, content, thumbnails, etc., you can add the "No AI" banner linked in the QT to your thumbnails. I personally like that idea, and I will also try to do that this week, since it feels like those cannies are ignored.
Real world creators are speaking out!
2
50
2
351
9,845
It's complicated, I'll put my thoughts below: Personally, I'd be happy if there were an AI disclosure field below the description. Before joining a world, I would like to know what was AI-generated, and I would avoid visiting worlds that are mostly just AI slop (for instance, worlds generated with Astra). But I guess it can't really be enforced, just like on Steam. I also don't want people to get banned because they failed to properly disclose AI-generated content, but maybe the world could just be privated until the use of AI has been properly disclosed, I don't know. I don't think using an "AI" tag is a good idea, since it's too broad a concept. Worlds could have AI-generated assets, or maybe the development process was AI-assisted (like coding) AI-enhanced thumbnails suck, but clickbaity thumbnails have always been an issue, it just got worse due to AI. I don't feel like I really need a toggle to hide worlds that use AI. For instance, ORGANISM has some AI-generated posters in the world, and I definitely wouldn't want to hide that world.
1
4
165
In this thread, I was thinking of sharing regular progress updates of a hallway. I am not sure yet if I will do that every day, since I don't want to spam too much. Day 1 : That was about 45 min of modelling
1
1
34
1,356
Day 5~6 : Mostly done. I added water, and used Mochie's water shader for caustics. Added a little art installation at the end to not make the end feel empty. And added LV support, I don't always add LVs, but I think it makes sense here given the more varied lighting conditions. No post processing added yet.
1
1
29
7,572
Not sure if I'll keep talking about that hallway, it's mostly done. At this point, it's just micro-adjustments and finishing certain assets. I also haven't decided if I want a more cyan-colored light or something more bluish, like what I saw during my holiday in Mallorca (main lighting inspiration).
4
310
A project I will keep an eye on : A C# to UdonAssembly compiler that aims to be an alternative to UdonSharp. It seems to support most C# features, including async/await, try/catch, linq etc. That sounds amazing.
📣『MenSharp-0.1.0』を公開しました MenSharpはC# → UdonAssemblyのコンパイラで、UdonSharpの代替をめざします ごく一部を除くほぼ全てのC#機能を使用でき、コンパイルは非常に高速で、C#コンパイラのRoslynよりも最大8倍高速です 現在はテスト段階であり、リプライのURLよりお試しいただけます▼
2
6
94
4,076
Here's a not-so-quick explanation about optimization : **GPU Instancing** GPU instancing is nice if you want to batch similar meshes. Unity also sorts those GPU instances front-to-back to reduce overdraw and therefore GPU usage. But, if you have multiple different GPU-instanced meshes in your scene (trees, rocks etc.), then Unity may render those instances in more batches to preserve front-to-back sorting, which increases CPU usage. For instance, Unity may render 10 trees, then 8 rocks, then 25 trees, then 12 rocks (4 draw calls) instead of just rendering 35 trees then 20 rocks (2 draw calls) In that case, you may want to play around with the render queue to let Unity know that you want to do the sorting yourself. This is one case where using different render queues can reduce the number of draw calls, but that could increase overdraw. In the scene below, each house shares the same mesh filter and material, so those houses can be GPU instanced. To reduce overdraw, you may want to render the houses first, then the road, and finally the sky. Use GPU instancing for things like trees, rocks, grass, etc. **Static batching, manual mesh combine** Static batching works well for meshes that share the same material, and it's sometimes preferable to manually combining meshes, since Unity can still cull the individual meshes. But Unity doesn't always do a good job at Static Batching meshes, there are editor tools that can improve it, you can try using tools like "CustomStaticBatching" (GitHub). Static Batching increases build size, do not static batch hundreds of meshes that could be GPU instanced instead, the difference can be hundreds of MBs in the worst case (I've seen once a world where switching to GPU instancing reduced the world size from 100MB to 10MB) Static Batching comes with a CPU overhead, manually combining meshes doesn't have that issue, but like I mentioned previously, you cannot individually cull meshes that have been manually combined into a single mesh. Static Batching and manually combining meshes can increase overdraw, as individual polygons aren't sorted front-to-back. **Front-to-back sorting** I mentioned a bunch of time "front-to-back sorting": To keep it short, I am talking about pixels, you want to render the pixels closest to the camera first, since the GPU can avoid wasting time drawing pixels that will just be covered by something closer. If you render pixels farther away first, the GPU doesn't know yet if something will be rendered in front of them later. If that happens, you end up drawing the same area multiple times. That's overdraw. Now, you cannot sort pixels, but you can sort meshes, and that's what Unity tries to do. Sorting meshes front-to-back more or less sorts pixels front-to-back. **Conclusion** Optimizing CPU performance can decrease GPU performance, causing the performance to be even worse than before, and vice versa, optimization is complicated to tackle, and there's like I mentioned in the first comment a lot of "This is recommended, except when...". Things I mentioned may be better to do in some cases, but can make the performance worse in others.
2
1
19
338
There are a few other things I could have mentioned (for instance I didn't mention about transparent or cut-out shaders etc.) but I think that's a good enough summary.
1
85
I updated my 3D Camera asset and added a "fisheye" option, so you can take fisheye pics! I also added a world prefab to render 3D pics in your VRChat world. Technically, the fisheye pics can also be used as matcaps. Not ideal since not true 180° pics, but it kinda works.
2
22
1
378
18,207
A few example pics I took
3
210
You can get it on my Gumroad, but it's a free asset, so you can also just DM me on Discord if you prefer. DMs are open (My Discord is the same as my VRC username: myrop) myrop.gumroad.com/l/3dcam
4
518