code wiki / (root) / nx_cast_eye_t138.nx

nx_cast_eye_t138.nx source

↩ module page · 64 lines · 10905 B

1import "nx_cast_shader_src.nx" 2 3// Existing E-2 eye pass transcribed to shared IR; optical constants and blink policy retained. 4func shsrc_eye_vs(m: *i64) -> i64 { 5 // Eye projection shares the body source clip convention; WGSL lowers depth to [0,1]. 6 m[M_CLIP_DEPTH] = SIR_CLIP_NEGATIVE_ONE_TO_ONE 7 sir_attrib(m, "aS" as *u8, T_V3F, 0) 8 sir_uniform(m, "uEC" as *u8, T_V3F, 24) 9 sir_uniform(m, "uEG" as *u8, T_V4F, 24) 10 sir_uniform(m, "uEcam" as *u8, T_V3F, 0) 11 sir_uniform(m, "uEyp" as *u8, T_V4F, 0) 12 sir_uniform(m, "uEres" as *u8, T_V2F, 0) 13 sir_vary(m, "vSN" as *u8, T_V3F, 0, 0) 14 sir_vary(m, "vSW" as *u8, T_V3F, 1, 0) 15 sir_vary(m, "vEI" as *u8, T_I32, 2, 1) 16 let fn: i64 = sir_func(m, "main" as *u8, T_VOID) 17 ws_st(m, fn, sir_var(m, "i" as *u8, T_I32, sir_builtin(m, "instance_index" as *u8, T_I32))) 18 ws_st(m, fn, ws_set(m, sir_ident(m, "vEI" as *u8, T_I32), sir_ident(m, "i" as *u8, T_I32))) 19 ws_st(m, fn, ws_set(m, sir_ident(m, "vSN" as *u8, T_V3F), sir_ident(m, "aS" as *u8, T_V3F))) 20 ws_st(m, fn, sir_var(m, "wp" as *u8, T_V3F, ws_bin(m, "+" as *u8, cs_idx(m, "uEC" as *u8, T_V3F, sir_ident(m, "i" as *u8, T_I32)), ws_bin(m, "*" as *u8, sir_ident(m, "aS" as *u8, T_V3F), ws_sw(m, cs_idx(m, "uEG" as *u8, T_V4F, sir_ident(m, "i" as *u8, T_I32)), "w" as *u8, T_F32), T_V3F), T_V3F))) 21 ws_st(m, fn, ws_set(m, sir_ident(m, "vSW" as *u8, T_V3F), sir_ident(m, "wp" as *u8, T_V3F))) 22 ws_st(m, fn, sir_var(m, "rel" as *u8, T_V3F, ws_bin(m, "-" as *u8, sir_ident(m, "wp" as *u8, T_V3F), sir_ident(m, "uEcam" as *u8, T_V3F), T_V3F))) 23 ws_st(m, fn, sir_var(m, "fw" as *u8, T_V3F, ws_v3(m, ws_bin(m, "*" as *u8, ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "x" as *u8, T_F32), ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "w" as *u8, T_F32), T_F32), ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "z" as *u8, T_F32), ws_bin(m, "*" as *u8, ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "y" as *u8, T_F32), ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "w" as *u8, T_F32), T_F32)))) 24 ws_st(m, fn, sir_var(m, "rt" as *u8, T_V3F, ws_v3(m, ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "y" as *u8, T_F32), ws_f(m, "0.0" as *u8), sir_neg(m, ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "x" as *u8, T_F32), T_F32)))) 25 ws_st(m, fn, sir_var(m, "up" as *u8, T_V3F, ws_v3(m, ws_bin(m, "*" as *u8, sir_neg(m, ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "x" as *u8, T_F32), T_F32), ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "z" as *u8, T_F32), T_F32), ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "w" as *u8, T_F32), ws_bin(m, "*" as *u8, sir_neg(m, ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "y" as *u8, T_F32), T_F32), ws_sw(m, sir_ident(m, "uEyp" as *u8, T_V4F), "z" as *u8, T_F32), T_F32)))) 26 ws_st(m, fn, sir_var(m, "zv" as *u8, T_F32, ws_c2(m, "max" as *u8, ws_c2(m, "dot" as *u8, sir_ident(m, "rel" as *u8, T_V3F), sir_ident(m, "fw" as *u8, T_V3F), T_F32), ws_f(m, "0.081" as *u8), T_F32))) 27 ws_st(m, fn, ws_set(m, sir_builtin(m, "position" as *u8, T_V4F), ws_v4(m, ws_c2(m, "dot" as *u8, sir_ident(m, "rel" as *u8, T_V3F), sir_ident(m, "rt" as *u8, T_V3F), T_F32), ws_bin(m, "*" as *u8, ws_c2(m, "dot" as *u8, sir_ident(m, "rel" as *u8, T_V3F), sir_ident(m, "up" as *u8, T_V3F), T_F32), ws_bin(m, "/" as *u8, ws_sw(m, sir_ident(m, "uEres" as *u8, T_V2F), "x" as *u8, T_F32), ws_sw(m, sir_ident(m, "uEres" as *u8, T_V2F), "y" as *u8, T_F32), T_F32), T_F32), ws_bin(m, "-" as *u8, ws_bin(m, "*" as *u8, sir_ident(m, "zv" as *u8, T_F32), ws_bin(m, "/" as *u8, ws_f(m, "300.08" as *u8), ws_f(m, "299.92" as *u8), T_F32), T_F32), ws_bin(m, "/" as *u8, ws_f(m, "48.0" as *u8), ws_f(m, "299.92" as *u8), T_F32), T_F32), sir_ident(m, "zv" as *u8, T_F32)))) 28 return 0 29} 30 31func shsrc_eye_fs(m: *i64) -> i64 { 32 sir_vary(m, "vSN" as *u8, T_V3F, 0, 0) 33 sir_vary(m, "vSW" as *u8, T_V3F, 1, 0) 34 sir_vary(m, "vEI" as *u8, T_I32, 2, 1) 35 sir_uniform(m, "uEG" as *u8, T_V4F, 24) 36 sir_uniform(m, "uECol" as *u8, T_V3F, 24) 37 sir_uniform(m, "uEcam" as *u8, T_V3F, 0) 38 sir_uniform(m, "uESk" as *u8, T_V3F, 0) 39 sir_uniform(m, "uETm" as *u8, T_F32, 0) 40 sir_fragout(m, "fc" as *u8, T_V4F, 0) 41 let fn: i64 = sir_func(m, "main" as *u8, T_VOID) 42 ws_st(m, fn, sir_var(m, "bg9" as *u8, T_F32, ws_c1(m, "fract" as *u8, ws_bin(m, "+" as *u8, ws_bin(m, "*" as *u8, sir_ident(m, "uETm" as *u8, T_F32), ws_f(m, "0.24" as *u8), T_F32), ws_bin(m, "*" as *u8, sir_cast(m, ws_bin(m, "/" as *u8, sir_ident(m, "vEI" as *u8, T_I32), ws_i(m, "2" as *u8), T_I32), T_F32), ws_f(m, "0.37" as *u8), T_F32), T_F32), T_F32))) 43 ws_st(m, fn, sir_var(m, "lf9" as *u8, T_F32, ws_bin(m, "*" as *u8, ws_c3(m, "smoothstep" as *u8, ws_f(m, "0.950" as *u8), ws_f(m, "0.962" as *u8), sir_ident(m, "bg9" as *u8, T_F32), T_F32), ws_bin(m, "-" as *u8, ws_f(m, "1.0" as *u8), ws_c3(m, "smoothstep" as *u8, ws_f(m, "0.982" as *u8), ws_f(m, "0.994" as *u8), sir_ident(m, "bg9" as *u8, T_F32), T_F32), T_F32), T_F32))) 44 ws_st(m, fn, ws_if(m, ws_cmp(m, ">" as *u8, sir_ident(m, "lf9" as *u8, T_F32), ws_f(m, "0.0" as *u8)), sir_discard(m), 0)) 45 ws_st(m, fn, sir_var(m, "n" as *u8, T_V3F, ws_c1(m, "normalize" as *u8, sir_ident(m, "vSN" as *u8, T_V3F), T_V3F))) 46 ws_st(m, fn, sir_var(m, "gz" as *u8, T_V3F, ws_c1(m, "normalize" as *u8, ws_sw(m, cs_idx(m, "uEG" as *u8, T_V4F, sir_ident(m, "vEI" as *u8, T_I32)), "xyz" as *u8, T_V3F), T_V3F))) 47 ws_st(m, fn, sir_var(m, "vd" as *u8, T_V3F, ws_c1(m, "normalize" as *u8, ws_bin(m, "-" as *u8, sir_ident(m, "vSW" as *u8, T_V3F), sir_ident(m, "uEcam" as *u8, T_V3F), T_V3F), T_V3F))) 48 ws_st(m, fn, sir_var(m, "col" as *u8, T_V3F, ws_v3(m, ws_f(m, "0.94" as *u8), ws_f(m, "0.93" as *u8), ws_f(m, "0.91" as *u8)))) 49 ws_st(m, fn, ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "*" as *u8, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "-" as *u8, ws_f(m, "1.0" as *u8), ws_bin(m, "*" as *u8, ws_f(m, "0.22" as *u8), ws_bin(m, "-" as *u8, ws_f(m, "1.0" as *u8), ws_c2(m, "max" as *u8, ws_c2(m, "dot" as *u8, sir_ident(m, "n" as *u8, T_V3F), sir_neg(m, sir_ident(m, "vd" as *u8, T_V3F), T_V3F), T_F32), ws_f(m, "0.0" as *u8), T_F32), T_F32), T_F32), T_F32), T_V3F))) 50 ws_st(m, fn, sir_var(m, "gp" as *u8, T_V3F, ws_c1(m, "normalize" as *u8, ws_bin(m, "-" as *u8, sir_ident(m, "gz" as *u8, T_V3F), ws_bin(m, "*" as *u8, sir_ident(m, "vd" as *u8, T_V3F), ws_f(m, "0.30" as *u8), T_V3F), T_V3F), T_V3F))) 51 ws_st(m, fn, sir_var(m, "ap" as *u8, T_F32, ws_c2(m, "dot" as *u8, sir_ident(m, "n" as *u8, T_V3F), sir_ident(m, "gp" as *u8, T_V3F), T_F32))) 52 ws_st(m, fn, sir_var(m, "ia" as *u8, T_F32, ws_f(m, "0.87" as *u8))) 53 ws_st(m, fn, ws_if(m, ws_cmp(m, ">" as *u8, sir_ident(m, "ap" as *u8, T_F32), sir_ident(m, "ia" as *u8, T_F32)), ws_q2(m, sir_var(m, "t" as *u8, T_F32, ws_c3(m, "clamp" as *u8, ws_bin(m, "/" as *u8, ws_bin(m, "-" as *u8, ws_f(m, "1.0" as *u8), sir_ident(m, "ap" as *u8, T_F32), T_F32), ws_bin(m, "-" as *u8, ws_f(m, "1.0" as *u8), sir_ident(m, "ia" as *u8, T_F32), T_F32), T_F32), ws_f(m, "0.0" as *u8), ws_f(m, "1.0" as *u8), T_F32)), ws_q2(m, ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "*" as *u8, cs_idx(m, "uECol" as *u8, T_V3F, sir_ident(m, "vEI" as *u8, T_I32)), ws_bin(m, "-" as *u8, ws_f(m, "1.35" as *u8), ws_bin(m, "*" as *u8, ws_f(m, "0.7" as *u8), sir_ident(m, "t" as *u8, T_F32), T_F32), T_F32), T_V3F)), ws_q2(m, ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "+" as *u8, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "*" as *u8, ws_bin(m, "*" as *u8, ws_v3(m, ws_f(m, "0.11" as *u8), ws_f(m, "0.08" as *u8), ws_f(m, "0.03" as *u8)), ws_c2(m, "max" as *u8, ws_f(m, "0.0" as *u8), ws_bin(m, "-" as *u8, ws_f(m, "0.55" as *u8), ws_c1(m, "abs" as *u8, ws_bin(m, "-" as *u8, sir_ident(m, "t" as *u8, T_F32), ws_f(m, "0.55" as *u8), T_F32), T_F32), T_F32), T_F32), T_V3F), ws_f(m, "1.6" as *u8), T_V3F), T_V3F)), ws_q2(m, ws_if(m, ws_cmp(m, ">" as *u8, sir_ident(m, "t" as *u8, T_F32), ws_f(m, "0.86" as *u8)), ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "*" as *u8, sir_ident(m, "col" as *u8, T_V3F), ws_f(m, "0.30" as *u8), T_V3F)), 0), ws_if(m, ws_cmp(m, "<" as *u8, sir_ident(m, "t" as *u8, T_F32), ws_f(m, "0.40" as *u8)), ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_v3(m, ws_f(m, "0.02" as *u8), ws_f(m, "0.02" as *u8), ws_f(m, "0.04" as *u8))), 0))))), 0)) 54 ws_st(m, fn, sir_var(m, "L" as *u8, T_V3F, ws_c1(m, "normalize" as *u8, ws_v3(m, ws_f(m, "2400.0" as *u8), ws_f(m, "2500.0" as *u8), ws_f(m, "1400.0" as *u8)), T_V3F))) 55 ws_st(m, fn, sir_var(m, "H" as *u8, T_V3F, ws_c1(m, "normalize" as *u8, ws_bin(m, "-" as *u8, sir_ident(m, "L" as *u8, T_V3F), sir_ident(m, "vd" as *u8, T_V3F), T_V3F), T_V3F))) 56 ws_st(m, fn, sir_var(m, "spq" as *u8, T_F32, ws_c2(m, "max" as *u8, ws_c2(m, "dot" as *u8, sir_ident(m, "n" as *u8, T_V3F), sir_ident(m, "H" as *u8, T_V3F), T_F32), ws_f(m, "0.0" as *u8), T_F32))) 57 ws_st(m, fn, ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "+" as *u8, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "*" as *u8, ws_bin(m, "*" as *u8, ws_v3(m, ws_f(m, "1.0" as *u8), ws_f(m, "1.0" as *u8), ws_f(m, "0.98" as *u8)), ws_c2(m, "pow" as *u8, sir_ident(m, "spq" as *u8, T_F32), ws_f(m, "150.0" as *u8), T_F32), T_V3F), ws_f(m, "1.7" as *u8), T_V3F), T_V3F))) 58 ws_st(m, fn, ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "+" as *u8, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "*" as *u8, ws_bin(m, "*" as *u8, ws_v3(m, ws_f(m, "0.16" as *u8), ws_f(m, "0.17" as *u8), ws_f(m, "0.18" as *u8)), ws_c2(m, "pow" as *u8, sir_ident(m, "spq" as *u8, T_F32), ws_f(m, "10.0" as *u8), T_F32), T_V3F), ws_f(m, "0.45" as *u8), T_V3F), T_V3F))) 59 ws_st(m, fn, sir_var(m, "edif9" as *u8, T_F32, ws_c3(m, "clamp" as *u8, ws_bin(m, "/" as *u8, ws_bin(m, "+" as *u8, ws_c2(m, "dot" as *u8, sir_ident(m, "n" as *u8, T_V3F), sir_ident(m, "L" as *u8, T_V3F), T_F32), ws_f(m, "0.42" as *u8), T_F32), ws_f(m, "1.42" as *u8), T_F32), ws_f(m, "0.0" as *u8), ws_f(m, "1.0" as *u8), T_F32))) 60 ws_st(m, fn, ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "*" as *u8, sir_ident(m, "col" as *u8, T_V3F), ws_bin(m, "/" as *u8, ws_bin(m, "+" as *u8, ws_f(m, "0.34" as *u8), ws_bin(m, "*" as *u8, ws_f(m, "0.72" as *u8), sir_ident(m, "edif9" as *u8, T_F32), T_F32), T_F32), ws_f(m, "0.86" as *u8), T_F32), T_V3F))) 61 ws_st(m, fn, ws_set(m, sir_ident(m, "col" as *u8, T_V3F), ws_c3(m, "mix" as *u8, sir_ident(m, "col" as *u8, T_V3F), sir_ident(m, "uESk" as *u8, T_V3F), ws_c3(m, "clamp" as *u8, ws_bin(m, "/" as *u8, ws_c1(m, "length" as *u8, ws_bin(m, "-" as *u8, sir_ident(m, "vSW" as *u8, T_V3F), sir_ident(m, "uEcam" as *u8, T_V3F), T_V3F), T_F32), ws_f(m, "46.0" as *u8), T_F32), ws_f(m, "0.0" as *u8), ws_f(m, "0.9" as *u8), T_F32), T_V3F))) 62 ws_st(m, fn, ws_set(m, sir_ident(m, "fc" as *u8, T_V4F), ws_vt2(m, T_V4F, sir_ident(m, "col" as *u8, T_V3F), ws_f(m, "1.0" as *u8)))) 63 return 0 64}