summaryrefslogtreecommitdiffstats
path: root/Shaders/TaSTT_lighting_template.cginc
Commit message (Collapse)AuthorAge
* Add ray-marched custom chatboxyum2023-08-09
| | | | | | | | * Refactor shader code to make development easier. Templates are now as small as possible. * Update scaling code. Use Unity scaling instead of a blendshape. * Check in a fuckton of shader FOSS. Mostly unused. * Update TaSTT.fbx. Now has 6 faces instead of 2.
* Shader improvementsyum2023-05-22
| | | | | | | * Fix thin outline in transparent region of rounded corners * Remove anti-aliasing. Now that VRC supports it natively, this is no longer necessary. * Use more efficient noise function for dithering.
* Restore mipmap sampling in custom chatboxyum2023-05-22
|
* Drop torch from requirements.txtv0.11.2yum2023-05-01
| | | | | | | | | faster-whisper doesn't need it. This reduces install size from 6.00GB with base.en model to 1.70GB. * Use a single sampler in shader (enables using more than 16 textures) * Minor legibility regression - need to improve AA. * Enable backface culling in shader (minor performance win)
* Fix custom chatbox zwrite/depthyum2023-04-25
| | | | | | | Depth was being calculated wrong, causing text box to render behind objects it's in front of. * Fix package.ps1 compression. 7z was increasing file size, somehow.
* Custom chatbox shader writes depthyum2023-03-23
| | | | | | | | This fixes issues where the transparent corners of the textbox render in front of other materials, causing those other materials to skip rendering. * Update README.md with roadmap and avatar resource usage.
* Reduce texture memory usage for English speakersv0.10.0yum2023-03-21
| | | | | | | | | | We used to populate 7 4k textures + 1 2k texture for all users. Now if the user has configured `bytes_per_char=1` in the Unity panel, we just populate a single 512x512 texture containing the first 128 ASCII characters. This reduces texture memory usage by 99.74%, from 134.67 MB to 340 KB.
* Add hack to reduce outlines around emotesyum2023-02-13
| | | | | | | | Don't render any part of an emote with alpha < 0.5. Improves visual clarity in the common case at the cost of generality. * Emotes now use physically-based shading. * Use round() to denoise shader parameters instead of floor()
* Finish emotesyum2023-02-13
| | | | | | | | | | | Emotes require 2 bytes per char. They're encoded into the region [0xE000, infinity). The texture is 4k, and uses 1k vertical pixels per emote segment, for a maximum of 32 segments. * Reduce volume of noise indicator by 90%. Quiet is probably better. Might want to add a volume slider idk. * Bugfix: emotes without a transparency channel now work * Address a couple Unity performance complaints about the shader
* Begin work adding emotesyum2023-02-13
| | | | | | | | | | | | Done: * Users can add images to Fonts/Emotes/ * The basename of that image ('clueless.png' becomes 'clueless') is the keyword to make the image show up in game. * Fix a bug in the shader where letters on the 2nd texture and later would have UV outside of [0.0, 1.0] Not yet implemented: * transcribed words are encoded using emotes mapping
* Shader now supports custom cubemapyum2023-02-06
| | | | Applied to both PBS and TaSTT shaders.
* Do not use PBR shading on curve transparencyyum2023-01-31
| | | | Diffuse reflections can show up on this part.
* Implement simple anti-aliasingyum2023-01-31
| | | | | | | Sample the texture up to 5 times using the algorithm shown in `aa_sample_algorithm.py`. Results are averaged together. * Redo dithering PRNG
* Rework ditheringyum2023-01-31
| | | | | | | | | I realized that ddx(i.uv.x) tells us how wide the current pixel is w/r/t UV coordinates. We can use this to implement a better form of dithering, which gets weaker as the viewer gets closer and stronger as they get farther. * Fine-tune mip map filtering based on play testing
* Bugfixesv0.4.0yum2023-01-27
| | | | | | * Fix prefab: bounding box & position are now set to 0 * Fix shader: text is no longer upside down * Update README
* Enable texture-based PBR rendering of backplateyum2023-01-27
| | | | | | Users can now use PBR textures on their custom backplate! * Update TaSTT.fbx: UV map aspect ratio matches board
* Fix PBR metallicsyum2023-01-26
| | | | | | | Metallics now reflect the map's cubemap. * Remove SpecularTint (did nothing) * Adjust mipBias to be sharper
* Correct ddx/ddy calculationyum2023-01-26
| | | | | | | | | Need to calculate this in the space of letter UVs, not the overall text box UV space, in order for the correct mip maps to be chosen. * Expose dithering as a toggle in the shader * Actually generate mipmaps * Fine-tune mipmapBias for legibility
* Improve font renderingyum2023-01-26
| | | | | | * Enable streaming mipmaps on glyph bitmaps * Sample glyph bitmaps using mipmaps * Add temporal noise to letter UVs (dithering)
* Update Unity materialsyum2023-01-25
| | | | | | * Render at 3k render queue to avoid clashing with avatar meshes * Set reasonable shader defaults * Remove unused material
* Finish basic PBR shadingyum2023-01-25
TaSTT shader now uses physically based rendering (PBR). Users can pick smoothness, metallic, and emissive. This implementation borrows heavily from catlikecoding.com's excellent tutorials, which are released under MIT No Attribution (MIT-0). https://catlikecoding.com/unity/tutorials/license/ To retain what little clarity remains in the shader, I have chosen not to attribute the code in the source itself.