diff options
Diffstat (limited to 'packages/noncvs/windows/extra/Gem/examples/data/random.fp')
-rw-r--r-- | packages/noncvs/windows/extra/Gem/examples/data/random.fp | 222 |
1 files changed, 111 insertions, 111 deletions
diff --git a/packages/noncvs/windows/extra/Gem/examples/data/random.fp b/packages/noncvs/windows/extra/Gem/examples/data/random.fp index 651fdeb5..ae97a4fc 100644 --- a/packages/noncvs/windows/extra/Gem/examples/data/random.fp +++ b/packages/noncvs/windows/extra/Gem/examples/data/random.fp @@ -1,111 +1,111 @@ -!!ARBfp1.0 -# Based on an algorithm described by Francois Grieu, sci.crypt, 5th February 2004 -#ATTRIB tex0 = fragment.texcoord[0]; -ATTRIB tex0 = fragment.position; -ATTRIB col = fragment.color; - -#PARAM bounds = program.local[1]; -#PARAM seed = program.local[2]; -PARAM bounds = 10.0; -PARAM seed = 1234; -PARAM coordsOffset = { -100, 100, 0, 0 }; -PARAM cMult = 0.0001002707309736288; -PARAM aSubtract = 0.2727272727272727; -PARAM coordMult0 = { 0.67676, 0.000058758, 0, 0 }; -PARAM coordMult1 = { 0.0000696596, 0.797976, 0, 0 }; -PARAM coordMult2 = { 0.587976, 0.0000233443, 0, 0 }; - -TEMP tableCoord, a, b, c, floorA, seedCoords, res; - -ADD seedCoords, tex0, coordsOffset; - -# gFastRngA = (((currentX*multX)/(currentY*multY))+ -MUL tableCoord, seedCoords, coordMult0; -RCP tableCoord.y, tableCoord.y; -MUL a.x, tableCoord.x, tableCoord.y; - -# (((height-currentY)*multX2)/((width-currentX)*multY2))+ -SUB tableCoord, bounds, seedCoords; -MUL tableCoord, tableCoord, coordMult1; -RCP tableCoord.x, tableCoord.x; -MAD a.x, tableCoord.x, tableCoord.y, a.x; - -# (((height-currentX)*multX3)/((width-currentY)*multY3))); -SUB tableCoord.x, bounds.y, seedCoords.x; -SUB tableCoord.y, bounds.x, seedCoords.y; -MUL tableCoord, tableCoord, coordMult2; -RCP tableCoord.y, tableCoord.y; -MAD a.x, tableCoord.x, tableCoord.y, a.x; - -# gFastRngA = fmod(gFastRngA,1); -FRC a.x, a.x; -ADD a.x, a.x, seed; - -MOV c.x, 0; -MOV b.x, 0; - -# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) -FRC floorA.x, a.x; -SUB floorA.x, a.x, floorA.x; -SUB floorA.x, aSubtract.x, floorA.x; -ADD floorA.x, floorA.x, a.x; -MAD a.x, c.x, cMult.x, floorA.x; - -# (gFastRngB += (gFastRngA *= gFastRngA)) -MUL a.x, a.x, a.x; -ADD b.x, b.x, a.x; - -# (gFastRngC += (gFastRngB -= floor(gFastRngB))) -FRC b.x, b.x; -ADD c.x, c.x, b.x; - -# (gFastRngC -= floor(gFastRngC)) -FRC c.x, c.x; - -# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) -FRC floorA.x, a.x; -SUB floorA.x, a.x, floorA.x; -SUB floorA.x, aSubtract.x, floorA.x; -ADD floorA.x, floorA.x, a.x; -MAD a.x, c.x, cMult.x, floorA.x; - -# (gFastRngB += (gFastRngA *= gFastRngA)) -MUL a.x, a.x, a.x; -ADD b.x, b.x, a.x; - -# (gFastRngC += (gFastRngB -= floor(gFastRngB))) -FRC b.x, b.x; -ADD c.x, c.x, b.x; - -# (gFastRngC -= floor(gFastRngC)) -FRC c.x, c.x; - -# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) -FRC floorA.x, a.x; -SUB floorA.x, a.x, floorA.x; -SUB floorA.x, aSubtract.x, floorA.x; -ADD floorA.x, floorA.x, a.x; -MAD a.x, c.x, cMult.x, floorA.x; - -# (gFastRngB += (gFastRngA *= gFastRngA)) -MUL a.x, a.x, a.x; -ADD b.x, b.x, a.x; - -# (gFastRngC += (gFastRngB -= floor(gFastRngB))) -FRC b.x, b.x; -ADD c.x, c.x, b.x; - -# (gFastRngC -= floor(gFastRngC)) -FRC c.x, c.x; - - -MOV res, c.x; -MOV res.a, 1; - -MUL res, res, -0.5; - -ADD res, res, col; - -MOV result.color, res; - -END +!!ARBfp1.0
+# Based on an algorithm described by Francois Grieu, sci.crypt, 5th February 2004
+#ATTRIB tex0 = fragment.texcoord[0];
+ATTRIB tex0 = fragment.position;
+ATTRIB col = fragment.color;
+
+#PARAM bounds = program.local[1];
+#PARAM seed = program.local[2];
+PARAM bounds = 10.0;
+PARAM seed = 1234;
+PARAM coordsOffset = { -100, 100, 0, 0 };
+PARAM cMult = 0.0001002707309736288;
+PARAM aSubtract = 0.2727272727272727;
+PARAM coordMult0 = { 0.67676, 0.000058758, 0, 0 };
+PARAM coordMult1 = { 0.0000696596, 0.797976, 0, 0 };
+PARAM coordMult2 = { 0.587976, 0.0000233443, 0, 0 };
+
+TEMP tableCoord, a, b, c, floorA, seedCoords, res;
+
+ADD seedCoords, tex0, coordsOffset;
+
+# gFastRngA = (((currentX*multX)/(currentY*multY))+
+MUL tableCoord, seedCoords, coordMult0;
+RCP tableCoord.y, tableCoord.y;
+MUL a.x, tableCoord.x, tableCoord.y;
+
+# (((height-currentY)*multX2)/((width-currentX)*multY2))+
+SUB tableCoord, bounds, seedCoords;
+MUL tableCoord, tableCoord, coordMult1;
+RCP tableCoord.x, tableCoord.x;
+MAD a.x, tableCoord.x, tableCoord.y, a.x;
+
+# (((height-currentX)*multX3)/((width-currentY)*multY3)));
+SUB tableCoord.x, bounds.y, seedCoords.x;
+SUB tableCoord.y, bounds.x, seedCoords.y;
+MUL tableCoord, tableCoord, coordMult2;
+RCP tableCoord.y, tableCoord.y;
+MAD a.x, tableCoord.x, tableCoord.y, a.x;
+
+# gFastRngA = fmod(gFastRngA,1);
+FRC a.x, a.x;
+ADD a.x, a.x, seed;
+
+MOV c.x, 0;
+MOV b.x, 0;
+
+# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA))
+FRC floorA.x, a.x;
+SUB floorA.x, a.x, floorA.x;
+SUB floorA.x, aSubtract.x, floorA.x;
+ADD floorA.x, floorA.x, a.x;
+MAD a.x, c.x, cMult.x, floorA.x;
+
+# (gFastRngB += (gFastRngA *= gFastRngA))
+MUL a.x, a.x, a.x;
+ADD b.x, b.x, a.x;
+
+# (gFastRngC += (gFastRngB -= floor(gFastRngB)))
+FRC b.x, b.x;
+ADD c.x, c.x, b.x;
+
+# (gFastRngC -= floor(gFastRngC))
+FRC c.x, c.x;
+
+# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA))
+FRC floorA.x, a.x;
+SUB floorA.x, a.x, floorA.x;
+SUB floorA.x, aSubtract.x, floorA.x;
+ADD floorA.x, floorA.x, a.x;
+MAD a.x, c.x, cMult.x, floorA.x;
+
+# (gFastRngB += (gFastRngA *= gFastRngA))
+MUL a.x, a.x, a.x;
+ADD b.x, b.x, a.x;
+
+# (gFastRngC += (gFastRngB -= floor(gFastRngB)))
+FRC b.x, b.x;
+ADD c.x, c.x, b.x;
+
+# (gFastRngC -= floor(gFastRngC))
+FRC c.x, c.x;
+
+# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA))
+FRC floorA.x, a.x;
+SUB floorA.x, a.x, floorA.x;
+SUB floorA.x, aSubtract.x, floorA.x;
+ADD floorA.x, floorA.x, a.x;
+MAD a.x, c.x, cMult.x, floorA.x;
+
+# (gFastRngB += (gFastRngA *= gFastRngA))
+MUL a.x, a.x, a.x;
+ADD b.x, b.x, a.x;
+
+# (gFastRngC += (gFastRngB -= floor(gFastRngB)))
+FRC b.x, b.x;
+ADD c.x, c.x, b.x;
+
+# (gFastRngC -= floor(gFastRngC))
+FRC c.x, c.x;
+
+
+MOV res, c.x;
+MOV res.a, 1;
+
+MUL res, res, -0.5;
+
+ADD res, res, col;
+
+MOV result.color, res;
+
+END
|