|
- ps_3_0
- def c36 , 0.500000000000000000000000, 0.666999995708465580000000, 1.000000000000000000000000, 0.503906250000000000000000
- def c37 , 0.987654328346252440000000, 0.012345679104328156000000, 0.496093750000000000000000, 0.503906250000000000000000
- def c38 , 1.000000000000000000000000, 2.000000000000000000000000, 3.000000000000000000000000, 0.000000000000000000000000
- def c39 , 0.039999999105930328000000, 0.000000000000000000000000, 1.000000000000000000000000, 1000.000000000000000000000000
- def c40 , 0.250000000000000000000000, -0.009999999776482582100000, 0.058858152478933334000000, -5.000000000000000000000000
- def c41 , 1.522292971611022900000000, 0.193275004625320430000000, 0.090909093618392944000000, 0.000000100000001168609740
- def c42 , 0.498046875000000000000000, 0.503906250000000000000000, 0.501953125000000000000000, 0.496093750000000000000000
- def c43 , 1.420302033424377400000000, -1.440078020095825200000000, 1.558367967605590800000000, 2.301065921783447300000000
- def c44 , -2.520431995391845700000000, -0.220740005373954770000000, -2.087742090225219700000000, 1.371410965919494600000000
- def c45 , 3.000000000000000000000000, -3.000000000000000000000000, -0.978636026382446290000000, -1.217429995536804200000000
- def c46 , 0.500000000000000000000000, 0.501953125000000000000000, 0.496093750000000000000000, 0.498046875000000000000000
- dcl_texcoord1 v0.xyz
- dcl_texcoord0 v1.xy
- dcl_texcoord2 v2
- dcl_texcoord3 v3.xyw
- dcl_texcoord4 v4.xyz
- dcl_2d s0
- dcl_2d s1
- dcl_2d s2
- dcl_2d s3
- dcl_2d s4
- dp3 r7.w , v2 , v2
- rsq r7.z , r7.wwww
- mul r0.z , r7.zzzz , v2.yyyy
- mov_sat r0.w , r0.zzzz
- add r0.w , -r0.wwww , c36.zzzz
- rcp r0.y , r7.zzzz
- mul r0.z , r0.wwww , r0.wwww
- add r0.y , r0.yyyy , -c31.xxxx
- mul r0.z , r0.zzzz , r0.zzzz
- mul_sat r8.z , r0.yyyy , c31.yyyy
- mul r8.w , r0.wwww , r0.zzzz
- add r0.w , r8.zzzz , -c36.zzzz
- cmp r0.w , r0.wwww , c39.yyyy , c39.zzzz
- add r0.xyz , -v2 , c21
- if_ne r0 , -r0.wwww
- mov r0.w , c36.zzzz
- dp4 r6.x , r0 , c18
- mov r6.yzw , c39
- mad r1.xyz , c35.zwzw , -r6.zzyw , -r6.yyww
- add r2.xyz , r6.xxxx , r1
- add r1.xyz , r6.xxxx , -c35.yzww
- cmp r2.xyz , r2 , c39.yyyy , c39.zzzz
- cmp r1.xyz , r1 , c39.zzzz , c39.yyyy
- mul r1.xyz , r2 , r1
- dp3 r2.x , r1 , c38
- add r2.yzw , r2.xxxx , -c38.xxyz
- add r1 , r2.xxxx , -c38.wxyz
- cmp r1 , r1 , r1 , -r2
- cmp r3 , -r1.xxxx , c3 , r6.yyyy
- cmp r3 , -r1.yyyy , c7 , r3
- cmp r3 , -r1.zzzz , c11 , r3
- cmp r3 , -r1.wwww , c15 , r3
- dp4 r3.w , r0 , r3
- cmp r4 , -r1.xxxx , c0 , r6.yyyy
- cmp r5 , -r1.yyyy , c4 , r4
- cmp r4 , -r1.xxxx , c1 , r6.yyyy
- cmp r5 , -r1.zzzz , c8 , r5
- cmp r4 , -r1.yyyy , c5 , r4
- cmp r5 , -r1.wwww , c12 , r5
- cmp r4 , -r1.zzzz , c9 , r4
- dp4 r3.x , r0 , r5
- cmp r4 , -r1.wwww , c13 , r4
- dp4 r2.w , r0 , r4
- mul r2.z , r2.xxxx , c40.xxxx
- mad r3.y , r2.wwww , c40.xxxx , r2.zzzz
- cmp r4 , -r1.xxxx , c2 , r6.yyyy
- add r1.x , r6.xxxx , c40.yyyy
- cmp r4 , -r1.yyyy , c6 , r4
- mul_sat r2.w , r1.xxxx , c40.zzzz
- cmp r4 , -r1.zzzz , c10 , r4
- cmp r1 , -r1.wwww , c14 , r4
- add r2.z , r2.wwww , -c36.zzzz
- dp4 r3.z , r0 , r1
- cmp r0.w , r2.zzzz , c39.yyyy , c39.zzzz
- texldl r1 , r3 , s0
- if_ne r0 , -r0.wwww
- add r2.xy , r2.xxxx , -c39.yzzw
- add r0.w , -r2.wwww , c36.zzzz
- cmp r4.xy , -abs r2.xxxx , c19 , r6.yyyy
- cmp r4.xy , -abs r2.yyyy , c20 , r4
- mul r2.xy , r0.wwww , c34.zwzw
- mul r7.xy , r4 , r2
- mov r6.zw , r3
- mad r6.xy , r7 , -c38.zzzz , r3
- texldl r2 , r6 , s0
- add r0.w , r1.xxxx , r2.xxxx
- mad r6.xy , r7 , c45 , r3
- texldl r1 , r6 , s0
- add r0.w , r0.wwww , r1.xxxx
- mad r6.xy , r7 , c45.yxzw , r3
- texldl r1 , r6 , s0
- add r0.w , r0.wwww , r1.xxxx
- mad r6.xy , r7 , c38.zzzz , r3
- texldl r1 , r6 , s0
- add r0.y , r0.wwww , r1.xxxx
- cmp r0.w , -r0.yyyy , c39.yyyy , c39.zzzz
- if_ne r0 , -r0.wwww
- add r0.w , r0.yyyy , c40.wwww
- cmp r0.w , r0.wwww , c39.zzzz , c39.yyyy
- if_ne r0 , -r0.wwww
- mov r0.y , c36.zzzz
- else
- mov r5.zw , r6
- mov r4.zw , r5
- mov r3.zw , r4
- mov r2.zw , r3
- mad r1.xy , r7 , c41 , r3
- mov r1.zw , r2
- texldl r1 , r1 , s0
- mad r6.xy , r7 , c45.zwzw , r3
- texldl r6 , r6 , s0
- add r0.w , r0.yyyy , r6.xxxx
- mad r2.xy , r7 , c43.zwzw , r3
- texldl r2 , r2 , s0
- mad r5.xy , r7 , c44 , r3
- texldl r5 , r5 , s0
- add r0.w , r0.wwww , r5.xxxx
- mad r4.xy , r7 , c44.zwzw , r3
- texldl r4 , r4 , s0
- add r0.w , r0.wwww , r4.xxxx
- mad r3.xy , r7 , c43 , r3
- texldl r3 , r3 , s0
- add r0.w , r0.wwww , r3.xxxx
- add r0.w , r2.xxxx , r0.wwww
- add r0.w , r1.xxxx , r0.wwww
- mul r0.y , r0.wwww , c41.zzzz
- endif
- endif
- else
- mov r0.w , r1.xxxx
- mov r0.y , r0.wwww
- endif
- add r0.w , -r0.yyyy , v2.wwww
- mad r2.w , r8.zzzz , r0.wwww , r0.yyyy
- else
- mov r2.w , v2.wwww
- endif
- mov r0.w , c36.zzzz
- add r0.y , r0.wwww , c24.xxxx
- mul r0.y , r0.yyyy , r0.yyyy
- add r0.w , r0.wwww , -c24.xxxx
- rcp r0.y , r0.yyyy
- mul r0.w , r0.wwww , r0.wwww
- mad r1.z , r0.wwww , -r0.yyyy , c36.zzzz
- mad r1.w , r8.wwww , c37.xxxx , c37.yyyy
- mul r1.z , r8.wwww , r1.zzzz
- rcp r1.x , c22.xxxx
- rcp r1.y , c23.xxxx
- mad r3.w , r0.wwww , r0.yyyy , r1.zzzz
- mad r0.xy , r0.xzzw , r1 , c36.xxxx
- texld r0 , r0 , s4
- mad r4.w , r0.yyyy , -c36.yyyy , c36.zzzz
- texld r0 , v1 , s1
- mul r0.xyz , r4.wwww , r0
- mul r2.xyz , r1.wwww , r0
- add r0.z , v3.wwww , v3.wwww
- mov r1.z , c39.yyyy
- max r0.w , -c32.yyyy , r1.zzzz
- rcp r3.z , r0.zzzz
- mul r4.xyz , r2 , r0.wwww
- mad r0.xy , v3 , r3.zzzz , c36.xxxx
- texld r0 , r0 , s3
- mad r1.xy , v3 , r3.zzzz , c37.zwzw
- texld r1 , r1 , s3
- add r1.xyz , r0 , r1
- mad r0.xy , v3 , r3.zzzz , c42
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c36.xwzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.zyzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c36.wwww
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.wzzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.xzzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c46
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.zzzz
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.yzzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c46.zxzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c46.wxzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c46.yxzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c36.wxzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.wxzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.xxxx
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c46.xwzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.zxzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.yxzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c37.zzzz
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.xwzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c46.xzzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c42.zwzw
- texld r0 , r0 , s3
- add r1.xyz , r1 , r0
- mad r0.xy , v3 , r3.zzzz , c37.wzzw
- texld r0 , r0 , s3
- add r3.xyz , r1 , r0
- texld r0 , v1 , s2
- mul r1.xyz , r4.wwww , r0
- mul r0.xyz , r4 , c33
- mul r3.xyz , r3 , r1
- mul r3.xyz , r3 , c28.xxxx
- mad r4.xyz , v2 , r7.zzzz , -c32
- mul r3.xyz , r3.wwww , r3
- dp3 r1.w , r4 , r4
- mul r3.xyz , r3 , c39.xxxx
- rsq r3.w , r1.wwww
- mov r1.w , c25.xxxx
- add r1.w , -r1.wwww , c26.xxxx
- mul r4.w , r4.yyyy , r3.wwww
- mad r3.w , r0.wwww , r1.wwww , c25.xxxx
- max r1.w , r4.wwww , c41.wwww
- mad r2.xyz , r2 , v0 , r3
- pow r0.w , r1.wwww , r3.wwww
- mad r0.xyz , r0 , r2.wwww , r2
- mul r1.xyz , r1 , r0.wwww
- mul r1.xyz , r1 , c33
- mul r0.w , c30.xxxx , c30.xxxx
- mul r1.xyz , r1 , c27.xxxx
- rcp r0.w , r0.wwww
- mad r1.xyz , r1 , r2.wwww , r0
- mul_sat r0.w , r7.wwww , r0.wwww
- cmp r1.xyz , c32.yyyy , r0 , r1
- mul r1.w , r0.wwww , c30.yyyy
- lrp r0.xyz , r1.wwww , c29 , r1
- mul_pp oC0.xyz , r0 , v4
- mov oC0.w , c36.zzzz
复制代码 这是 NFS Shift 运行的时候最长的 pixel shader asm 代码,使用 3DA 抓的,不过游戏在有 3DA 或者其他类似程序 hook 它的时候,渲染就不正确了,所以还不是很清楚正常情况下,上面的 pixel shader 就是游戏正常运行时候实际代码。 |
|