| .. | .. | 
|---|
| 12402 | 12402 |          String program = | 
|---|
| 12403 | 12403 |                  // Min shader | 
|---|
| 12404 | 12404 |                  "!!ARBfp1.0\n" + | 
|---|
| 12405 |  | -                "PARAM zero123      = { 0.0, 1.0, 2.0, 3.0 };" +  | 
|---|
 | 12405 | +                "PARAM zero123      = { 0.0, 1.0, 2.0, 1.25 };" +  | 
|---|
| 12406 | 12406 |                  "PARAM pow2      = { 0.5, 0.25, 0.125, 0.0 };" + | 
|---|
| 12407 | 12407 |                  "PARAM one      = { 1.0, 1.0, 1.0, 1.0 };" + | 
|---|
| 12408 | 12408 |                  "PARAM eps      = { 0.001, 0.001, 0.001, 1.0 };" + | 
|---|
| .. | .. | 
|---|
| 12433 | 12433 |                  "MAX ndotl.x, ndotl.x, pow2.y;" + | 
|---|
| 12434 | 12434 |                   | 
|---|
| 12435 | 12435 |                  "TEX temp, fragment.texcoord[0], texture[0], 2D;" + | 
|---|
 | 12436 | +                "LRP temp, zero123.w, temp, one;" + // texture proportion  | 
|---|
| 12436 | 12437 |                  "MUL temp, temp, ndotl.x;" + | 
|---|
| 12437 | 12438 |                   | 
|---|
| 12438 | 12439 |                  "MUL temp, temp, zero123.z;" + | 
|---|
| .. | .. | 
|---|
| 13396 | 13397 |          return "TEX " + dest + ", " + src + ", texture[" + unit + "], 2D;" + | 
|---|
| 13397 | 13398 |                  "SGE " + src + ".w, " + src + ".x, eps.x;" + | 
|---|
| 13398 | 13399 |                  "SGE " + src + ".z, " + src + ".y, eps.x;" + | 
|---|
 | 13400 | +                "SLT " + dest + ".x, " + src + ".x, one.x;" +  | 
|---|
 | 13401 | +                "SLT " + dest + ".y, " + src + ".y, one.x;" +  | 
|---|
| 13399 | 13402 |                  "MUL " + src + ".w, " + src + ".z, " + src + ".w;" + | 
|---|
| 13400 |  | -                "SLT " + src + ".z, " + src + ".x, one.x;" +  | 
|---|
| 13401 |  | -                "MUL " + src + ".w, " + src + ".z, " + src + ".w;" +  | 
|---|
| 13402 |  | -                "SLT " + src + ".z, " + src + ".y, one.x;" +  | 
|---|
| 13403 |  | -                "MUL " + src + ".w, " + src + ".z, " + src + ".w;" +  | 
|---|
 | 13403 | +                "MUL " + src + ".w, " + dest + ".x, " + src + ".w;" +  | 
|---|
 | 13404 | +                "MUL " + src + ".w, " + dest + ".y, " + src + ".w;" +  | 
|---|
| 13404 | 13405 |                  //"SWZ buffer, temp, w,w,w,w;"; | 
|---|
| 13405 |  | -                "MUL " + dest + ".z, " + dest + ".z, " + src + ".w;" +  | 
|---|
 | 13406 | +                //"MUL " + dest + ".z, " + dest + ".z, " + src + ".w;" +  | 
|---|
| 13406 | 13407 |                  "SUB " + src + ".z, " + "one.x, " + src + ".w;" + | 
|---|
| 13407 | 13408 |                  //"MUL " + src + ".z, " + src + ".z, infinity.x;" + | 
|---|
| 13408 | 13409 |                  //"ADD " + dest + ".z, " + dest + ".z, " + src + ".z;"; | 
|---|
| 13409 |  | -                "MAD " + dest + ".z, " + src + ".z, infinity.x," + dest + ".z;";  | 
|---|
 | 13410 | +                //"MAD " + dest + ".z, " + src + ".z, infinity.x," + dest + ".z;";  | 
|---|
| 13410 | 13411 |   | 
|---|
| 13411 |  | -    //"LRP " + dest + ".z, " + src + ".w," + dest + ".z, infinity.x;";  | 
|---|
| 13412 |  | -    //"LRP " + dest + ".z" + ", " + src + ".w, infinity.x," + dest + ".z;";  | 
|---|
 | 13412 | +    //?? "LRP " + dest + ".z, " + src + ".w," + dest + ".z, infinity.x;";  | 
|---|
 | 13413 | +    "LRP " + dest + ".z, " + src + ".z, infinity.x," + dest + ".z;";  | 
|---|
| 13413 | 13414 |      } | 
|---|
| 13414 | 13415 |   | 
|---|
| 13415 | 13416 |      String Shadow(String depth, String shadow) | 
|---|