From 390160e9e1ff5e672918fae0107c786039a3457d Mon Sep 17 00:00:00 2001 From: yum Date: Sun, 4 May 2025 13:36:34 -0700 Subject: Begin work on unigram letter grid Basic idea is to use a sentencepiece unigram tokenizer to compress text over the wire. GPU decodes tokens with a LUT. --- 2ner.cginc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to '2ner.cginc') diff --git a/2ner.cginc b/2ner.cginc index 43d6059..7d0916f 100644 --- a/2ner.cginc +++ b/2ner.cginc @@ -18,6 +18,7 @@ #include "shatter_wave.cginc" #include "ssfd.cginc" #include "tessellation.cginc" +#include "unigram_letter_grid.cginc" #include "vertex_domain_warping.cginc" #include "yum_brdf.cginc" #include "yum_pbr.cginc" @@ -247,6 +248,16 @@ float4 frag(v2f i, uint facing : SV_IsFrontFace pbr.roughness = lerp(pbr.roughness, letter_grid_output.roughness, letter_grid_output.albedo.a); #endif +#if defined(_UNIGRAM_LETTER_GRID) + UnigramLetterGridOutput unigram_letter_grid_output = UnigramLetterGrid(i); + pbr.albedo.rgb = lerp(pbr.albedo.rgb, unigram_letter_grid_output.albedo, + unigram_letter_grid_output.albedo.a); + pbr.metallic = lerp(pbr.metallic, unigram_letter_grid_output.metallic, + unigram_letter_grid_output.albedo.a); + pbr.roughness = lerp(pbr.roughness, unigram_letter_grid_output.roughness, + unigram_letter_grid_output.albedo.a); +#endif + [branch] if (_Mode == 1) { clip(pbr.albedo.a - _Clip); @@ -296,6 +307,9 @@ float4 frag(v2f i, uint facing : SV_IsFrontFace #if defined(_LETTER_GRID) lit.rgb += letter_grid_output.emission * letter_grid_output.albedo.a; #endif +#if defined(_UNIGRAM_LETTER_GRID) + lit.rgb += unigram_letter_grid_output.emission * unigram_letter_grid_output.albedo.a; +#endif UNITY_EXTRACT_FOG_FROM_EYE_VEC(i); UNITY_APPLY_FOG(_unity_fogCoord, lit.rgb); -- cgit v1.2.3