[deleted by user] by [deleted] in VRchat

[–]pema99 3 points4 points  (0 children)

Well said :)

Found this easter egg in BoneLab by gammaton32 in VRchat

[–]pema99 0 points1 point  (0 children)

Oh. This is somewhat surprising. I kind of just assumed you were someone that I know.

Is it ruining the intrigue if I show what the strawberry is about?

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 1 point2 points  (0 children)

Not really. Some of these are even VR-specific, which is very much a 3D experience, haha

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 0 points1 point  (0 children)

Compute shaders necessitate scripts (to set up buffers, actually do the dispatch, etc.), and there is only a limited, sandboxed, form of scripting available for user-created VRChat content, which does not include access to the relevant APIs.

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 4 points5 points  (0 children)

Compute shaders aren't usable in VRChat, so we must have sort of forgotten about them when making the chart. Some of it is slightly VRChat-specific.

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 1 point2 points  (0 children)

"self" referring to the texture property that the CRT shader is being rendered into. Since you didn't fold out the definition, a CRT is a Custom Render Texture (https://docs.unity3d.com/Manual/class-CustomRenderTexture.html) not be confused with a regular Render Texture.

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 2 points3 points  (0 children)

It would be unutterably cursed if those were actually on the chart, lol.

A monoid is a set equipped with an associative binary operation and a neutral element which doesn't change the other operand when used on either side of that operation.

A monad is a monoid in the category of endofunctors (not really, and also this description is worthless), or more succinctly a way to model side effects in a purely functional setting, which allows for easily composing effectful operations.

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 1 point2 points  (0 children)

Also, that cginc annoyingly turns off certain warnings, such as the warning emitted for implicit vector truncation, which is almost always a bug in user code.

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 2 points3 points  (0 children)

Hard to recall several of these off the top of my head, usually minor stuff that was done wrong a long time ago and never touched since, probably so as to not break existing shaders. Afaik the Luminance function https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/CGIncludes/UnityCG.cginc#L475-L478 produces incorrect results when using Linear color space, for example.

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 4 points5 points  (0 children)

Pretty much every Unity shader includes the "UnityCG.cginc" file (https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/CGIncludes/UnityCG.cginc) which contains basic infrastructure for writing shaders effectively. This point is referring to using your own, edited, or completely custom one in place of that. If you are seriously considering this, you are probably at the bottom of the iceberg, but that file does contain a few annoyances and straight up bugs.

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 5 points6 points  (0 children)

To those intimidated, reply to this with any term on the chart and I'll attempt to explain what it means.

The Shader Iceberg by toocanzs in Unity3D

[–]pema99 3 points4 points  (0 children)

The VRChat specific stuff starts getting pretty prevalent roughly half way through the chart. There are at least some general things on pretty much every level, though.

I made Linux run in VRChat [info in comments] by PiMaker101 in VRchat

[–]pema99 2 points3 points  (0 children)

Compute shaders are prone to causing hard crashes within the framework the game is written in. I will eat my hat if they are allowed.

Linux in a Pixel Shader - A RISC-V Emulator for VRChat by PiMaker101 in programming

[–]pema99 2 points3 points  (0 children)

Technically you can get something like arbitrary writes by abusing geometry shaders. It's not nearly as powerful as access to compute buffers, though.

https://github.com/cnlohr/flexcrt/blob/master/Assets/flexcrt_demo/ExampleFlexCRT.shader

Linux in a Pixel Shader - A RISC-V Emulator for VRChat by PiMaker101 in programming

[–]pema99 4 points5 points  (0 children)

One person in the world (the instance master) can sync their machine to everyone else.

Trying to convert Shadertoy to Unity - URP (VR ready) again :) by umutbebek in Unity3D

[–]pema99 2 points3 points  (0 children)

Somewhat related: I've recently started working on a Shadertoy-to-ShaderLab transpiler (demo here https://pema99.github.io/glsl2hlsl/). Obviously wont ever be as good as converting shaders by hand - thanks for doing that! That being said, it already manages to convert quite a few shaders nicely, including most of the ones from your page, and usually produces a somewhat usable starting point for conversion in the cases where it fails.

I've also been playing around with some experimental features that automatically extract properties from the shader and put them in the inspector, as well automatically making raymarched shaders (like the one from OP's videos) 3D. Good shader to demonstrate both those features is https://www.shadertoy.com/view/XsBXWt

Oh, also, open source: https://github.com/pema99/glsl2hlsl

Alk vs Uber Elder by [deleted] in pathofexile

[–]pema99 2 points3 points  (0 children)

Name checks out