diff options
| author | yum <yum.food.vr@gmail.com> | 2025-05-09 12:51:07 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-05-09 12:51:07 -0700 |
| commit | 9e44d0876a5ae34e5eec870c1e1584baebd5bb4f (patch) | |
| tree | 940fa31d652e1a7f54e1302af50a17721c722fad | |
| parent | fb341dacf0b1bebc2412a3f9e0f4b8b764b7b3d7 (diff) | |
unigram letter grid bugfixes
| -rw-r--r-- | 2ner.shader | 247 | ||||
| -rw-r--r-- | unigram_letter_grid.cginc | 516 |
2 files changed, 386 insertions, 377 deletions
diff --git a/2ner.shader b/2ner.shader index 6a3bb4a..b5d4f8c 100644 --- a/2ner.shader +++ b/2ner.shader @@ -601,13 +601,12 @@ Shader "yum_food/2ner" _Unigram_Letter_Grid_LUT("Unigram tokenizer LUT", 2D) = "black" {} _Unigram_Letter_Grid_Tex_Res_X("Glyph X resolution", Float) = 16 _Unigram_Letter_Grid_Tex_Res_Y("Glyph Y resolution", Float) = 8 - _Unigram_Letter_Grid_Res_X("Cell X resolution", Range(1, 4)) = 1 - _Unigram_Letter_Grid_Res_Y("Cell Y resolution", Range(1, 4)) = 1 + _Unigram_Letter_Grid_Res_X("Cell X resolution", Range(1, 80)) = 1 + _Unigram_Letter_Grid_Res_Y("Cell Y resolution", Range(1, 80)) = 1 _Unigram_Letter_Grid_UV_Scale_Offset("UV scale/offset", Vector) = (1, 1, 0, 0) _Unigram_Letter_Grid_Padding("Padding", Float) = 0.02 _Unigram_Letter_Grid_Screen_Px_Range("Screen px range (from msdfgen)", Float) = 10 _Unigram_Letter_Grid_Min_Screen_Px_Range("Minimum screen px range", Float) = 1 - _Unigram_Letter_Grid_Blurriness("Blurriness", Float) = 0.5 _Unigram_Letter_Grid_Alpha_Threshold("Alpha threshold", Range(0, 1)) = 0.5 // We compose the addressable space into blocks of 2-byte cells. @@ -619,126 +618,128 @@ Shader "yum_food/2ner" // addressable space of 960 characters. Sending one block at 3 Hz // means that it will take a total of 13.3 seconds to fill the entire // space. - _Unigram_Letter_Grid_Block00_Visual_Pointer("Block 00 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block01_Visual_Pointer("Block 01 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block02_Visual_Pointer("Block 02 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block03_Visual_Pointer("Block 03 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block04_Visual_Pointer("Block 04 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block05_Visual_Pointer("Block 05 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block06_Visual_Pointer("Block 06 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block07_Visual_Pointer("Block 07 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block08_Visual_Pointer("Block 08 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block09_Visual_Pointer("Block 09 visual pointer", Float) = 0 - - _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00("Block 00, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01("Block 00, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum01_Byte00("Block 00, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum01_Byte01("Block 00, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum02_Byte00("Block 00, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum02_Byte01("Block 00, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum03_Byte00("Block 00, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum03_Byte01("Block 00, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum04_Byte00("Block 00, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block00_Datum04_Byte01("Block 00, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block01_Datum00_Byte00("Block 01, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum00_Byte01("Block 01, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum01_Byte00("Block 01, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum01_Byte01("Block 01, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum02_Byte00("Block 01, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum02_Byte01("Block 01, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum03_Byte00("Block 01, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum03_Byte01("Block 01, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum04_Byte00("Block 01, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block01_Datum04_Byte01("Block 01, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block02_Datum00_Byte00("Block 02, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum00_Byte01("Block 02, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum01_Byte00("Block 02, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum01_Byte01("Block 02, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum02_Byte00("Block 02, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum02_Byte01("Block 02, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum03_Byte00("Block 02, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum03_Byte01("Block 02, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum04_Byte00("Block 02, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block02_Datum04_Byte01("Block 02, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block03_Datum00_Byte00("Block 03, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum00_Byte01("Block 03, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum01_Byte00("Block 03, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum01_Byte01("Block 03, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum02_Byte00("Block 03, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum02_Byte01("Block 03, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum03_Byte00("Block 03, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum03_Byte01("Block 03, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum04_Byte00("Block 03, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block03_Datum04_Byte01("Block 03, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block04_Datum00_Byte00("Block 04, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum00_Byte01("Block 04, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum01_Byte00("Block 04, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum01_Byte01("Block 04, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum02_Byte00("Block 04, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum02_Byte01("Block 04, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum03_Byte00("Block 04, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum03_Byte01("Block 04, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum04_Byte00("Block 04, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block04_Datum04_Byte01("Block 04, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block05_Datum00_Byte00("Block 05, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum00_Byte01("Block 05, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum01_Byte00("Block 05, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum01_Byte01("Block 05, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum02_Byte00("Block 05, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum02_Byte01("Block 05, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum03_Byte00("Block 05, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum03_Byte01("Block 05, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum04_Byte00("Block 05, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block05_Datum04_Byte01("Block 05, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block06_Datum00_Byte00("Block 06, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum00_Byte01("Block 06, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum01_Byte00("Block 06, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum01_Byte01("Block 06, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum02_Byte00("Block 06, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum02_Byte01("Block 06, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum03_Byte00("Block 06, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum03_Byte01("Block 06, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum04_Byte00("Block 06, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block06_Datum04_Byte01("Block 06, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block07_Datum00_Byte00("Block 07, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum00_Byte01("Block 07, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum01_Byte00("Block 07, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum01_Byte01("Block 07, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum02_Byte00("Block 07, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum02_Byte01("Block 07, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum03_Byte00("Block 07, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum03_Byte01("Block 07, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum04_Byte00("Block 07, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block07_Datum04_Byte01("Block 07, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block08_Datum00_Byte00("Block 08, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum00_Byte01("Block 08, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum01_Byte00("Block 08, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum01_Byte01("Block 08, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum02_Byte00("Block 08, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum02_Byte01("Block 08, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum03_Byte00("Block 08, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum03_Byte01("Block 08, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum04_Byte00("Block 08, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block08_Datum04_Byte01("Block 08, Datum 04, Byte 01", Float) = 0 - - _Unigram_Letter_Grid_Data_Block09_Datum00_Byte00("Block 09, Datum 00, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum00_Byte01("Block 09, Datum 00, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum01_Byte00("Block 09, Datum 01, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum01_Byte01("Block 09, Datum 01, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum02_Byte00("Block 09, Datum 02, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum02_Byte01("Block 09, Datum 02, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum03_Byte00("Block 09, Datum 03, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum03_Byte01("Block 09, Datum 03, Byte 01", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum04_Byte00("Block 09, Datum 04, Byte 00", Float) = 0 - _Unigram_Letter_Grid_Data_Block09_Datum04_Byte01("Block 09, iatum 04, Byte 01", Float) = 0 + // The "_Animated" suffix is to prevent thry's optimizer from inlining + // these. Don't wanna have to click "is animated" one by one for all of them. + _Unigram_Letter_Grid_Block00_Visual_Pointer_Animated("Block 00 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block01_Visual_Pointer_Animated("Block 01 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block02_Visual_Pointer_Animated("Block 02 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block03_Visual_Pointer_Animated("Block 03 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block04_Visual_Pointer_Animated("Block 04 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block05_Visual_Pointer_Animated("Block 05 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block06_Visual_Pointer_Animated("Block 06 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block07_Visual_Pointer_Animated("Block 07 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block08_Visual_Pointer_Animated("Block 08 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block09_Visual_Pointer_Animated("Block 09 visual pointer", Float) = 0 + + _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00_Animated("Block 00, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01_Animated("Block 00, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum01_Byte00_Animated("Block 00, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum01_Byte01_Animated("Block 00, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum02_Byte00_Animated("Block 00, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum02_Byte01_Animated("Block 00, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum03_Byte00_Animated("Block 00, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum03_Byte01_Animated("Block 00, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum04_Byte00_Animated("Block 00, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block00_Datum04_Byte01_Animated("Block 00, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block01_Datum00_Byte00_Animated("Block 01, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum00_Byte01_Animated("Block 01, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum01_Byte00_Animated("Block 01, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum01_Byte01_Animated("Block 01, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum02_Byte00_Animated("Block 01, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum02_Byte01_Animated("Block 01, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum03_Byte00_Animated("Block 01, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum03_Byte01_Animated("Block 01, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum04_Byte00_Animated("Block 01, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block01_Datum04_Byte01_Animated("Block 01, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block02_Datum00_Byte00_Animated("Block 02, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum00_Byte01_Animated("Block 02, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum01_Byte00_Animated("Block 02, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum01_Byte01_Animated("Block 02, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum02_Byte00_Animated("Block 02, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum02_Byte01_Animated("Block 02, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum03_Byte00_Animated("Block 02, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum03_Byte01_Animated("Block 02, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum04_Byte00_Animated("Block 02, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block02_Datum04_Byte01_Animated("Block 02, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block03_Datum00_Byte00_Animated("Block 03, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum00_Byte01_Animated("Block 03, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum01_Byte00_Animated("Block 03, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum01_Byte01_Animated("Block 03, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum02_Byte00_Animated("Block 03, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum02_Byte01_Animated("Block 03, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum03_Byte00_Animated("Block 03, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum03_Byte01_Animated("Block 03, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum04_Byte00_Animated("Block 03, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block03_Datum04_Byte01_Animated("Block 03, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block04_Datum00_Byte00_Animated("Block 04, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum00_Byte01_Animated("Block 04, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum01_Byte00_Animated("Block 04, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum01_Byte01_Animated("Block 04, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum02_Byte00_Animated("Block 04, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum02_Byte01_Animated("Block 04, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum03_Byte00_Animated("Block 04, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum03_Byte01_Animated("Block 04, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum04_Byte00_Animated("Block 04, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block04_Datum04_Byte01_Animated("Block 04, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block05_Datum00_Byte00_Animated("Block 05, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum00_Byte01_Animated("Block 05, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum01_Byte00_Animated("Block 05, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum01_Byte01_Animated("Block 05, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum02_Byte00_Animated("Block 05, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum02_Byte01_Animated("Block 05, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum03_Byte00_Animated("Block 05, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum03_Byte01_Animated("Block 05, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum04_Byte00_Animated("Block 05, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block05_Datum04_Byte01_Animated("Block 05, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block06_Datum00_Byte00_Animated("Block 06, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum00_Byte01_Animated("Block 06, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum01_Byte00_Animated("Block 06, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum01_Byte01_Animated("Block 06, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum02_Byte00_Animated("Block 06, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum02_Byte01_Animated("Block 06, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum03_Byte00_Animated("Block 06, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum03_Byte01_Animated("Block 06, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum04_Byte00_Animated("Block 06, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block06_Datum04_Byte01_Animated("Block 06, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block07_Datum00_Byte00_Animated("Block 07, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum00_Byte01_Animated("Block 07, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum01_Byte00_Animated("Block 07, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum01_Byte01_Animated("Block 07, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum02_Byte00_Animated("Block 07, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum02_Byte01_Animated("Block 07, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum03_Byte00_Animated("Block 07, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum03_Byte01_Animated("Block 07, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum04_Byte00_Animated("Block 07, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block07_Datum04_Byte01_Animated("Block 07, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block08_Datum00_Byte00_Animated("Block 08, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum00_Byte01_Animated("Block 08, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum01_Byte00_Animated("Block 08, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum01_Byte01_Animated("Block 08, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum02_Byte00_Animated("Block 08, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum02_Byte01_Animated("Block 08, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum03_Byte00_Animated("Block 08, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum03_Byte01_Animated("Block 08, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum04_Byte00_Animated("Block 08, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block08_Datum04_Byte01_Animated("Block 08, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block09_Datum00_Byte00_Animated("Block 09, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum00_Byte01_Animated("Block 09, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum01_Byte00_Animated("Block 09, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum01_Byte01_Animated("Block 09, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum02_Byte00_Animated("Block 09, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum02_Byte01_Animated("Block 09, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum03_Byte00_Animated("Block 09, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum03_Byte01_Animated("Block 09, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum04_Byte00_Animated("Block 09, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block09_Datum04_Byte01_Animated("Block 09, iatum 04, Byte 01", Range(0,255)) = 255 [HideInInspector] m_end_Unigram_Letter_Grid("Unigram letter grid", Float) = 0 //endex diff --git a/unigram_letter_grid.cginc b/unigram_letter_grid.cginc index 9b5dc81..bf9571d 100644 --- a/unigram_letter_grid.cginc +++ b/unigram_letter_grid.cginc @@ -28,9 +28,9 @@ float4 _Unigram_Letter_Grid_UV_Scale_Offset; float _Unigram_Letter_Grid_Padding; float _Unigram_Letter_Grid_Screen_Px_Range; float _Unigram_Letter_Grid_Min_Screen_Px_Range; -float _Unigram_Letter_Grid_Blurriness; float _Unigram_Letter_Grid_Alpha_Threshold; +// These macros exist for debugging. #define ULG_VP #define ULG_D0 #define ULG_D1 @@ -42,150 +42,150 @@ float _Unigram_Letter_Grid_Alpha_Threshold; cbuffer UnigramLetterGridVisualPointers { float _Unigram_Letter_Visual_Pointers[ULG_NUM_BLOCKS] : packoffset(c0); - float _Unigram_Letter_Grid_Block00_Visual_Pointer : packoffset(c0); - float _Unigram_Letter_Grid_Block01_Visual_Pointer : packoffset(c1); - float _Unigram_Letter_Grid_Block02_Visual_Pointer : packoffset(c2); - float _Unigram_Letter_Grid_Block03_Visual_Pointer : packoffset(c3); - float _Unigram_Letter_Grid_Block04_Visual_Pointer : packoffset(c4); - float _Unigram_Letter_Grid_Block05_Visual_Pointer : packoffset(c5); - float _Unigram_Letter_Grid_Block06_Visual_Pointer : packoffset(c6); - float _Unigram_Letter_Grid_Block07_Visual_Pointer : packoffset(c7); - float _Unigram_Letter_Grid_Block08_Visual_Pointer : packoffset(c8); - float _Unigram_Letter_Grid_Block09_Visual_Pointer : packoffset(c9); + float _Unigram_Letter_Grid_Block00_Visual_Pointer_Animated : packoffset(c0); + float _Unigram_Letter_Grid_Block01_Visual_Pointer_Animated : packoffset(c1); + float _Unigram_Letter_Grid_Block02_Visual_Pointer_Animated : packoffset(c2); + float _Unigram_Letter_Grid_Block03_Visual_Pointer_Animated : packoffset(c3); + float _Unigram_Letter_Grid_Block04_Visual_Pointer_Animated : packoffset(c4); + float _Unigram_Letter_Grid_Block05_Visual_Pointer_Animated : packoffset(c5); + float _Unigram_Letter_Grid_Block06_Visual_Pointer_Animated : packoffset(c6); + float _Unigram_Letter_Grid_Block07_Visual_Pointer_Animated : packoffset(c7); + float _Unigram_Letter_Grid_Block08_Visual_Pointer_Animated : packoffset(c8); + float _Unigram_Letter_Grid_Block09_Visual_Pointer_Animated : packoffset(c9); } #endif // ULG_VP #if defined(ULG_D0) -cbuffer UnigramLetterGridDataByte00 +cbuffer UnigramLetterGridDataByte00_Animated { float _Unigram_Letter_Data_Byte00[ULG_NUM_BLOCKS * ULG_BLOCK_WIDTH] : packoffset(c0); - float _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00 : packoffset(c0); - float _Unigram_Letter_Grid_Data_Block00_Datum01_Byte00 : packoffset(c1); - float _Unigram_Letter_Grid_Data_Block00_Datum02_Byte00 : packoffset(c2); - float _Unigram_Letter_Grid_Data_Block00_Datum03_Byte00 : packoffset(c3); - float _Unigram_Letter_Grid_Data_Block00_Datum04_Byte00 : packoffset(c4); - - float _Unigram_Letter_Grid_Data_Block01_Datum00_Byte00 : packoffset(c5); - float _Unigram_Letter_Grid_Data_Block01_Datum01_Byte00 : packoffset(c6); - float _Unigram_Letter_Grid_Data_Block01_Datum02_Byte00 : packoffset(c7); - float _Unigram_Letter_Grid_Data_Block01_Datum03_Byte00 : packoffset(c8); - float _Unigram_Letter_Grid_Data_Block01_Datum04_Byte00 : packoffset(c9); - - float _Unigram_Letter_Grid_Data_Block02_Datum00_Byte00 : packoffset(c10); - float _Unigram_Letter_Grid_Data_Block02_Datum01_Byte00 : packoffset(c11); - float _Unigram_Letter_Grid_Data_Block02_Datum02_Byte00 : packoffset(c12); - float _Unigram_Letter_Grid_Data_Block02_Datum03_Byte00 : packoffset(c13); - float _Unigram_Letter_Grid_Data_Block02_Datum04_Byte00 : packoffset(c14); - - float _Unigram_Letter_Grid_Data_Block03_Datum00_Byte00 : packoffset(c15); - float _Unigram_Letter_Grid_Data_Block03_Datum01_Byte00 : packoffset(c16); - float _Unigram_Letter_Grid_Data_Block03_Datum02_Byte00 : packoffset(c17); - float _Unigram_Letter_Grid_Data_Block03_Datum03_Byte00 : packoffset(c18); - float _Unigram_Letter_Grid_Data_Block03_Datum04_Byte00 : packoffset(c19); - - float _Unigram_Letter_Grid_Data_Block04_Datum00_Byte00 : packoffset(c20); - float _Unigram_Letter_Grid_Data_Block04_Datum01_Byte00 : packoffset(c21); - float _Unigram_Letter_Grid_Data_Block04_Datum02_Byte00 : packoffset(c22); - float _Unigram_Letter_Grid_Data_Block04_Datum03_Byte00 : packoffset(c23); - float _Unigram_Letter_Grid_Data_Block04_Datum04_Byte00 : packoffset(c24); - - float _Unigram_Letter_Grid_Data_Block05_Datum00_Byte00 : packoffset(c25); - float _Unigram_Letter_Grid_Data_Block05_Datum01_Byte00 : packoffset(c26); - float _Unigram_Letter_Grid_Data_Block05_Datum02_Byte00 : packoffset(c27); - float _Unigram_Letter_Grid_Data_Block05_Datum03_Byte00 : packoffset(c28); - float _Unigram_Letter_Grid_Data_Block05_Datum04_Byte00 : packoffset(c29); - - float _Unigram_Letter_Grid_Data_Block06_Datum00_Byte00 : packoffset(c30); - float _Unigram_Letter_Grid_Data_Block06_Datum01_Byte00 : packoffset(c31); - float _Unigram_Letter_Grid_Data_Block06_Datum02_Byte00 : packoffset(c32); - float _Unigram_Letter_Grid_Data_Block06_Datum03_Byte00 : packoffset(c33); - float _Unigram_Letter_Grid_Data_Block06_Datum04_Byte00 : packoffset(c34); - - float _Unigram_Letter_Grid_Data_Block07_Datum00_Byte00 : packoffset(c35); - float _Unigram_Letter_Grid_Data_Block07_Datum01_Byte00 : packoffset(c36); - float _Unigram_Letter_Grid_Data_Block07_Datum02_Byte00 : packoffset(c37); - float _Unigram_Letter_Grid_Data_Block07_Datum03_Byte00 : packoffset(c38); - float _Unigram_Letter_Grid_Data_Block07_Datum04_Byte00 : packoffset(c39); - - float _Unigram_Letter_Grid_Data_Block08_Datum00_Byte00 : packoffset(c40); - float _Unigram_Letter_Grid_Data_Block08_Datum01_Byte00 : packoffset(c41); - float _Unigram_Letter_Grid_Data_Block08_Datum02_Byte00 : packoffset(c42); - float _Unigram_Letter_Grid_Data_Block08_Datum03_Byte00 : packoffset(c43); - float _Unigram_Letter_Grid_Data_Block08_Datum04_Byte00 : packoffset(c44); - - float _Unigram_Letter_Grid_Data_Block09_Datum00_Byte00 : packoffset(c45); - float _Unigram_Letter_Grid_Data_Block09_Datum01_Byte00 : packoffset(c46); - float _Unigram_Letter_Grid_Data_Block09_Datum02_Byte00 : packoffset(c47); - float _Unigram_Letter_Grid_Data_Block09_Datum03_Byte00 : packoffset(c48); - float _Unigram_Letter_Grid_Data_Block09_Datum04_Byte00 : packoffset(c49); + float _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00_Animated : packoffset(c0); + float _Unigram_Letter_Grid_Data_Block00_Datum01_Byte00_Animated : packoffset(c1); + float _Unigram_Letter_Grid_Data_Block00_Datum02_Byte00_Animated : packoffset(c2); + float _Unigram_Letter_Grid_Data_Block00_Datum03_Byte00_Animated : packoffset(c3); + float _Unigram_Letter_Grid_Data_Block00_Datum04_Byte00_Animated : packoffset(c4); + + float _Unigram_Letter_Grid_Data_Block01_Datum00_Byte00_Animated : packoffset(c5); + float _Unigram_Letter_Grid_Data_Block01_Datum01_Byte00_Animated : packoffset(c6); + float _Unigram_Letter_Grid_Data_Block01_Datum02_Byte00_Animated : packoffset(c7); + float _Unigram_Letter_Grid_Data_Block01_Datum03_Byte00_Animated : packoffset(c8); + float _Unigram_Letter_Grid_Data_Block01_Datum04_Byte00_Animated : packoffset(c9); + + float _Unigram_Letter_Grid_Data_Block02_Datum00_Byte00_Animated : packoffset(c10); + float _Unigram_Letter_Grid_Data_Block02_Datum01_Byte00_Animated : packoffset(c11); + float _Unigram_Letter_Grid_Data_Block02_Datum02_Byte00_Animated : packoffset(c12); + float _Unigram_Letter_Grid_Data_Block02_Datum03_Byte00_Animated : packoffset(c13); + float _Unigram_Letter_Grid_Data_Block02_Datum04_Byte00_Animated : packoffset(c14); + + float _Unigram_Letter_Grid_Data_Block03_Datum00_Byte00_Animated : packoffset(c15); + float _Unigram_Letter_Grid_Data_Block03_Datum01_Byte00_Animated : packoffset(c16); + float _Unigram_Letter_Grid_Data_Block03_Datum02_Byte00_Animated : packoffset(c17); + float _Unigram_Letter_Grid_Data_Block03_Datum03_Byte00_Animated : packoffset(c18); + float _Unigram_Letter_Grid_Data_Block03_Datum04_Byte00_Animated : packoffset(c19); + + float _Unigram_Letter_Grid_Data_Block04_Datum00_Byte00_Animated : packoffset(c20); + float _Unigram_Letter_Grid_Data_Block04_Datum01_Byte00_Animated : packoffset(c21); + float _Unigram_Letter_Grid_Data_Block04_Datum02_Byte00_Animated : packoffset(c22); + float _Unigram_Letter_Grid_Data_Block04_Datum03_Byte00_Animated : packoffset(c23); + float _Unigram_Letter_Grid_Data_Block04_Datum04_Byte00_Animated : packoffset(c24); + + float _Unigram_Letter_Grid_Data_Block05_Datum00_Byte00_Animated : packoffset(c25); + float _Unigram_Letter_Grid_Data_Block05_Datum01_Byte00_Animated : packoffset(c26); + float _Unigram_Letter_Grid_Data_Block05_Datum02_Byte00_Animated : packoffset(c27); + float _Unigram_Letter_Grid_Data_Block05_Datum03_Byte00_Animated : packoffset(c28); + float _Unigram_Letter_Grid_Data_Block05_Datum04_Byte00_Animated : packoffset(c29); + + float _Unigram_Letter_Grid_Data_Block06_Datum00_Byte00_Animated : packoffset(c30); + float _Unigram_Letter_Grid_Data_Block06_Datum01_Byte00_Animated : packoffset(c31); + float _Unigram_Letter_Grid_Data_Block06_Datum02_Byte00_Animated : packoffset(c32); + float _Unigram_Letter_Grid_Data_Block06_Datum03_Byte00_Animated : packoffset(c33); + float _Unigram_Letter_Grid_Data_Block06_Datum04_Byte00_Animated : packoffset(c34); + + float _Unigram_Letter_Grid_Data_Block07_Datum00_Byte00_Animated : packoffset(c35); + float _Unigram_Letter_Grid_Data_Block07_Datum01_Byte00_Animated : packoffset(c36); + float _Unigram_Letter_Grid_Data_Block07_Datum02_Byte00_Animated : packoffset(c37); + float _Unigram_Letter_Grid_Data_Block07_Datum03_Byte00_Animated : packoffset(c38); + float _Unigram_Letter_Grid_Data_Block07_Datum04_Byte00_Animated : packoffset(c39); + + float _Unigram_Letter_Grid_Data_Block08_Datum00_Byte00_Animated : packoffset(c40); + float _Unigram_Letter_Grid_Data_Block08_Datum01_Byte00_Animated : packoffset(c41); + float _Unigram_Letter_Grid_Data_Block08_Datum02_Byte00_Animated : packoffset(c42); + float _Unigram_Letter_Grid_Data_Block08_Datum03_Byte00_Animated : packoffset(c43); + float _Unigram_Letter_Grid_Data_Block08_Datum04_Byte00_Animated : packoffset(c44); + + float _Unigram_Letter_Grid_Data_Block09_Datum00_Byte00_Animated : packoffset(c45); + float _Unigram_Letter_Grid_Data_Block09_Datum01_Byte00_Animated : packoffset(c46); + float _Unigram_Letter_Grid_Data_Block09_Datum02_Byte00_Animated : packoffset(c47); + float _Unigram_Letter_Grid_Data_Block09_Datum03_Byte00_Animated : packoffset(c48); + float _Unigram_Letter_Grid_Data_Block09_Datum04_Byte00_Animated : packoffset(c49); } #endif // ULG_D0 #if defined(ULG_D1) -cbuffer UnigramLetterGridDataByte01 +cbuffer UnigramLetterGridDataByte01_Animated { float _Unigram_Letter_Data_Byte01[ULG_NUM_BLOCKS * ULG_BLOCK_WIDTH] : packoffset(c0); - float _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01 : packoffset(c0); - float _Unigram_Letter_Grid_Data_Block00_Datum01_Byte01 : packoffset(c1); - float _Unigram_Letter_Grid_Data_Block00_Datum02_Byte01 : packoffset(c2); - float _Unigram_Letter_Grid_Data_Block00_Datum03_Byte01 : packoffset(c3); - float _Unigram_Letter_Grid_Data_Block00_Datum04_Byte01 : packoffset(c4); - - float _Unigram_Letter_Grid_Data_Block01_Datum00_Byte01 : packoffset(c5); - float _Unigram_Letter_Grid_Data_Block01_Datum01_Byte01 : packoffset(c6); - float _Unigram_Letter_Grid_Data_Block01_Datum02_Byte01 : packoffset(c7); - float _Unigram_Letter_Grid_Data_Block01_Datum03_Byte01 : packoffset(c8); - float _Unigram_Letter_Grid_Data_Block01_Datum04_Byte01 : packoffset(c9); - - float _Unigram_Letter_Grid_Data_Block02_Datum00_Byte01 : packoffset(c10); - float _Unigram_Letter_Grid_Data_Block02_Datum01_Byte01 : packoffset(c11); - float _Unigram_Letter_Grid_Data_Block02_Datum02_Byte01 : packoffset(c12); - float _Unigram_Letter_Grid_Data_Block02_Datum03_Byte01 : packoffset(c13); - float _Unigram_Letter_Grid_Data_Block02_Datum04_Byte01 : packoffset(c14); - - float _Unigram_Letter_Grid_Data_Block03_Datum00_Byte01 : packoffset(c15); - float _Unigram_Letter_Grid_Data_Block03_Datum01_Byte01 : packoffset(c16); - float _Unigram_Letter_Grid_Data_Block03_Datum02_Byte01 : packoffset(c17); - float _Unigram_Letter_Grid_Data_Block03_Datum03_Byte01 : packoffset(c18); - float _Unigram_Letter_Grid_Data_Block03_Datum04_Byte01 : packoffset(c19); - - float _Unigram_Letter_Grid_Data_Block04_Datum00_Byte01 : packoffset(c20); - float _Unigram_Letter_Grid_Data_Block04_Datum01_Byte01 : packoffset(c21); - float _Unigram_Letter_Grid_Data_Block04_Datum02_Byte01 : packoffset(c22); - float _Unigram_Letter_Grid_Data_Block04_Datum03_Byte01 : packoffset(c23); - float _Unigram_Letter_Grid_Data_Block04_Datum04_Byte01 : packoffset(c24); - - float _Unigram_Letter_Grid_Data_Block05_Datum00_Byte01 : packoffset(c25); - float _Unigram_Letter_Grid_Data_Block05_Datum01_Byte01 : packoffset(c26); - float _Unigram_Letter_Grid_Data_Block05_Datum02_Byte01 : packoffset(c27); - float _Unigram_Letter_Grid_Data_Block05_Datum03_Byte01 : packoffset(c28); - float _Unigram_Letter_Grid_Data_Block05_Datum04_Byte01 : packoffset(c29); - - float _Unigram_Letter_Grid_Data_Block06_Datum00_Byte01 : packoffset(c30); - float _Unigram_Letter_Grid_Data_Block06_Datum01_Byte01 : packoffset(c31); - float _Unigram_Letter_Grid_Data_Block06_Datum02_Byte01 : packoffset(c32); - float _Unigram_Letter_Grid_Data_Block06_Datum03_Byte01 : packoffset(c33); - float _Unigram_Letter_Grid_Data_Block06_Datum04_Byte01 : packoffset(c34); - - float _Unigram_Letter_Grid_Data_Block07_Datum00_Byte01 : packoffset(c35); - float _Unigram_Letter_Grid_Data_Block07_Datum01_Byte01 : packoffset(c36); - float _Unigram_Letter_Grid_Data_Block07_Datum02_Byte01 : packoffset(c37); - float _Unigram_Letter_Grid_Data_Block07_Datum03_Byte01 : packoffset(c38); - float _Unigram_Letter_Grid_Data_Block07_Datum04_Byte01 : packoffset(c39); - - float _Unigram_Letter_Grid_Data_Block08_Datum00_Byte01 : packoffset(c40); - float _Unigram_Letter_Grid_Data_Block08_Datum01_Byte01 : packoffset(c41); - float _Unigram_Letter_Grid_Data_Block08_Datum02_Byte01 : packoffset(c42); - float _Unigram_Letter_Grid_Data_Block08_Datum03_Byte01 : packoffset(c43); - float _Unigram_Letter_Grid_Data_Block08_Datum04_Byte01 : packoffset(c44); - - float _Unigram_Letter_Grid_Data_Block09_Datum00_Byte01 : packoffset(c45); - float _Unigram_Letter_Grid_Data_Block09_Datum01_Byte01 : packoffset(c46); - float _Unigram_Letter_Grid_Data_Block09_Datum02_Byte01 : packoffset(c47); - float _Unigram_Letter_Grid_Data_Block09_Datum03_Byte01 : packoffset(c48); - float _Unigram_Letter_Grid_Data_Block09_Datum04_Byte01 : packoffset(c49); + float _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01_Animated : packoffset(c0); + float _Unigram_Letter_Grid_Data_Block00_Datum01_Byte01_Animated : packoffset(c1); + float _Unigram_Letter_Grid_Data_Block00_Datum02_Byte01_Animated : packoffset(c2); + float _Unigram_Letter_Grid_Data_Block00_Datum03_Byte01_Animated : packoffset(c3); + float _Unigram_Letter_Grid_Data_Block00_Datum04_Byte01_Animated : packoffset(c4); + + float _Unigram_Letter_Grid_Data_Block01_Datum00_Byte01_Animated : packoffset(c5); + float _Unigram_Letter_Grid_Data_Block01_Datum01_Byte01_Animated : packoffset(c6); + float _Unigram_Letter_Grid_Data_Block01_Datum02_Byte01_Animated : packoffset(c7); + float _Unigram_Letter_Grid_Data_Block01_Datum03_Byte01_Animated : packoffset(c8); + float _Unigram_Letter_Grid_Data_Block01_Datum04_Byte01_Animated : packoffset(c9); + + float _Unigram_Letter_Grid_Data_Block02_Datum00_Byte01_Animated : packoffset(c10); + float _Unigram_Letter_Grid_Data_Block02_Datum01_Byte01_Animated : packoffset(c11); + float _Unigram_Letter_Grid_Data_Block02_Datum02_Byte01_Animated : packoffset(c12); + float _Unigram_Letter_Grid_Data_Block02_Datum03_Byte01_Animated : packoffset(c13); + float _Unigram_Letter_Grid_Data_Block02_Datum04_Byte01_Animated : packoffset(c14); + + float _Unigram_Letter_Grid_Data_Block03_Datum00_Byte01_Animated : packoffset(c15); + float _Unigram_Letter_Grid_Data_Block03_Datum01_Byte01_Animated : packoffset(c16); + float _Unigram_Letter_Grid_Data_Block03_Datum02_Byte01_Animated : packoffset(c17); + float _Unigram_Letter_Grid_Data_Block03_Datum03_Byte01_Animated : packoffset(c18); + float _Unigram_Letter_Grid_Data_Block03_Datum04_Byte01_Animated : packoffset(c19); + + float _Unigram_Letter_Grid_Data_Block04_Datum00_Byte01_Animated : packoffset(c20); + float _Unigram_Letter_Grid_Data_Block04_Datum01_Byte01_Animated : packoffset(c21); + float _Unigram_Letter_Grid_Data_Block04_Datum02_Byte01_Animated : packoffset(c22); + float _Unigram_Letter_Grid_Data_Block04_Datum03_Byte01_Animated : packoffset(c23); + float _Unigram_Letter_Grid_Data_Block04_Datum04_Byte01_Animated : packoffset(c24); + + float _Unigram_Letter_Grid_Data_Block05_Datum00_Byte01_Animated : packoffset(c25); + float _Unigram_Letter_Grid_Data_Block05_Datum01_Byte01_Animated : packoffset(c26); + float _Unigram_Letter_Grid_Data_Block05_Datum02_Byte01_Animated : packoffset(c27); + float _Unigram_Letter_Grid_Data_Block05_Datum03_Byte01_Animated : packoffset(c28); + float _Unigram_Letter_Grid_Data_Block05_Datum04_Byte01_Animated : packoffset(c29); + + float _Unigram_Letter_Grid_Data_Block06_Datum00_Byte01_Animated : packoffset(c30); + float _Unigram_Letter_Grid_Data_Block06_Datum01_Byte01_Animated : packoffset(c31); + float _Unigram_Letter_Grid_Data_Block06_Datum02_Byte01_Animated : packoffset(c32); + float _Unigram_Letter_Grid_Data_Block06_Datum03_Byte01_Animated : packoffset(c33); + float _Unigram_Letter_Grid_Data_Block06_Datum04_Byte01_Animated : packoffset(c34); + + float _Unigram_Letter_Grid_Data_Block07_Datum00_Byte01_Animated : packoffset(c35); + float _Unigram_Letter_Grid_Data_Block07_Datum01_Byte01_Animated : packoffset(c36); + float _Unigram_Letter_Grid_Data_Block07_Datum02_Byte01_Animated : packoffset(c37); + float _Unigram_Letter_Grid_Data_Block07_Datum03_Byte01_Animated : packoffset(c38); + float _Unigram_Letter_Grid_Data_Block07_Datum04_Byte01_Animated : packoffset(c39); + + float _Unigram_Letter_Grid_Data_Block08_Datum00_Byte01_Animated : packoffset(c40); + float _Unigram_Letter_Grid_Data_Block08_Datum01_Byte01_Animated : packoffset(c41); + float _Unigram_Letter_Grid_Data_Block08_Datum02_Byte01_Animated : packoffset(c42); + float _Unigram_Letter_Grid_Data_Block08_Datum03_Byte01_Animated : packoffset(c43); + float _Unigram_Letter_Grid_Data_Block08_Datum04_Byte01_Animated : packoffset(c44); + + float _Unigram_Letter_Grid_Data_Block09_Datum00_Byte01_Animated : packoffset(c45); + float _Unigram_Letter_Grid_Data_Block09_Datum01_Byte01_Animated : packoffset(c46); + float _Unigram_Letter_Grid_Data_Block09_Datum02_Byte01_Animated : packoffset(c47); + float _Unigram_Letter_Grid_Data_Block09_Datum03_Byte01_Animated : packoffset(c48); + float _Unigram_Letter_Grid_Data_Block09_Datum04_Byte01_Animated : packoffset(c49); } #endif // ULG_D1 @@ -196,122 +196,122 @@ void PreventCbufferElision(v2f i, inout float a) { a = 0; #if defined(ULG_VP) a += - _Unigram_Letter_Grid_Block00_Visual_Pointer + - _Unigram_Letter_Grid_Block01_Visual_Pointer + - _Unigram_Letter_Grid_Block02_Visual_Pointer + - _Unigram_Letter_Grid_Block03_Visual_Pointer + - _Unigram_Letter_Grid_Block04_Visual_Pointer + - _Unigram_Letter_Grid_Block05_Visual_Pointer + - _Unigram_Letter_Grid_Block06_Visual_Pointer + - _Unigram_Letter_Grid_Block07_Visual_Pointer + - _Unigram_Letter_Grid_Block08_Visual_Pointer + - _Unigram_Letter_Grid_Block09_Visual_Pointer; + _Unigram_Letter_Grid_Block00_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block01_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block02_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block03_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block04_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block05_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block06_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block07_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block08_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block09_Visual_Pointer_Animated; #endif // ULG_VP #if defined(ULG_D0) a += - _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block00_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block00_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block00_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block00_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block01_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block01_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block01_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block01_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block01_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block02_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block02_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block02_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block02_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block02_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block03_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block03_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block03_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block03_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block03_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block04_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block04_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block04_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block04_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block04_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block05_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block05_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block05_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block05_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block05_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block06_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block06_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block06_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block06_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block06_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block07_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block07_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block07_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block07_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block07_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block08_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block08_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block08_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block08_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block08_Datum04_Byte00 + - _Unigram_Letter_Grid_Data_Block09_Datum00_Byte00 + - _Unigram_Letter_Grid_Data_Block09_Datum01_Byte00 + - _Unigram_Letter_Grid_Data_Block09_Datum02_Byte00 + - _Unigram_Letter_Grid_Data_Block09_Datum03_Byte00 + - _Unigram_Letter_Grid_Data_Block09_Datum04_Byte00; + _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum04_Byte00_Animated; #endif // ULG_D0 #if defined(ULG_D1) a += - _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block00_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block00_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block00_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block00_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block01_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block01_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block01_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block01_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block01_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block02_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block02_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block02_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block02_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block02_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block03_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block03_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block03_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block03_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block03_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block04_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block04_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block04_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block04_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block04_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block05_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block05_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block05_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block05_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block05_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block06_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block06_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block06_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block06_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block06_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block07_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block07_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block07_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block07_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block07_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block08_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block08_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block08_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block08_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block08_Datum04_Byte01 + - _Unigram_Letter_Grid_Data_Block09_Datum00_Byte01 + - _Unigram_Letter_Grid_Data_Block09_Datum01_Byte01 + - _Unigram_Letter_Grid_Data_Block09_Datum02_Byte01 + - _Unigram_Letter_Grid_Data_Block09_Datum03_Byte01 + - _Unigram_Letter_Grid_Data_Block09_Datum04_Byte01; + _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum04_Byte01_Animated; #endif // ULG_D1 } } @@ -332,26 +332,26 @@ void GetBlock(uint which_block, out uint data[ULG_BLOCK_WIDTH]) { void GetTokens(uint screen_ptr, out uint block_ptr, out uint tokens[ULG_BLOCK_WIDTH]) { - block_ptr = _Unigram_Letter_Visual_Pointers[0]; + block_ptr = floor(_Unigram_Letter_Visual_Pointers[0]); uint which_block = 0; [loop] - for (uint i = 1; i < ULG_BLOCK_WIDTH; i++) { - if (screen_ptr < _Unigram_Letter_Visual_Pointers[i]) { + for (uint i = 1; i < ULG_NUM_BLOCKS; i++) { + if (screen_ptr < floor(_Unigram_Letter_Visual_Pointers[i])) { break; } - block_ptr = _Unigram_Letter_Visual_Pointers[i]; + block_ptr = floor(_Unigram_Letter_Visual_Pointers[i]); which_block = i; } GetBlock(which_block, tokens); } #endif -uint2 FoldIndex(uint flat_idx, uint img_res) { - return uint2(flat_idx % img_res, floor(flat_idx / img_res)); +uint2 FoldIndex(uint flat_idx, uint2 img_res) { + return uint2(flat_idx % img_res.x, floor(flat_idx / img_res.x)); } -uint UnfoldIndex(uint2 coord, uint img_res) { - return coord[0] + coord[1] * img_res; +uint UnfoldIndex(uint2 coord, uint2 img_res) { + return coord[0] + coord[1] * img_res.x; } float2 GetUnigramLutUV(uint idx) @@ -408,15 +408,22 @@ uint GetChar(uint screen_ptr) { // In other words, it covers [token_ptr, token_ptr + token_length) uint token_ptr = block_ptr; uint token_offset; + uint token_length = 0; + bool got_match = false; + [loop] for (uint i = 0; i < ULG_BLOCK_WIDTH; i++) { - uint token_length; TokenLengthOffset(tokens[i], token_length, token_offset); if (screen_ptr >= token_ptr && screen_ptr < token_ptr + token_length) { + got_match = true; break; } token_ptr += token_length; } + // Edge case: no match + if (!got_match) { + return ' '; + } uint nth_char = screen_ptr - token_ptr; return GetTokenChar(token_offset, nth_char); } @@ -443,8 +450,10 @@ UnigramLetterGridOutput UnigramLetterGrid(v2f i) { bool in_box = getBoxLoc(uv, 0, 1, grid_res, _Unigram_Letter_Grid_Padding, cell_pos, cell_uv); cell_pos.y = (grid_res.y - cell_pos.y) - 1; + uint flat_cell_pos = UnfoldIndex(cell_pos, grid_res); + #if 1 - float c = GetChar(cell_pos.x); + float c = GetChar(flat_cell_pos); #elif 0 float token_offset=65536; float c = GetTokenChar(token_offset, cell_pos.x); @@ -501,12 +510,11 @@ UnigramLetterGridOutput UnigramLetterGrid(v2f i) { float2 real_cell_size = floor(tex_size / grid_res); // size of cell in texels float2 unit_range = _Unigram_Letter_Grid_Screen_Px_Range / real_cell_size; float2 screen_tex_size = 1 / fwidth(cell_uv); - screen_px_range = max(0.5 * dot(unit_range, screen_tex_size), _Unigram_Letter_Grid_Min_Screen_Px_Range); + screen_px_range = max(1.0 * dot(unit_range, screen_tex_size), _Unigram_Letter_Grid_Min_Screen_Px_Range); } float screen_px_distance = screen_px_range * (sd - _Unigram_Letter_Grid_Alpha_Threshold); - float smooth_range = (length(grid_res) / sqrt(screen_px_range)) * _Unigram_Letter_Grid_Blurriness; - float op = smoothstep(-smooth_range, smooth_range, screen_px_distance); + float op = clamp(screen_px_distance + 0.5, 0, 1); // Apply blending to output output.albedo.a = 1; |
