Код
vs_5_0
dcl_global_flags refactoringAllowed
dcl_constant_buffer cb0[4].xyzw, immediateIndexed
dcl_constant_buffer cb3[10].xyzw, immediateIndexed
dcl_constant_buffer cb5[13].xyzw, dynamicIndexed
dcl_constant_buffer cb6[12].xyzw, dynamicIndexed
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.w
dcl_input v3.x
dcl_input v4.xyzw
dcl_input v5.xyzw
dcl_input v6.xy
dcl_input v7.xyzw
dcl_input v8.xyzw
dcl_input v9.xyzw
dcl_input v10.xyw
dcl_input_sgv v11.x, instance_id
dcl_input v12.xyzw
dcl_input v13.xyzw
dcl_input v14.xyzw
dcl_input v15.xyzw
dcl_input v16.xyzw
dcl_input v17.xyzw
dcl_input v18.xyzw
dcl_input v19.xyzw
dcl_input v20.xyzw
dcl_input v21.xyzw
dcl_input v22.xyzw
dcl_input v23.x
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.x
dcl_output o6.xyzw
dcl_output o7.xyz
dcl_temps 15
imad r0.xyzw, v11.xxxx, cb5[0].xxxx, v4.zyxw
and r1.xy, v10.xyxx, l(65535, 65535, 0, 0)
ushr r1.zw, v10.xxxy, l(0, 0, 16, 16)
f16tof32 o7.xyz, r1.xzyx
f16tof32 r1.x, r1.w
mul r2.xyzw, v5.zzzz, cb5[r0.x+1].xyzw
iadd r1.yz, r0.xxxx, l(0, 1, 2, 0)
mul r3.xyzw, v5.zzzz, cb5[r1.y+1].xyzw
mul r4.xyzw, v5.zzzz, cb5[r1.z+1].xyzw
mul r5.xyzw, v5.zzzz, cb6[r0.x].xyzw
mul r6.xyzw, v5.zzzz, cb6[r1.y].xyzw
mul r7.xyzw, v5.zzzz, cb6[r1.z].xyzw
lt r0.x, l(0), v5.y
if r0.x
mad r2.xyzw, v5.yyyy, cb5[r0.y+1].xyzw, r2.xyzw
iadd r1.yz, r0.yyyy, l(0, 1, 2, 0)
mad r3.xyzw, v5.yyyy, cb5[r1.y+1].xyzw, r3.xyzw
mad r4.xyzw, v5.yyyy, cb5[r1.z+1].xyzw, r4.xyzw
mad r5.xyzw, v5.yyyy, cb6[r0.y].xyzw, r5.xyzw
mad r6.xyzw, v5.yyyy, cb6[r1.y].xyzw, r6.xyzw
mad r7.xyzw, v5.yyyy, cb6[r1.z].xyzw, r7.xyzw
lt r0.x, l(0), v5.x
if r0.x
mad r8.xyzw, v5.xxxx, cb5[r0.z+1].xyzw, r2.xyzw
iadd r9.xyzw, r0.zzww, l(1, 2, 1, 2)
mad r10.xyzw, v5.xxxx, cb5[r9.x+1].xyzw, r3.xyzw
mad r11.xyzw, v5.xxxx, cb5[r9.y+1].xyzw, r4.xyzw
mad r12.xyzw, v5.xxxx, cb6[r0.z].xyzw, r5.xyzw
mad r13.xyzw, v5.xxxx, cb6[r9.x].xyzw, r6.xyzw
mad r14.xyzw, v5.xxxx, cb6[r9.y].xyzw, r7.xyzw
mad r2.xyzw, v5.wwww, cb5[r0.w+1].xyzw, r8.xyzw
mad r3.xyzw, v5.wwww, cb5[r9.z+1].xyzw, r10.xyzw
mad r4.xyzw, v5.wwww, cb5[r9.w+1].xyzw, r11.xyzw
mad r5.xyzw, v5.wwww, cb6[r0.w].xyzw, r12.xyzw
mad r6.xyzw, v5.wwww, cb6[r9.z].xyzw, r13.xyzw
mad r7.xyzw, v5.wwww, cb6[r9.w].xyzw, r14.xyzw
endif
endif
utof r0.xyz, v0.xyzx
mul r1.yzw, r0.xxyz, l(0, 3.05185e-005, 3.05185e-005, 3.05185e-005)
ge r8.xyz, l(32767, 32767, 32767, 0), r0.xyzx
mad r0.xyz, r0.xyzx, l(3.05185e-005, 3.05185e-005, 3.05185e-005, 0), l(-2, -2, -2, 0)
movc r0.xyz, r8.xyzx, r1.yzwy, r0.xyzx
mul r0.xyz, r0.xyzx, v10.wwww
mov r0.w, l(1)
dp4 r8.x, r2.xyzw, r0.xyzw
dp4 r8.y, r3.xyzw, r0.xyzw
dp4 r8.z, r4.xyzw, r0.xyzw
dp4 o3.x, r5.xyzw, r0.xyzw
dp4 o3.y, r6.xyzw, r0.xyzw
dp4 o3.z, r7.xyzw, r0.xyzw
and r0.x, v3.x, l(255)
ubfe r0.yzw, l(0, 8, 8, 8), l(0, 16, 8, 16), v3.xxxx
utof r5.xyzw, r0.yzxw
mad r0.xyz, v1.zyxz, l(2, 2, 2, 0), l(-1, -1, -1, 0)
dp3 r2.x, r2.xyzx, r0.xyzx
dp3 r2.y, r3.xyzx, r0.xyzx
dp3 r2.z, r4.xyzx, r0.xyzx
itof r0.xy, v6.xyxx
mul r0.xy, r0.xyxx, cb0[3].zwzz
mul r1.yzw, r5.xxyz, l(0, 0.00392157, 0.00392157, 0.00392157)
mad o1.w, r5.w, l(0.00196078), l(0.5)
mul o2.w, r1.x, v1.w
iadd r3.xyzw, v15.zzyy, l(1, 2, 1, 2)
mov r0.z, v15.y
mul r4.xyzw, v19.yyyy, cb5[r0.z+1].xyzw
mov r0.z, v15.z
mad r4.xyzw, v19.zzzz, cb5[r0.z+1].xyzw, r4.xyzw
mul r5.xyzw, v19.yyyy, cb5[r3.z+1].xyzw
mad r5.xyzw, v19.zzzz, cb5[r3.x+1].xyzw, r5.xyzw
mul r6.xyzw, v19.yyyy, cb5[r3.w+1].xyzw
mad r3.xyzw, v19.zzzz, cb5[r3.y+1].xyzw, r6.xyzw
mov r0.z, v15.x
mad r4.xyzw, v19.xxxx, cb5[r0.z+1].xyzw, r4.xyzw
iadd r6.xyzw, v15.xxww, l(1, 2, 1, 2)
mad r5.xyzw, v19.xxxx, cb5[r6.x+1].xyzw, r5.xyzw
mad r3.xyzw, v19.xxxx, cb5[r6.y+1].xyzw, r3.xyzw
mov r0.z, v15.w
mad r4.xyzw, v19.wwww, cb5[r0.z+1].xyzw, r4.xyzw
mad r5.xyzw, v19.wwww, cb5[r6.z+1].xyzw, r5.xyzw
mad r3.xyzw, v19.wwww, cb5[r6.w+1].xyzw, r3.xyzw
mul r6.xyz, v10.wwww, v12.xyzx
mov r6.w, l(1)
dp4 r4.y, r4.xyzw, r6.xyzw
dp4 r4.z, r5.xyzw, r6.xyzw
dp4 r4.x, r3.xyzw, r6.xyzw
add r3.xyz, -r4.yzxy, r8.xyzx
dp3 r0.z, r3.xyzx, r3.xyzx
sqrt r0.z, r0.z
add r3.xyz, -r8.zxyz, r4.xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
rsq r0.w, r0.w
mul r3.xyz, r0.wwww, r3.xyzx
mul r4.xyz, r2.xyzx, r3.xyzx
mad r4.xyz, r2.zxyz, r3.yzxy, -r4.xyzx
dp3 r0.w, r4.xyzx, r4.xyzx
rsq r0.w, r0.w
mul r4.xyz, r0.wwww, r4.xyzx
mul r5.xyz, r3.xyzx, r4.xyzx
mad r3.xyz, r3.zxyz, r4.yzxy, -r5.xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
rsq r0.w, r0.w
iadd r4.xyzw, v16.zzyy, l(1, 2, 1, 2)
mov r1.x, v16.y
mul r5.xyzw, v20.yyyy, cb5[r1.x+1].xyzw
mov r1.x, v16.z
mad r5.xyzw, v20.zzzz, cb5[r1.x+1].xyzw, r5.xyzw
mul r6.xyzw, v20.yyyy, cb5[r4.z+1].xyzw
mad r6.xyzw, v20.zzzz, cb5[r4.x+1].xyzw, r6.xyzw
mul r7.xyzw, v20.yyyy, cb5[r4.w+1].xyzw
mad r4.xyzw, v20.zzzz, cb5[r4.y+1].xyzw, r7.xyzw
mov r1.x, v16.x
mad r5.xyzw, v20.xxxx, cb5[r1.x+1].xyzw, r5.xyzw
iadd r7.xyzw, v16.xxww, l(1, 2, 1, 2)
mad r6.xyzw, v20.xxxx, cb5[r7.x+1].xyzw, r6.xyzw
mad r4.xyzw, v20.xxxx, cb5[r7.y+1].xyzw, r4.xyzw
mov r1.x, v16.w
mad r5.xyzw, v20.wwww, cb5[r1.x+1].xyzw, r5.xyzw
mad r6.xyzw, v20.wwww, cb5[r7.z+1].xyzw, r6.xyzw
mad r4.xyzw, v20.wwww, cb5[r7.w+1].xyzw, r4.xyzw
mov r7.x, v12.w
mov r7.yz, v13.xxyx
mul r7.xyz, r7.xyzx, v10.wwww
mov r7.w, l(1)
dp4 r5.y, r5.xyzw, r7.xyzw
dp4 r5.z, r6.xyzw, r7.xyzw
dp4 r5.x, r4.xyzw, r7.xyzw
add r4.xyz, -r5.yzxy, r8.xyzx
dp3 r1.x, r4.xyzx, r4.xyzx
sqrt r1.x, r1.x
add r4.x, r0.z, r1.x
add r5.xyz, -r8.zxyz, r5.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mul r5.xyz, r0.zzzz, r5.xyzx
mul r6.xyz, r2.xyzx, r5.xyzx
mad r6.xyz, r2.zxyz, r5.yzxy, -r6.xyzx
dp3 r0.z, r6.xyzx, r6.xyzx
rsq r0.z, r0.z
mul r6.xyz, r0.zzzz, r6.xyzx
mul r7.xyz, r5.xyzx, r6.xyzx
mad r5.xyz, r5.zxyz, r6.yzxy, -r7.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mul r5.xyz, r0.zzzz, r5.xyzx
mad r3.xyz, r3.xyzx, r0.wwww, r5.xyzx
ne r0.z, l(0, 0, 0, 0), v21.z
if r0.z
iadd r5.xyzw, v17.zzyy, l(1, 2, 1, 2)
mov r0.z, v17.y
mul r6.xyzw, v21.yyyy, cb5[r0.z+1].xyzw
mov r0.z, v17.z
mad r6.xyzw, v21.zzzz, cb5[r0.z+1].xyzw, r6.xyzw
mul r7.xyzw, v21.yyyy, cb5[r5.z+1].xyzw
mad r7.xyzw, v21.zzzz, cb5[r5.x+1].xyzw, r7.xyzw
mul r9.xyzw, v21.yyyy, cb5[r5.w+1].xyzw
mad r5.xyzw, v21.zzzz, cb5[r5.y+1].xyzw, r9.xyzw
mov r0.z, v17.x
mad r6.xyzw, v21.xxxx, cb5[r0.z+1].xyzw, r6.xyzw
iadd r9.xyzw, v17.xxww, l(1, 2, 1, 2)
mad r7.xyzw, v21.xxxx, cb5[r9.x+1].xyzw, r7.xyzw
mad r5.xyzw, v21.xxxx, cb5[r9.y+1].xyzw, r5.xyzw
mov r0.z, v17.w
mad r6.xyzw, v21.wwww, cb5[r0.z+1].xyzw, r6.xyzw
mad r7.xyzw, v21.wwww, cb5[r9.z+1].xyzw, r7.xyzw
mad r5.xyzw, v21.wwww, cb5[r9.w+1].xyzw, r5.xyzw
mov r9.xy, v13.zwzz
mov r9.z, v14.x
mul r9.xyz, r9.xyzx, v10.wwww
mov r9.w, l(1)
dp4 r6.y, r6.xyzw, r9.xyzw
dp4 r6.z, r7.xyzw, r9.xyzw
dp4 r6.x, r5.xyzw, r9.xyzw
add r5.xyz, -r6.yzxy, r8.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
sqrt r0.z, r0.z
add r4.x, r0.z, r4.x
add r5.xyz, -r8.zxyz, r6.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mul r5.xyz, r0.zzzz, r5.xyzx
mul r6.xyz, r2.xyzx, r5.xyzx
mad r6.xyz, r2.zxyz, r5.yzxy, -r6.xyzx
dp3 r0.z, r6.xyzx, r6.xyzx
rsq r0.z, r0.z
mul r6.xyz, r0.zzzz, r6.xyzx
mul r7.xyz, r5.xyzx, r6.xyzx
mad r5.xyz, r5.zxyz, r6.yzxy, -r7.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mad r3.xyz, r5.xyzx, r0.zzzz, r3.xyzx
mov r4.y, l(3)
else
mov r4.y, l(2)
endif
ne r0.z, l(0, 0, 0, 0), v22.z
if r0.z
iadd r5.xyzw, v18.zzyy, l(1, 2, 1, 2)
mov r0.z, v18.y
mul r6.xyzw, v22.yyyy, cb5[r0.z+1].xyzw
mov r0.z, v18.z
mad r6.xyzw, v22.zzzz, cb5[r0.z+1].xyzw, r6.xyzw
mul r7.xyzw, v22.yyyy, cb5[r5.z+1].xyzw
mad r7.xyzw, v22.zzzz, cb5[r5.x+1].xyzw, r7.xyzw
mul r9.xyzw, v22.yyyy, cb5[r5.w+1].xyzw
mad r5.xyzw, v22.zzzz, cb5[r5.y+1].xyzw, r9.xyzw
mov r0.z, v18.x
mad r6.xyzw, v22.xxxx, cb5[r0.z+1].xyzw, r6.xyzw
iadd r9.xyzw, v18.xxww, l(1, 2, 1, 2)
mad r7.xyzw, v22.xxxx, cb5[r9.x+1].xyzw, r7.xyzw
mad r5.xyzw, v22.xxxx, cb5[r9.y+1].xyzw, r5.xyzw
mov r0.z, v18.w
mad r6.xyzw, v22.wwww, cb5[r0.z+1].xyzw, r6.xyzw
mad r7.xyzw, v22.wwww, cb5[r9.z+1].xyzw, r7.xyzw
mad r5.xyzw, v22.wwww, cb5[r9.w+1].xyzw, r5.xyzw
mul r9.xyz, v10.wwww, v14.yzwy
mov r9.w, l(1)
dp4 r6.y, r6.xyzw, r9.xyzw
dp4 r6.z, r7.xyzw, r9.xyzw
dp4 r6.x, r5.xyzw, r9.xyzw
add r5.xyz, -r6.yzxy, r8.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
sqrt r0.z, r0.z
add r4.x, r0.z, r4.x
add r4.y, r4.y, l(1)
add r5.xyz, -r8.zxyz, r6.xyzx
dp3 r0.z, r5.xyzx, r5.xyzx
rsq r0.z, r0.z
mul r5.xyz, r0.zzzz, r5.xyzx
mul r6.xyz, r2.xyzx, r5.xyzx
mad r2.xyz, r2.zxyz, r5.yzxy, -r6.xyzx
dp3 r0.z, r2.xyzx, r2.xyzx
rsq r0.z, r0.z
mul r2.xyz, r0.zzzz, r2.xyzx
mul r6.xyz, r2.xyzx, r5.xyzx
mad r2.xyz, r5.zxyz, r2.yzxy, -r6.xyzx
dp3 r0.z, r2.xyzx, r2.xyzx
rsq r0.z, r0.z
mad r3.xyz, r2.xyzx, r0.zzzz, r3.xyzx
endif
div r0.z, r4.x, r4.y
div o5.x, v23.x, r0.z
dp3 r0.z, r3.xyzx, r3.xyzx
rsq r0.z, r0.z
mul r2.xyz, r0.zzzz, r3.xyzx
mad o1.xy, r0.xyxx, l(0.000488281, 0.000488281, 0, 0), cb0[3].xyxx
mov r8.w, l(1)
dp4 r0.x, v7.xyzw, r8.xyzw
dp4 r0.y, v8.xyzw, r8.xyzw
dp4 r0.z, v9.xyzw, r8.xyzw
mov r3.x, v7.y
mov r3.y, v8.y
mov r3.z, v9.y
dp3 r1.x, r3.xyzx, r3.xyzx
sqrt o3.w, r1.x
mov r0.w, l(1)
dp4 o0.x, cb3[6].xyzw, r0.xyzw
dp4 o0.y, cb3[7].xyzw, r0.xyzw
dp4 o0.z, cb3[8].xyzw, r0.xyzw
dp4 o0.w, cb3[9].xyzw, r0.xyzw
dp3 r3.x, v7.xyzx, r2.xyzx
dp3 r3.y, v8.xyzx, r2.xyzx
dp3 r3.z, v9.xyzx, r2.xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
rsq r0.w, r0.w
mul o4.xyz, r0.wwww, r3.xyzx
mov o1.z, l(0)
mov o2.xyz, r0.xyzx
mov o4.w, v2.w
mov o6.xyz, r1.yzwy
mov o6.w, l(1)
ret