0001:
0002:
0003:
0004:
0005:
0006:
0007:
0008:
0009: vs.1.1
0010:
0011:
0012: mov oPos, v0
0013:
0014: m4x4 r3, v0, c8
0015: // 正規化
0016: dp3 r3.w, r3, r3
0017: rsq r3.w, r3.w
0018: mul r3, r3, r3.w
0019:
0020: // oT0 = (0<=(N・L1))?L1:-L1
0021: dp3 r0, r3, c32
0022: sge r1, r0, c12.x
0023: add r2, c32, c32
0024: mad oT0, r1, r2, -c32
0025:
0026: // oT1 = (0<=(N・L2))?L2:-L2
0027: dp3 r0.a, r3, c33
0028: sge r1, r0.a, c12.x
0029: add r2, c33, c33
0030: mad oT1, r1, r2, -c33
0031:
0032:
0033: max oD0, r0, -r0
0034:
0035:
0036: // oT2 = (0<=(N・L3))?L3:-L3
0037: dp3 r0, r3, c34
0038: sge r1, r0, c12.x
0039: add r2, c34, c34
0040: mad oT2, r1, r2, -c34
0041:
0042: // oT3 = (0<=(N・L4))?L4:-L4
0043: dp3 r0.a, r3, c35
0044: sge r1, r0.a, c12.x
0045: add r2, c35, c35
0046: mad oT3, r1, r2, -c35
0047:
0048: // (|N・L3|, |N・L3|, |N・L3|, |N・L4|)
0049: max oD1, r0, -r0
0050: