summaryrefslogtreecommitdiffstats
path: root/2ner.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-05-04 13:36:34 -0700
committeryum <yum.food.vr@gmail.com>2025-05-04 13:36:34 -0700
commit390160e9e1ff5e672918fae0107c786039a3457d (patch)
tree3adff5771b63e16652a0c7f220f56e089efff1ff /2ner.cginc
parent4066ad88b311a99345e168ad9f31ce9ce86684e9 (diff)
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.
Diffstat (limited to '2ner.cginc')
-rw-r--r--2ner.cginc14
1 files changed, 14 insertions, 0 deletions
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);