www.pudn.com > DemoFluid2D.zip > smAdvect2D.psh
!!FP1.0
#2d FLUID ADVECT
DECLARE TexPARA = {0,0,0,0};
#Velocity[J][I]--Tex0
FLR R2, f[WPOS];
TEX R0, R2, TEX0, RECT;
MUL R0, R0.xyxy, TexPARA.xyxy;
SUB R1, R2.xyxy, R0;
#R1---X
#R0---Floor(X)
FLR R0, R1;
ADD R0, R0, {0,0,1,1};
SUB R1, R1, R0;
#interpolate 4 nodes together
#(i0,j0)-->R2
TEX R2, R0.xyww, TEX1, RECT;
#(i0,j1)-->R3
TEX R3, R0.xwww, TEX1, RECT;
LRP R4, R1.yyyy, R3, R2;
#(i1,j0)-->R2
TEX R2, R0.zyww, TEX1, RECT;
#(i1,j1)-->R3
TEX R3, R0.zwww, TEX1, RECT;
LRP R3, R1.yyyy, R3, R2;
LRP R3, R1.xxxx, R3, R4;
#import the boundary condition
TEX R1, f[WPOS], TEX2, RECT;
#old velocity
TEX R2, f[WPOS], TEX1, RECT;
MOV R2.zw, R3;
LRP o[COLR], R1.wwww, R3, R2;
END