Show More
Commit Description:
Various UI improvements.
Commit Description:
Various UI improvements.
References:
File last commit:
Show/Diff file:
Action:
FNA/lib/MojoShader/tests/1.vsh
110 lines | 1.7 KiB | text/plain | TextLexer
110 lines | 1.7 KiB | text/plain | TextLexer
r0 | vs_3_sw | |||
def c3056, 1, 2, 3, 4 | ||||
dcl_position v0 | ||||
dcl_normal v1 | ||||
dcl_normal1 v3 | ||||
dcl_color4 o3.x | ||||
dcl_texcoord3 o3.yz | ||||
dcl_fog o3.w | ||||
dcl_tangent o4.xyz | ||||
dcl_position o7.xyzw | ||||
dcl_psize o6 | ||||
#define oPos o7 | ||||
#define oD0 o3 | ||||
def c76, -10.0e5, 2.0e4, 3.3e2, 4.4 | ||||
def c15, 1, 2, 3, 4 | ||||
defi i1, 1, 2, 3,0 | ||||
defb b11, true | ||||
defb b12, false | ||||
if_le v0.x, v1.y | ||||
nop | ||||
else | ||||
nop | ||||
endif | ||||
mova a0.yw, v0.argb | ||||
loop aL, i1 | ||||
nop | ||||
break_le v1.x, r0.y | ||||
breakp !p0.y | ||||
nop | ||||
endloop | ||||
; Decompress position | ||||
mov r0.x, v0.x | ||||
mov r0.y, c4.w ; 1 | ||||
mov r0.z, v0.y | ||||
mov r0.w, c4.w ; 1 | ||||
setp_ge p0.yz, v1, v1 | ||||
callnz l1, b11 | ||||
callnz l1, !p0.w | ||||
if !p0.z | ||||
m3x2 r0.xy, r1, c0 ;which will be expanded to: | ||||
else | ||||
nop | ||||
endif | ||||
call l1 | ||||
; Debug code [start] | ||||
ret | ||||
label l1 | ||||
m3x2 r0.xy, r1, c0 ;which will be expanded to: | ||||
mov r0, r0.xz | ||||
; Debug code [end] | ||||
; Compute theta from distance and time | ||||
mov r4.xz, r0 ; xz | ||||
mov r4.y, c4.y ; y = 0 | ||||
dp3 r4.x, r4, r4 ; d2 | ||||
rsq r4.x, r4.x | ||||
rcp r4.x, r4.x ; d | ||||
mul r4.xyz, r4, c4.x ; scale by time | ||||
; Clamp theta to -pi..pi | ||||
add r4.x, r4.x, c7.x | ||||
mul r4.x, r4.x, c7.y | ||||
frc r4.xy, r4.x | ||||
mul r4.x, r4.x, c7.z | ||||
add r4.x, r4.x,-c7.x | ||||
; Compute first 4 values in sin and cos series | ||||
mov r5.x, c4.w ; d^0 | ||||
mov r4.x, r4.x ; d^1 | ||||
mul r5.y, r4.x, r4.x ; d^2 | ||||
mul r4.y, r4.x, r5.y ; d^3 | ||||
mul r5.z, r5.y, r5.y ; d^4 | ||||
mul r4.z, r4.x, r5.z ; d^5 | ||||
mul r5.w, r5.y, r5.z ; d^6 | ||||
mul r4.w, r4.x, r5.w ; d^7 | ||||
mul r4, r4, c10 ; sin | ||||
dp4 r4.x, r4, c4.w | ||||
mul r5, r5, c11 ; cos | ||||
dp4 r5.x, r5, c4.w | ||||
; Set color | ||||
add r5.x, -r5.x, c4.w ; + 1.0 | ||||
mul oD0, r5.x, c4.z ; * 0.5 | ||||
; Scale height | ||||
mul r0.y, r4.x, c7.w | ||||
; Transform position | ||||
dp4 oPos.x, r0, c0 | ||||
dp4 oPos.y, r0, c1 | ||||
dp4 oPos.z, r0, c2 | ||||
dp4 oPos.w, r0, c3 | ||||
ret | ||||