summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Use quad intrinsics to compute trochoid normalsyum2025-01-17
| | | | | | | Simple algo. Use quad intrinsics to get neighboring pixels' (x & y) positions in trochoid space. Compute tangent and bitangent from that. Then normal as cross product. There's some artifacting on diagonal boundaries.
* Continue fucking with trochoid normalsyum2025-01-16
| | | | | Seems like the determinant of the jacobian is ~0, meaning it's not invertible. That means the normals look fucked up.
* im going to kill myselfyum2025-01-14
| | | | | | | attempt to fix hypotrochoid normals key insight is that multiplying normal by transpose(invert(jacobian)) of transform should work, but it fucking doesn't
* Fix shadow caster passyum2025-01-04
|
* More fog tweaks: add animated noise, motion vectoryum2025-01-04
|
* Fog now uses object coordinatesyum2025-01-03
| | | | Also overhaul how emitter planes are specified. Use normal and tangent.
* Optimize downstairs 2 gimmick 3yum2025-01-01
|
* More work on downstairs 2 gimmicksyum2025-01-01
| | | | | | | * Use float param to select which gimmick to show * Add colors & domain warping to gimmick 2 * Also optimize it. Colors let us avoid 4-fold neighbor check fanout * Add rough/unoptimized version of gimmick 3
* Begin adding gimmicks for downstairs mapyum2024-12-30
| | | | | | | | | | | Included changes: * Update LTCGI includes * Add toggle to force world lighting * Unity fucking sucks dick and balls and doesn't set LIGHTMAP_ON consistently * Add some more sdfs for raymarching * Add separate LTCGI lighting mode for avatar vs. world
* More LTCGI cleanupyum2024-12-27
| | | | | | Debugging why shadowmap LTCGI emissions don't show up. This patch makes the shader match the appearance of the LTCGI surface shaders much more closely.
* Tweak LTCGI based on world experimentsyum2024-12-25
|
* Vertex lighting is now wrappedyum2024-12-17
| | | | | | | This is unconditional (for now). In VRChat, anything other than fully wrapped vertex lighting usually looks bad. Also add direct lighting to clearcoat.
* Fix clearcoatyum2024-12-16
|
* Add domain warping to decal featureyum2024-12-16
|
* Fix smooth_minyum2024-12-10
| | | | | | | | | | The old smooth_min(x, k) had the properties smooth_min(1, k) = k smooth_min(inf, k) = 1 Now it's smooth_min(x, k, j) with the properties smooth_min(1, k, j) = k smooth_min(inf, k, j) = j
* Add SDF mode to decalsyum2024-12-09
| | | | | | | | | | | Also: * add gen_sdf script, which converts solid color (ideally b&w) decals into sdf textures * add 6 more decal slots * add color, sdf options, alpha multiplier, tiling mode, and mask to decals * add token pasting macros (MERGE) to minimize code size of new decal slots
* Add second mask for rim lighting & matcapyum2024-12-05
|
* Add smoothness control to msdf font rendereryum2024-12-01
| | | | | Also rescale atlas so we can use texture sizes that are not a perfect multiple of the grid size.
* Add small programmable text display gimmickyum2024-12-01
| | | | | | | | Use Third_Party/gen_atlas to create a 512x512 texture and put it in the texture slot (the resolution is hardcoded to 512 in shader). Use sliders to control the grid size. If desired, use global offset to make it possible to linearly animate between e.g. 0-9 and have it display as ASCII '0'-'9'.
* Add cutout noise scale slideryum2024-11-30
|
* Fix gen_atlasyum2024-11-30
| | | | | | Now it generates things in a fixed-sized grid which is derived from charset's max codepoint. It does not interleave gaps, instead putting a big gap at the end/bottom of the atlas.
* Begin work generating an msdf atlas indexed by ascii codepointyum2024-11-30
| | | | Trying to beat claude 3.5 into submission. Little issues with placement.
* Interleaved gradient noise is now parameterized by frame countyum2024-11-26
| | | | | | | | I'm using an AAP (vrc.school/docs/Other/AAPs/) to create a frame counter. That frame counter then drives this parameter. Thus the sparkly pattern won't turn into gross flashing when the framerate is low. Also add a speed parameter to control IGN.
* Add multiply mode to pbr overlaysyum2024-11-26
|
* Add ACES filmic toggle to main shaderyum2024-11-18
|
* Refactor tonemapping curves into their own headersyum2024-11-18
| | | | Also add iq's "almost identity" curve.
* Update function nameyum2024-11-17
| | | | Aces filmic is more accurate than just "aces".
* Add brightness clamping to fogyum2024-11-17
| | | | | Use a nice "almost identity" function to create a smooth transition to the clamped value.
* Add ACES tonemapping to fogyum2024-11-16
| | | | Looks better lol
* Fox texture samples now use pointyum2024-11-16
| | | | Small perf win
* Add seed to interleaved gradient noise cutoutyum2024-11-09
|
* Add separate sliders for diffuse/direct lightingyum2024-11-09
|
* Tweak fog diffuseyum2024-11-08
| | | | Average LODs 9 and 11.
* Optimize fog againyum2024-11-08
| | | | | Drop fbm, it doesn't contribute as much visual interest per FLOP as domain warping.
* Fog domain warping now occurs in 3dyum2024-11-07
|
* Fog tweaksyum2024-11-07
|
* Begin experimenting with domain warpingyum2024-11-06
|
* Add baked normals & ltcgi to fogyum2024-11-06
|
* Fog cleanupyum2024-11-05
|
* Add toggle to light fog emitter with normalsyum2024-11-04
|
* Add fog normalsyum2024-11-04
| | | | | Uses iquilez's directional derivative model and a simplified lighting model. Lighting is evaluated at each sample.
* oopsyum2024-11-04
|
* Begin work adding normals to fogyum2024-11-04
|
* Specular lighting now wrapsyum2024-11-04
|
* 3d white noise generator now supports different dimensionalityyum2024-11-04
|
* Add noise mask option to cutout shading modeyum2024-11-04
|
* Add interleaved gradient noise cutout modeyum2024-11-03
| | | | Based on screen space uvs.
* Miscyum2024-11-03
| | | | | | * Add third HSV slot * Add ZTest enum * Fix bug where SSR mask keyword can be set when SSR is disabled
* Lots of tweaksyum2024-11-03
|
* Fix energy preservation in emitter samplingyum2024-11-03
| | | | Lower step sizes would gain energy.