0001: // ----------------------------------------------------------------------------
0002: //
0003: // sumie.psh
0004: //
0005: // Copyright (c) 2002 imagire takashi (imagire@gmail.com) All Rights Reserved.
0006: //
0007: // ----------------------------------------------------------------------------
0008: //
0009: // ; Result of Compile
0010: // ps.1.1
0011: //
0012: // def c0, 0.000000 0.000000 0.000000 0.150000
0013: //
0014: // ; Fetch texture color
0015: // tex t0 ; 0:0 0 0 1:0 1 0 2:0 0 0 3:0 0 0
0016: // tex t1 ; 0 1 0 0 0 0 0 0 0 0 0 0
0017: // tex t2 ; 0 0 0 0 0 0 1 0 0 0 0 1
0018: // tex t3
0019: //
0020: // add r1, t2, -t0
0021: // add r1, r1, t3
0022: // add r1, r1, -t0
0023: // add r1, r1, t1
0024: // add r1, r1, -t0
0025: // mul r1, c0.w, r1
0026: // add r0, r1, t0
0027:
0028: // ----------------------------------------------------------------------------
0029: // Input
0030: // ----------------------------------------------------------------------------
0031: #pragma bind v2f_simple.position = HPOS;
0032: #pragma bind v2f_simple.texcoord0 = TEX0;
0033: #pragma bind v2f_simple.texcoord1 = TEX1;
0034: #pragma bind v2f_simple.texcoord2 = TEX2;
0035: #pragma bind v2f_simple.texcoord3 = TEX3;
0036:
0037: struct v2f_simple : vertex2fragment {
0038: float4 position;
0039: float4 texcoord0;
0040: float4 texcoord1;
0041: float4 texcoord2;
0042: float4 texcoord3;
0043: };
0044:
0045: fragout main(v2f_simple I
0046: , uniform sampler2D tex0
0047: , uniform sampler2D tex1
0048: , uniform sampler2D tex2
0049: , uniform sampler2D tex3
0050: ) {
0051: fragout O;
0052:
0053: // Fetch texture color
0054: float4 t0 = tex2D(tex0);
0055: float4 t1 = tex2D(tex1);
0056: float4 t2 = tex2D(tex2);
0057: float4 t3 = tex2D(tex3);
0058:
0059: O.col = 0.15f*(t2-t0+t3-t0+t1-t0)+t0;
0060:
0061: return O;
0062: }
0063:
0064: