<apExProject>
  <rendertarget>
    <GUID>B804E9F623AABCBA232F247216EE216B</GUID>
    <Name>Backbuffer</Name>
  
    <ResolutionDescriptor>128</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>0</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>A277553146FC64CF028CD78429CB0C26</GUID>
    <Name>NormalZ</Name>
  
    <ResolutionDescriptor>128</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>0</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>66B8BAA646D228338C523F1351543A11</GUID>
    <Name>Back X/2 Y/1</Name>
  
    <ResolutionDescriptor>136</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>1</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>ABE9AC938257A0207A4C164AF72306A0</GUID>
    <Name>Back X/2 Y/2</Name>
  
    <ResolutionDescriptor>137</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>1</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>672E7FB08DEB05C9B52B4F78FC2B30F4</GUID>
    <Name>Back X/4 Y/2</Name>
  
    <ResolutionDescriptor>145</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>1</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>290A7AC85C535BCB4E3FA01128C3433B</GUID>
    <Name>Back X/4 Y/4</Name>
  
    <ResolutionDescriptor>147</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>1</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>BE215926557E4997FE98ABB3D6817364</GUID>
    <Name>Back X/8 Y/4</Name>
  
    <ResolutionDescriptor>154</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>1</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>D2375BBF84EB0121216AE6397E0E31C4</GUID>
    <Name>Back X/8 Y/8</Name>
  
    <ResolutionDescriptor>155</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>1</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>9DE2A20DCA6371A7D7731C30E7A870A1</GUID>
    <Name>Internal</Name>
  
    <ResolutionDescriptor>128</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>1</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>89B6D1BE3363599A89BCE8D9B4012C76</GUID>
    <Name>Internal 2</Name>
  
    <ResolutionDescriptor>128</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>1</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <rendertarget>
    <GUID>72EBFB38C3A8BCE58CC7DD09BEC554F8</GUID>
    <Name>Temp 1</Name>
  
    <ResolutionDescriptor>128</ResolutionDescriptor>
  
    <ZResolution>0</ZResolution>
  
    <HiddenFromTimeline>0</HiddenFromTimeline>
    <PixelFormat>0</PixelFormat></rendertarget>

  <renderlayer>
    <GUID>0B660A129B4CFDA2A5A2D3E4E0949FA6</GUID>
    <Name>Solid Layer</Name>
    <OmitDepthBuffer>0</OmitDepthBuffer>
    <Voxelizer>0</Voxelizer>
    <Pickable>1</Pickable>
    <RenderTarget>B804E9F623AABCBA232F247216EE216B</RenderTarget>
    <RenderTarget>A277553146FC64CF028CD78429CB0C26</RenderTarget></renderlayer>

  <rendertechnique>
    <GUID>2EC2AE23E3AA634D2FD7277D3C18D797</GUID>
    <Name>[Base Material]</Name>
    <Type>0</Type>
    <TargetLayer>0B660A129B4CFDA2A5A2D3E4E0949FA6</TargetLayer>
  
    <Pass>
      <Name>Solid Pass</Name>
      <Code>Texture2D t_0:register(t0);
Texture2D t_1:register(t1);
Texture2D t_2:register(t2);
SamplerState Sampler:register(s0);

struct lightdata
{
	float4 pos;
	float4 ambient;
	float4 diffuse;
	float4 specular;
	float4 spotdirection;
	float4 sda;
};

cbuffer b : register(b0)
{
	float4x4 viewmat;
	float4x4 projmat;
	float4 campos;
	float4 lightcount;
	lightdata lights[8];
}

cbuffer c : register(b1)
{
	float4x4 worldmat;
	float4x4 itworldmat;
	float4 specularcolor;
	float4 specularpower;
}

struct VSIN
{
	float3 Position : POSITION0;
	float3 Position2: POSITION1;
	float3 Normal : NORMAL0;
	float4 Color : COLOR0;
	float4 UV : TEXCOORD0;
	float4 UV2: TEXCOORD1;
};

struct VSOUT
{
	float4 Position : SV_POSITION;
	float3 Normal: TEXCOORD1;
	float2 uv:TEXCOORD0;
	float3 p:TEXCOORD2;
};

VSOUT v(VSIN x)
{
	VSOUT k;
	
	k.p=mul(worldmat,float4(x.Position,1)).xyz;
	k.Normal=mul(itworldmat,float4(x.Normal,0)).xyz;

	k.Position=mul(projmat,mul(viewmat,float4(k.p,1)));
	//k.p-=campos.xyz;

	k.uv=x.UV.xy;

	return k;
}

float4 getenvmap(VSOUT v)
{
	float3 r=reflect(normalize(mul(viewmat,float4(v.p,1)).xyz),
                     normalize(mul(viewmat,float4(v.Normal,0)).xyz));
	float m = 2.0 * sqrt( r.x*r.x + r.y*r.y + (r.z+1.0)*(r.z+1.0) );
	float2 env=r.xy/m+0.5;
	return t_1.Sample(Sampler,env);
}

float3 calculatespecular(float3 po, float3 n, float3 lightdir)
{	//blinn-phong
    float3 H=normalize(-normalize(po)+normalize(lightdir));
	//float3 incoming=reflect(lightdir,H);

	return pow(saturate(dot(normalize(n),H)),40);
}

float3 lighting(float3 diff, float3 pos, float3 normal)
{
	float3 result=0;
	for (int x=0; x&lt;lightcount[0]; x++)
	{
		lightdata l=lights[x];
		float3 dir;
		float dist;
		float spotcutoff=1;
		if (l.pos.w)
		{
			dir=l.pos.xyz-pos;
			dist=length(dir);
			dir/=dist;
			if (l.sda.y)
			{
				spotcutoff=dot(-l.spotdirection.xyz,dir);
				spotcutoff=(spotcutoff-l.sda.y)/(1-l.sda.y);
				//return spotcutoff;
				if (spotcutoff&gt;0)
					spotcutoff=pow(abs(saturate(spotcutoff)),l.sda.x);
				else spotcutoff=0;
			}
		}
		else
		{
			dir=normalize(l.pos.xyz);
			dist=0;
		}
    	float3 H=normalize(-normalize(pos-campos.xyz)+dir.xyz);

		float3 ambient=l.ambient.xyz;
		float3 diffuse=l.diffuse.xyz*saturate(dot(dir,normal))*spotcutoff;
		float3 specular=l.specular.xyz*spotcutoff*
						pow(saturate(dot(normal,H)),1/(specularpower.x+0.000001));
		float att=1+dist*(l.sda.z+l.sda.w*l.sda.w);

		result+=(diff*ambient+diff*diffuse+specular*specularcolor.xyz)/att;
	}
	return result;
}

float3 perturb_normal(float3 N, float3 p, float2 uv)
{
    float3 dp1 = ddx( p );
    float3 dp2 = ddy( p );
    float2 duv1 = ddx( uv );
    float2 duv2 = ddy( uv );
 
    // solve the linear system
    float3 dp2perp = cross( dp2, N );
    float3 dp1perp = cross( N, dp1 );
    float3 T = dp2perp * duv1.x + dp1perp * duv2.x;
    float3 B = dp2perp * duv1.y + dp1perp * duv2.y;
 
    // construct a scale-invariant frame 
    float invmax = rsqrt( max( dot(T,T), dot(B,B) ) );

	float3x3 tangentFrame=float3x3( T * invmax, B * invmax, N );
	float3 map = t_2.Sample(Sampler, uv ).xyz;
	
	if (dot(map,map)==0) map=float3(0.5,0.5,1); //hack to fix not selected texture
	
	map=map*2-1;
	
	return normalize( mul( map, tangentFrame ) );
}

struct PSOUT
{
	float4 c:SV_TARGET0;
	float4 nz:SV_TARGET1;
};

PSOUT p(VSOUT v)
{ 
	float normmult=1;
	if (specularpower.y&gt;0.5) normmult=-1;
	
	float3 normal=perturb_normal(normalize(v.Normal)*normmult,v.p,v.uv.xy);
	
	float4 tc=t_0.Sample(Sampler,v.uv.xy);
	float3 env=getenvmap(v).xyz;
	
	PSOUT p;
	p.c.xyz=lighting(tc.xyz+env,v.p,normal);
	p.c.w=tc.w;
	p.nz.xyz=normal;
	p.nz.w=0;
	
	return p;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>8B8A33FF2B0E726DDD928D6754D0C3BE</GUID>
        <Name>Texture</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      
        <TextureGUID>424E67D15B7CF2FA427248CD96738079</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>60D36B9B1E2FC14A3AE82401A0380F09</GUID>
        <Name>Envmap</Name>
      
        <Scope>1</Scope>
      
        <Type>8</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      
        <TextureGUID>NONENONENONENONENONENONENONENONE</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>6DD97B71C15690B7FBFE0F10E38F7183</GUID>
        <Name>NormalMap</Name>
      
        <Scope>1</Scope>
      
        <Type>9</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>C94EAD9FCB9959481CF00497D6AF790F</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>2EC96BF15C044BADD08ED544F29357E9</GUID>
        <Name>Specular Color</Name>
      
        <Scope>1</Scope>
      
        <Type>1</Type>
      
        <Value>AACAPwAAgD8AAIA/AACAPw==</Value>
      
        <DefaultValue>AACAPwAAgD8AAIA/AACAPw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>9178888EFE6DA3ADF1608D6B34F67F3E</GUID>
        <Name>Specular</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>4eDgPAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>4eDgPAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>661B7206873613BD6B1FC5B0F2507399</GUID>
        <Name>Invert Normals</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>AACAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>0C49E60577805ED5575956E51B068058</GUID>
        <Name>Culling</Name>
      
        <Scope>1</Scope>
      
        <Type>5</Type>
      
        <Value>AQAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AwAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>A2ADA781DC8D5CC56F03406A1763606C</GUID>
        <Name>ZMode</Name>
      
        <Scope>1</Scope>
      
        <Type>2</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>3FFF1538DC7EC0DA6733724C0BA075CB</GUID>
        <Name>Render Priority</Name>
      
        <Scope>1</Scope>
      
        <Type>6</Type>
      
        <Value>fwAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>fwAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>EC7AB2D739B31F05173BDE45C0D35EBF</GUID>
        <Name>Blending</Name>
      
        <Scope>1</Scope>
      
        <Type>15</Type>
      
        <Value>AQAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AQAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>5247EBE22E9C40E3FB00E44BE3EDB6EF</GUID>
    <Name>Chromatic Aberration</Name>
    <Type>2</Type>
    <TargetLayer>NONENONENONENONENONENONENONENONE</TargetLayer>
  
    <Pass>
      <Name>New Pass</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
	float t,aspect,xres,yres;
}

cbuffer c : register(b1)
{
	float power;
	float samplecnt;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float count=samplecnt*255;

	float2 dirr=(0.5-t);
	float2 dirb=dirr;
	float4 col=Textur.Sample(sm,t);
	float4 r=0;
	float4 b=0;
	for (int x=0; x&lt;count; x++)
	{
 		r+=Textur.Sample(sm,t-dirr*x/200.0f*power);
 		b+=Textur.Sample(sm,t+dirb*x/200.0f*power);
	}

	col.x=r.x/count;
	col.z=b.z/count;

	return col;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>A0BD031ED32C7A1A4E800945A8338AB3</GUID>
        <Name>Input</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>OM6WAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>OM6WAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>9DE2A20DCA6371A7D7731C30E7A870A1</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>18C2BDC7B442D3DDB039BD6BED5B4C04</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>1</Scope>
      
        <Type>23</Type>
      
        <Value>KNuWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>KNuWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>B804E9F623AABCBA232F247216EE216B</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>91255282F27FC5D26806E934D6D166B2</GUID>
        <Name>Power</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>nZycPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>zcxMPgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>08822755AC7C86D9EAB4C307C6B4F8D0</GUID>
        <Name>Samplecount</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>kZCQPQAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>kZCQPQAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>E29A95A4D3FD630C418CF73778137606</GUID>
    <Name>Colored Texture</Name>
    <Type>0</Type>
    <TargetLayer>0B660A129B4CFDA2A5A2D3E4E0949FA6</TargetLayer>
  
    <Pass>
      <Name>New Pass</Name>
      <Code>Texture2D t_0:register(t0);
SamplerState Sampler:register(s0);

cbuffer b : register(b0)
{
	float4x4 viewmat;
	float4x4 projmat;
	float4 campos;
}

cbuffer c : register(b1)
{
	float4x4 worldmat;
	float4x4 itworldmat;
	float4 color;
	float alphatest;
}

struct VSIN
{
	float3 Position : POSITION0;
	float3 Position2: POSITION1;
	float3 Normal : NORMAL0;
	float4 Color : COLOR0;
	float4 UV : TEXCOORD0;
	float4 UV2: TEXCOORD1;
};

struct VSOUT
{
	float4 Position : SV_POSITION;
	float3 Normal: TEXCOORD1;
	float2 uv:TEXCOORD0;
	float3 p:TEXCOORD2;
};

struct PSOUT
{
	float4 Color:SV_TARGET0;
	float4 NormalZ:SV_TARGET1;
};

VSOUT v(VSIN x)
{
	VSOUT k;

	k.p=mul(worldmat,float4(x.Position,1)).xyz;
	k.Position=mul(projmat,mul(viewmat,float4(k.p,1)));

	k.uv=x.UV.xy;
	k.Normal=0;
	return k;
}

PSOUT p(VSOUT v)
{
	float4 t=t_0.Sample(Sampler,v.uv.xy);
	if (alphatest&gt;t.a*255/256.0) discard;

	PSOUT o;
	o.Color=t*color;
	o.NormalZ.xyz=normalize(v.Normal);
	o.NormalZ=mul(viewmat,float4(v.p,1)).z;
	return o;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>F6A1FAE63E1D9AFF3CC77BB727475DAC</GUID>
        <Name>Texture</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      
        <TextureGUID>CA6128FA9CB4BD2DC5837065C113AD02</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>FA7D6F80E43F84F2F179364DD26A510F</GUID>
        <Name>Color</Name>
      
        <Scope>1</Scope>
      
        <Type>1</Type>
      
        <Value>AACAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AACAPwAAgD8AAIA/AACAPw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>6CCC876B752C32F1E3FB58525273BDEB</GUID>
        <Name>Cullmode</Name>
      
        <Scope>1</Scope>
      
        <Type>5</Type>
      
        <Value>AwAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AwAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>769B9183B0BCB2CDB21153B55233C194</GUID>
        <Name>Zmode</Name>
      
        <Scope>1</Scope>
      
        <Type>2</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>EBD1F97CAB311067A61F36467C5A39B6</GUID>
        <Name>BlendMode</Name>
      
        <Scope>1</Scope>
      
        <Type>15</Type>
      
        <Value>AQAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AQAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>1C1EC3A5D789F2E071A414B31E27A8B1</GUID>
        <Name>AlphaTest</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>6FF5D701CFEA9FBEDDCBFAA3905EE337</GUID>
        <Name>Render Priority</Name>
      
        <Scope>1</Scope>
      
        <Type>6</Type>
      
        <Value>fwAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>fwAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>3826A688B4578BD29E77B3D829A99798</GUID>
    <Name>Combine</Name>
    <Type>2</Type>
    <TargetLayer>NONENONENONENONENONENONENONENONE</TargetLayer>
  
    <Pass>
      <Name>New Pass</Name>
      <Code>SamplerState sm:register(s0);
Texture2D i1:register(t0);
Texture2D i2:register(t1);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float4 type;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float4 v1=i1.Sample(sm,t);
	float4 v2=i2.Sample(sm,t);
	int Type=type.x*255+0.5;
	
	float4 r=v1+v2;
	if (Type==1) r=v1-v2;
	if (Type==2) r=v1*v2;
	if (Type==3) r=v1*(1-v2.w)+v2*v2.w;
	if (Type==4) r=min(v1,v2);
	if (Type==5) r=max(v1,v2);
	if (Type==6) r=v1/(1-v2);
	if (Type==7) r=1-(1-v1)/v2;
	if (Type==8) r=1-(1-v1)*(1-v2);
	if (Type==9) r=lerp(1-2*(1-v1)*(1-v2),2*v1*v2,v1&lt;0.5);	
	
	return r;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>C0965B34AB0F2D55C3EDE3C80A4D5BE7</GUID>
        <Name>Type</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>FE7A15BB4434AA4861D227EE1CC4FB92</GUID>
        <Name>Input 1</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>NONENONENONENONENONENONENONENONE</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>B2CD6DB18DA9C9D42BB806AAF2832142</GUID>
        <Name>Input 2</Name>
      
        <Scope>1</Scope>
      
        <Type>8</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>NONENONENONENONENONENONENONENONE</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>1D5A65A54047510BBAB6A03EEB482046</GUID>
        <Name>Target</Name>
      
        <Scope>1</Scope>
      
        <Type>23</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>NONENONENONENONENONENONENONENONE</TextureGUID>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>FC4B0E596FDD0B25CB581741643997D8</GUID>
    <Name>Copy To Rendertarget</Name>
    <Type>2</Type>
    <TargetLayer>NONENONENONENONENONENONENONENONE</TargetLayer>
  
    <Pass>
      <Name>Copy</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
  return Textur.Sample(sm,t.xy);
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>05724443836EAEEAD74F7F1A06A83EDC</GUID>
        <Name>Input</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>NONENONENONENONENONENONENONENONE</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>D351A482D43154495296701CADA455D2</GUID>
        <Name>rebderTarget</Name>
      
        <Scope>1</Scope>
      
        <Type>23</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>NONENONENONENONENONENONENONENONE</TextureGUID>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>D9BCB25B70726C223C6F5F322777287C</GUID>
    <Name>Default Particle</Name>
    <Type>3</Type>
    <TargetLayer>0B660A129B4CFDA2A5A2D3E4E0949FA6</TargetLayer>
  
    <Pass>
      <Name>Particle pass</Name>
      <Code>Texture2D t_0:register(t0);
Texture2D t_1:register(t1);
SamplerState Sampler:register(s0);
SamplerState Smp:register(s1);

cbuffer b : register(b0)
{
	float4x4 viewmat;
	float4x4 projmat;
	float4 campos;
}

cbuffer c : register(b1)
{
	float4x4 worldmat;
	float4x4 itworldmat;
	float4 color;
	float alphatest;
}

struct VSIN
{
	float4 Position : POSITION0;
	float4 Data : TEXCOORD0;
};

struct VSOUT
{
	float4 Position : SV_POSITION;
	float4 Color:TEXCOORD0;
	float4 Data:TEXCOORD1;
	float4 Size:TEXCOORD2;
};

struct GSOUT
{
	float4 Position : SV_POSITION;
	float2 UV : TEXCOORD0;
	float4 Data:TEXCOORD1;
	float4 Color:TEXCOORD2;
};

[maxvertexcount(4)]
void g(point VSOUT input[1], inout TriangleStream&lt;GSOUT&gt; OutputStream)
{
	float4 p=input[0].Position;
	float4 scale=0.1*input[0].Size.x;
	float r=0.1*input[0].Data.y;
	float4 x=float4(sin(r),cos(r),0,0);
	float4 y=float4(-x.y,x.x,0,0);

	GSOUT vx[4];

	vx[0].Position=mul(projmat,p+(-x-y)*scale);
	vx[0].UV=float2(1,1);
	vx[1].Position=mul(projmat,p+(x-y)*scale);
	vx[1].UV=float2(1,0);
	vx[2].Position=mul(projmat,p+(x+y)*scale);
	vx[2].UV=float2(0,0);
	vx[3].Position=mul(projmat,p+(-x+y)*scale);
	vx[3].UV=float2(0,1);
	
	vx[0].Data=vx[1].Data=vx[2].Data=vx[3].Data=input[0].Data;
	vx[0].Color=vx[1].Color=vx[2].Color=vx[3].Color=input[0].Color;

	OutputStream.Append(vx[3]);
	OutputStream.Append(vx[0]);
	OutputStream.Append(vx[2]);
	OutputStream.Append(vx[1]);

	OutputStream.RestartStrip();	
}

float pdata(int id, float l)
{
	return t_0.SampleLevel(Smp,float2(1-l,(id+0.5f)/10.0f), 0).x;
}

float GetNoise(float tin)
{
 return frac(sin(tin*54.37)*17593.1317);
}

float pdatachaos(int id, int cid, float c, float l)
{
	return pdata(id,l)+pdata(cid,l)*GetNoise(c+cid);
}

VSOUT v(VSIN x)
{
	VSOUT k;

	k.Position=mul(viewmat,x.Position);

	k.Data=x.Data;
	k.Color.x=pdatachaos(0,5,x.Data.z,x.Data.x);
	k.Color.y=pdatachaos(1,6,x.Data.z,x.Data.x);
	k.Color.z=pdatachaos(2,7,x.Data.z,x.Data.x);
	k.Color.w=pdatachaos(3,8,x.Data.z,x.Data.x);
	k.Size=pdatachaos(4,9,x.Data.z,x.Data.x);
	return k;
}

float4 p(GSOUT v) : SV_TARGET0
{
	return v.Color*t_1.Sample(Sampler,v.UV);// v.UV.xyxy;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>21804F8A15EED15B9F3461E5108EA527</GUID>
        <Name>Culling</Name>
      
        <Scope>0</Scope>
      
        <Type>5</Type>
      
        <Value>AQAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>D718FFA06E9C1B9191BA62205F29CD51</GUID>
        <Name>Z mode</Name>
      
        <Scope>1</Scope>
      
        <Type>2</Type>
      
        <Value>AgAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AgAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>E8F2764E64204DE510CBA2CA47F3ADA2</GUID>
        <Name>Blending</Name>
      
        <Scope>1</Scope>
      
        <Type>15</Type>
      
        <Value>VAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>VAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>898C7D2ADEA9EA9876C2729200AFC8D6</GUID>
        <Name>Texture</Name>
      
        <Scope>1</Scope>
      
        <Type>8</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>5AA7099D86F16062D2023D086D62B540</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>86C8C380A01ADAAF2341241322DCB75E</GUID>
        <Name>Red</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AACAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AACAPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>7981A98594F21F0753ACD1921DDB2EAD</GUID>
        <Name>Green</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AACAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AACAPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>A34D02E2C9BF19BE92547FDD64DB1597</GUID>
        <Name>Blue</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AACAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AACAPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>0A46CB1EAF31C7AD6F5DD8E2AEE3FD11</GUID>
        <Name>Alpha</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AACAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AACAPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>2B0FF4087D0ECFCD6FCBD138F1EF0B7E</GUID>
        <Name>Size</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AACAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AACAPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>0730E7826620EE356815534D67C35161</GUID>
        <Name>Red Chaos</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>ED46EA413D16A0BC90748ADD3216B65E</GUID>
        <Name>Green Chaos</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>78C6F826000C5E3A31F01A87E18F7838</GUID>
        <Name>Blue Chaos</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>EF92B48D5D6B83C61853CBE910C8DA60</GUID>
        <Name>Alpha Chaos</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>7439552AFCCDD02D9F85BBFB7F65E7AF</GUID>
        <Name>Size Chaos</Name>
      
        <Scope>2</Scope>
      
        <Type>24</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>4EB186919A7C90223A237FC6C30F31F9</GUID>
    <Name>FXAA</Name>
    <Type>2</Type>
    <TargetLayer>NONENONENONENONENONENONENONENONE</TargetLayer>
  
    <Pass>
      <Name>Prepass</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
	float t,aspect,xres,yres;
}

cbuffer c : register(b1)
{
	float r,g,b;
}

float gamma(float c)
{
float cs=saturate(c);

if (cs&lt;0.0031308) cs=12.92*cs;
else cs=1.055*pow(cs,1/2.4)-0.055;

return cs;
}

float4 gamma4(float4 g)
{
return float4(gamma(g.x),gamma(g.y),gamma(g.z),g.w);
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{
	float4 c=gamma4(saturate(Textur.Sample(sm,t)));
	float f=r+g+b;
	c.w=dot(saturate(c.xyz),float3(r,g,b)/f);
	return c;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>ED1554CFF9DDAC4928D77B62023D5E3B</GUID>
        <Name>Input</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>KNuWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>KNuWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>B804E9F623AABCBA232F247216EE216B</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>717842B61F3FD894D188046F02359C52</GUID>
        <Name>Target</Name>
      
        <Scope>0</Scope>
      
        <Type>23</Type>
      
        <Value>OM6WAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>OM6WAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>9DE2A20DCA6371A7D7731C30E7A870A1</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>0F13015F6E3CFED2590A2C5592741536</GUID>
        <Name>Luma Red</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>m5qaPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>m5qaPgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>BF3E0D065CF0C443C03CE5BAA7E1E9DC</GUID>
        <Name>Luma Green</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>zczMPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>zczMPgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>861A6DD35CA2A0AD202BC59E713367AA</GUID>
        <Name>Luma Blue</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>m5qaPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>m5qaPgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  
    <Pass>
      <Name>FXAA</Name>
      <Code>SamplerState sm : register(s1);
Texture2D t : register(t0);

float4 ft(float2 p) { return t.SampleLevel(sm, p, 0.0); }
float4 fo(float2 p, int2 o) { return t.SampleLevel(sm, p, 0.0, o); }

float4 FxaaPixelShader(float2 p, float2 fxaaQualityRcpFrame,
					   float fxaaQualitySubpix, float fxaaQualityEdgeThreshold,
					   float fxaaQualityEdgeThresholdMin)
{
	float quality[12] = { 1, 1, 1, 1, 1, 1.5, 2, 2, 2, 2, 4, 8 };

	float4 rgbyM = ft(p);
	float lS = fo(p, int2(0, 1)).w;
	float lE = fo(p, int2(1, 0)).w;
	float lN = fo(p, int2(0, -1)).w;
	float lW = fo(p, int2(-1, 0)).w;

	float rangeMax = max(max(lN, lW), max(lE, max(lS, rgbyM.w)));
	float rangeMin = min(min(lN, lW), min(lE, min(lS, rgbyM.w)));
	float rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;
	float range = rangeMax - rangeMin;
	float rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);
	if (range &lt; rangeMaxClamped)
		return rgbyM;

	float lNW = fo(p, int2(-1, -1)).w;
	float lSE = fo(p, int2(1, 1)).w;
	float lNE = fo(p, int2(1, -1)).w;
	float lSW = fo(p, int2(-1, 1)).w;

	float lNS = lN + lS;
	float lWE = lW + lE;
	float subpixRcpRange = 1.0 / range;
	float subpixNSWE = lNS + lWE;
	float edgeHorz1 = (-2.0 * rgbyM.w) + lNS;
	float edgeVert1 = (-2.0 * rgbyM.w) + lWE;

	float lNESE = lNE + lSE;
	float lNWNE = lNW + lNE;
	float edgeHorz2 = (-2.0 * lE) + lNESE;
	float edgeVert2 = (-2.0 * lN) + lNWNE;

	float lNWSW = lNW + lSW;
	float lSWSE = lSW + lSE;
	float edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);
	float edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);
	float edgeHorz3 = (-2.0 * lW) + lNWSW;
	float edgeVert3 = (-2.0 * lS) + lSWSE;
	float edgeHorz = abs(edgeHorz3) + edgeHorz4;
	float edgeVert = abs(edgeVert3) + edgeVert4;

	float subpixNWSWNESE = lNWSW + lNESE;
	float lengthSign = fxaaQualityRcpFrame.x;
	bool horzSpan = edgeHorz &gt;= edgeVert;
	float subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;

	if (!horzSpan) lN = lW;
	if (!horzSpan) lS = lE;
	if (horzSpan) lengthSign = fxaaQualityRcpFrame.y;
	float subpixB = (subpixA * (1.0 / 12.0)) - rgbyM.w;

	float gradientN = lN - rgbyM.w;
	float gradientS = lS - rgbyM.w;
	float lNN = lN + rgbyM.w;
	float lSS = lS + rgbyM.w;
	bool pairN = abs(gradientN) &gt;= abs(gradientS);
	float gradient = max(abs(gradientN), abs(gradientS));
	if (pairN) lengthSign = -lengthSign;
	float subpixC = saturate(abs(subpixB) * subpixRcpRange);

	float2 posB=p;
	float2 offNP;
	offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;
	offNP.y = (horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;
	if (!horzSpan) posB.x += lengthSign * 0.5;
	if (horzSpan) posB.y += lengthSign * 0.5;

	float2 posN=posB-offNP*quality[0];
	float2 posP=posB+offNP*quality[0];
	float subpixD = ((-2.0)*subpixC) + 3.0;
	float lEndN = ft(posN).w;
	float subpixE = subpixC * subpixC;
	float lEndP = ft(posP).w;

	if (!pairN) lNN = lSS;
	float gradientScaled = gradient * 1.0 / 4.0;
	float lMM = rgbyM.w - lNN * 0.5;
	float subpixF = subpixD * subpixE;
	bool lMLTZero = lMM &lt; 0.0;

	lEndN -= lNN * 0.5;
	lEndP -= lNN * 0.5;
	bool doneN,doneP,doneNP;

	for (int x = 1; x &lt; 12; x++)
	{
		doneN = abs(lEndN) &gt;= gradientScaled;
		doneP = abs(lEndP) &gt;= gradientScaled;
		if (!doneN) posN.x -= offNP.x * quality[x];
		if (!doneN) posN.y -= offNP.y * quality[x];
		doneNP = (!doneN) || (!doneP);
		if (!doneP) posP.x += offNP.x * quality[x];
		if (!doneP) posP.y += offNP.y * quality[x];

		if (!doneNP || x==11) break;
		if (!doneN) lEndN = ft(posN.xy).w;
		if (!doneP) lEndP = ft(posP.xy).w;
		if (!doneN) lEndN = lEndN - lNN * 0.5;
		if (!doneP) lEndP = lEndP - lNN * 0.5;
	}

	float dstN = p.x - posN.x;
	float dstP = posP.x - p.x;
	if (!horzSpan) dstN = p.y - posN.y;
	if (!horzSpan) dstP = posP.y - p.y;

	bool goodSpanN = (lEndN &lt; 0.0) != lMLTZero;
	float spanLength = (dstP + dstN);
	bool goodSpanP = (lEndP &lt; 0.0) != lMLTZero;
	float spanLengthRcp = 1.0 / spanLength;

	bool directionN = dstN &lt; dstP;
	float dst = min(dstN, dstP);
	bool goodSpan = directionN ? goodSpanN : goodSpanP;
	float subpixG = subpixF * subpixF;
	float pixelOffset = (dst * (-spanLengthRcp)) + 0.5;
	float subpixH = subpixG * fxaaQualitySubpix;

	float pixelOffsetGood = goodSpan ? pixelOffset : 0.0;
	float pixelOffsetSubpix = max(pixelOffsetGood, subpixH);

	float2 posM=p;
	if (!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;
	if (horzSpan) posM.y += pixelOffsetSubpix * lengthSign;
	return float4(ft(posM).xyz, rgbyM.w);
}

cbuffer b : register(b0)
{
	float time, aspect, xres, yres;
}

cbuffer c : register(b1)
{
	float subpixel;
	float edgethresh, edgethreshmin;
}

float degamma(float c)
{
float cs;
if (c&lt;0.04045) cs=c/12.92;
else cs=pow((c+0.055)/1.055,2.4);
return cs;
}

float4 degamma4(float4 g)
{
return float4(degamma(g.x),degamma(g.y),degamma(g.z),g.w);
}

float4 p(float2 t : TEXCOORD0) : SV_TARGET0
{
	return degamma4(saturate(FxaaPixelShader(t, 1 / float2(xres, yres), subpixel, lerp(1 / 3.0, 0.063, edgethresh), edgethreshmin*0.0833)));// Textur.Sample(sm,t.xy);
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>950D57988C9710C0CD95128F901F13DB</GUID>
        <Name>Input</Name>
      
        <Scope>0</Scope>
      
        <Type>7</Type>
      
        <Value>OM6WAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>OM6WAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>9DE2A20DCA6371A7D7731C30E7A870A1</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>EFDE54CB9E4EA4033E730FF7D5089E1C</GUID>
        <Name>Output</Name>
      
        <Scope>1</Scope>
      
        <Type>23</Type>
      
        <Value>KNuWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>KNuWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>B804E9F623AABCBA232F247216EE216B</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>9313E83DA314663A00C92180AD993B09</GUID>
        <Name>Subpixel</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>wsFBPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>wsFBPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>25EE7EE36DF5EF1E88B276888DFB6ABD</GUID>
        <Name>Edge Threshold</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>gYAAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>gYAAPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>629D89FA75C4A14194E667F9E7908B5D</GUID>
        <Name>Edge Threshold Min</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>AACAPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AACAPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>33AEA5F0F3B498146DA6A11BA7474CDF</GUID>
    <Name>Glow</Name>
    <Type>2</Type>
    <TargetLayer>NONENONENONENONENONENONENONENONE</TargetLayer>
  
    <Parameter>
      <GUID>54DDD83C1A13618CC5E7DF312A595AB9</GUID>
      <Name>Blur X</Name>
    
      <Scope>1</Scope>
    
      <Type>0</Type>
    
      <Value>gYCAPgAAAAAAAAAAAAAAAA==</Value>
    
      <DefaultValue>gICAPgAAAAAAAAAAAAAAAA==</DefaultValue>
    </Parameter>
  
    <Parameter>
      <GUID>BDB08EB78B6B0B1711EBA58541FCD038</GUID>
      <Name>Blur Y</Name>
    
      <Scope>1</Scope>
    
      <Type>0</Type>
    
      <Value>gYCAPgAAAAAAAAAAAAAAAA==</Value>
    
      <DefaultValue>gICAPgAAAAAAAAAAAAAAAA==</DefaultValue>
    </Parameter>
  
    <Parameter>
      <GUID>8A51F34A9EE53A2BC76920E879F45AF2</GUID>
      <Name>Samplecount</Name>
    
      <Scope>1</Scope>
    
      <Type>0</Type>
    
      <Value>wcDAPQAAAAAAAAAAAAAAAA==</Value>
    
      <DefaultValue>wMDAPQAAAAAAAAAAAAAAAA==</DefaultValue>
    </Parameter>
  
    <Parameter>
      <GUID>7ADC915D48F09D962320CE100BE405BE</GUID>
      <Name>pad</Name>
    
      <Scope>0</Scope>
    
      <Type>0</Type>
    
      <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
    
      <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
    </Parameter>
  
    <Pass>
      <Name>To Back X/2 Y/1</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float4 blur;
	float threshold;
	float power;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float4 col=0;
	float cnt=blur.z*255;

	for (int x=0; x&lt;cnt; x++)
	{
		float p=(x-(cnt-1)/2.)*blur.x/cnt/4.0f;
		float4 c=Textur.Sample(sm,t.xy+p*float2(1,0));
		float4 cm=c&gt;=threshold;
		col+=((c-threshold)*(1+power*5)+threshold)*cm;
	}

  return col/cnt;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>C4AE94742A5F2A86E322981E138C43D7</GUID>
        <Name>Input</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>OM6WAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>OM6WAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>9DE2A20DCA6371A7D7731C30E7A870A1</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>0F31CEB4BFBB528375AF2837CBFA2881</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>0</Scope>
      
        <Type>23</Type>
      
        <Value>2NOWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>2NOWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>66B8BAA646D228338C523F1351543A11</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>E42E5D0AD32A4BB02F382237D8FBE4C7</GUID>
        <Name>threshold</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>m5oaPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>CF0A47A94ACB2FC5D0D3D6606874373C</GUID>
        <Name>Power</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>4+LiPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  
    <Pass>
      <Name>To Back X/2 Y/2</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float2 blur;
	float samplecount;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float4 col=0;
	float cnt=samplecount*255;

	for (int x=0; x&lt;cnt; x++)
	{
		float p=(x-(cnt-1)/2.)*blur.y/cnt/4.0f;
		col+=Textur.Sample(sm,t.xy+p*float2(0,1));
	}

  return col/cnt;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>5E27F19A05ACB6FA0D0B32EC831C19CF</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>0</Scope>
      
        <Type>23</Type>
      
        <Value>iNWWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>iNWWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>ABE9AC938257A0207A4C164AF72306A0</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>AD2F5AADA115EA85D40ABEA44B8CA191</GUID>
        <Name>Input</Name>
      
        <Scope>0</Scope>
      
        <Type>7</Type>
      
        <Value>2NOWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>2NOWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>66B8BAA646D228338C523F1351543A11</TextureGUID>
      </Parameter>
    </Pass>
  
    <Pass>
      <Name>To Back X/4 Y/2</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float2 blur;
	float samplecount;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float4 col=0;
	float cnt=samplecount*255;

	for (int x=0; x&lt;cnt; x++)
	{
		float p=(x-(cnt-1)/2.)*blur.x/cnt/4.0f;
		col+=Textur.Sample(sm,t.xy+p*float2(1,0));
	}

  return col/cnt;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>BED54AF97921A2946031251778827E22</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>0</Scope>
      
        <Type>23</Type>
      
        <Value>aNSWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>aNSWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>672E7FB08DEB05C9B52B4F78FC2B30F4</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>A268FE4DB902DF1D3227FF84BF182F87</GUID>
        <Name>Input</Name>
      
        <Scope>0</Scope>
      
        <Type>7</Type>
      
        <Value>iNWWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>iNWWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>ABE9AC938257A0207A4C164AF72306A0</TextureGUID>
      </Parameter>
    </Pass>
  
    <Pass>
      <Name>To Back X/4 Y/4</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float2 blur;
	float samplecount;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float4 col=0;
	float cnt=samplecount*255;

	for (int x=0; x&lt;cnt; x++)
	{
		float p=(x-(cnt-1)/2.)*blur.y/cnt/4.0f;
		col+=Textur.Sample(sm,t.xy+p*float2(0,1));
	}

  return col/cnt;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>7AF12AEAB6E05ACA712695E40420E6EF</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>0</Scope>
      
        <Type>23</Type>
      
        <Value>qNaWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>qNaWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>290A7AC85C535BCB4E3FA01128C3433B</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>7DF8FF574C21D618E7F5D18B49EFD09C</GUID>
        <Name>Input</Name>
      
        <Scope>0</Scope>
      
        <Type>7</Type>
      
        <Value>aNSWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>aNSWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>672E7FB08DEB05C9B52B4F78FC2B30F4</TextureGUID>
      </Parameter>
    </Pass>
  
    <Pass>
      <Name>To Back X/8 Y/4</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float2 blur;
	float samplecount;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float4 col=0;
	float cnt=samplecount*255;

	for (int x=0; x&lt;cnt; x++)
	{
		float p=(x-(cnt-1)/2.)*blur.x/cnt/4.0f;
		col+=Textur.Sample(sm,t.xy+p*float2(1,0));
	}

  return col/cnt;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>CDFD61031F3DA4D44DBBEE0267823CEA</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>0</Scope>
      
        <Type>23</Type>
      
        <Value>WL2WAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>WL2WAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>BE215926557E4997FE98ABB3D6817364</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>112EA8849B30D377945C0A6E0A784ED8</GUID>
        <Name>Input</Name>
      
        <Scope>0</Scope>
      
        <Type>7</Type>
      
        <Value>qNaWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>qNaWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>290A7AC85C535BCB4E3FA01128C3433B</TextureGUID>
      </Parameter>
    </Pass>
  
    <Pass>
      <Name>To Back X/8 Y/8</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float2 blur;
	float samplecount;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float4 col=0;
	float cnt=samplecount*255;

	for (int x=0; x&lt;cnt; x++)
	{
		float p=(x-(cnt-1)/2.)*blur.y/cnt/4.0f;
		col+=Textur.Sample(sm,t.xy+p*float2(0,1));
	}

  return col/cnt;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>B8051140FEB22DAB09ADB8578EA7D3E8</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>0</Scope>
      
        <Type>23</Type>
      
        <Value>OMWWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>OMWWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>D2375BBF84EB0121216AE6397E0E31C4</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>DF2DE8002B61B2AB72BE6592FD6FE065</GUID>
        <Name>Input</Name>
      
        <Scope>0</Scope>
      
        <Type>7</Type>
      
        <Value>WL2WAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>WL2WAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>BE215926557E4997FE98ABB3D6817364</TextureGUID>
      </Parameter>
    </Pass>
  
    <Pass>
      <Name>Output</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float4 blur;
	float4 color;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{
 return Textur.Sample(sm,t.xy)*color;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>8CC2DDF43854C88B05DC8BCA5F8721B1</GUID>
        <Name>Output</Name>
      
        <Scope>1</Scope>
      
        <Type>23</Type>
      
        <Value>OM6WAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>OM6WAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>9DE2A20DCA6371A7D7731C30E7A870A1</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>C037B974D6D0EC1345717BDE5B891E6D</GUID>
        <Name>Input</Name>
      
        <Scope>0</Scope>
      
        <Type>7</Type>
      
        <Value>OMWWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>OMWWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>D2375BBF84EB0121216AE6397E0E31C4</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>BA45E81E0C9275ACEDA39305BBB63BCA</GUID>
        <Name>Color</Name>
      
        <Scope>1</Scope>
      
        <Type>1</Type>
      
        <Value>7exsPo2MDD7R0NA9AACAPw==</Value>
      
        <DefaultValue>AACAPwAAgD8AAIA/AACAPw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>4FA2566DA42AEC134955DD0722A4E36C</GUID>
        <Name>Blend</Name>
      
        <Scope>1</Scope>
      
        <Type>15</Type>
      
        <Value>EQAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>EQAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>D9AAC97A71B2221D1D1A4A052E3B0637</GUID>
    <Name>Noise</Name>
    <Type>2</Type>
    <TargetLayer>NONENONENONENONENONENONENONENONE</TargetLayer>
  
    <Pass>
      <Name>New Pass</Name>
      <Code>SamplerState sm:register(s0);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
	float tme,aspect,xres,yres;
}

cbuffer c : register(b1)
{
	float p1,p2,p3;
	float o1,o2,o3;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float4 c1=Textur.Sample(sm,t*2+float2(sin(tme*(o1+0.5)*1000),cos(tme*(o2+0.5)*1000)))*p1;
	float4 c2=Textur.Sample(sm,t*4+float2(sin(tme*(o2+0.5)*1000),cos(tme*(o3+0.5)*1000)))*p2;
	float4 c3=Textur.Sample(sm,t*8+float2(sin(tme*(o3+0.5)*1000),cos(tme*(o1+0.5)*1000)))*p3;
	return c1+c2+c3;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>EEB9BF3185B10F15468DD6D90F299F80</GUID>
        <Name>Noise Texture</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>09D5CD5235580A8477DD0E10CAC693F8</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>813D805C277F2002F2E226D6609DD676</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>1</Scope>
      
        <Type>23</Type>
      
        <Value>KNuWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>KNuWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>B804E9F623AABCBA232F247216EE216B</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>FAE77B12E14D5EBA430F2C61A1C1796E</GUID>
        <Name>power 1</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>iIiIPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>+Ph4PgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>AC6AA01734636D30B4A28EAAD1C502E3</GUID>
        <Name>power 2</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>8PDwPQAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>8PBwPgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>93AD541CF3543A35BE52389B1E22FBC7</GUID>
        <Name>power 3</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>qKgoPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>gICAPgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>13F557EDEF7D695C88F56DD2C66ECB12</GUID>
        <Name>offset 1</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>qKioPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>i4sLPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>41440B4276139E484D896B818EBBA1EF</GUID>
        <Name>offset 2</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>0NDQPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>yclJPwAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>0D6882B7A19780BF70C882F6298D85B5</GUID>
        <Name>offset 3</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>n58fPwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>qKioPgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>EBFBDFA56F416F162999D2E9ACDC19F3</GUID>
        <Name>blending</Name>
      
        <Scope>0</Scope>
      
        <Type>15</Type>
      
        <Value>FAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>DF3B04D3DDCB67A835408CE58B6BA679</GUID>
    <Name>PointSprites</Name>
    <Type>0</Type>
    <TargetLayer>0B660A129B4CFDA2A5A2D3E4E0949FA6</TargetLayer>
  
    <Pass>
      <Name>New Pass</Name>
      <Code>Texture2D t_0:register(t0);
SamplerState Sampler:register(s0);

cbuffer b : register(b0)
{
	float4x4 viewmat;
	float4x4 projmat;
}

cbuffer c : register(b1)
{
	float4x4 worldmat;
	float4x4 itworldmat;
	float4 color;
	float scale;
	float offset;
}

struct VSIN
{
	float3 Position : POSITION0;
	float3 Position2: POSITION1;
	float3 Normal : NORMAL0;
	float4 Color : COLOR0;
	float4 UV : TEXCOORD0;
	float4 UV2: TEXCOORD1;
};

struct VSOUT
{
	float4 Position : SV_POSITION;
};

float4 v(VSIN x) : SV_POSITION
{
	return mul(viewmat,float4(mul(worldmat,float4(x.Position,1)).xyz,1));
}

struct GSOUT
{
	float4 Position : SV_POSITION;
	float2 UV : TEXCOORD0;
};

[maxvertexcount(4)]
void g(triangle VSOUT input[3], inout TriangleStream&lt;GSOUT&gt; OutputStream)
{
	float4 p=(input[0].Position+input[1].Position+input[2].Position)/3.0f;
	float3 a=normalize(input[0].Position.xyz-input[1].Position.xyz);
	float3 b=normalize(input[2].Position.xyz-input[1].Position.xyz);
	float3 n=cross(a,b);
	p+=float4(n,0)*offset;

	GSOUT vx[4];

	vx[0].Position=mul(projmat,p+float4(-1,-1,0,0)*scale);
	vx[0].UV=float2(0,0);
	vx[1].Position=mul(projmat,p+float4(1,-1,0,0)*scale);
	vx[1].UV=float2(1,0);
	vx[2].Position=mul(projmat,p+float4(1,1,0,0)*scale);
	vx[2].UV=float2(1,1);
	vx[3].Position=mul(projmat,p+float4(-1,1,0,0)*scale);
	vx[3].UV=float2(0,1);

	OutputStream.Append(vx[3]);
	OutputStream.Append(vx[0]);
	OutputStream.Append(vx[2]);
	OutputStream.Append(vx[1]);

	OutputStream.RestartStrip();	
}

float4 p(GSOUT v) : SV_TARGET0
{
	return t_0.Sample(Sampler,v.UV.xy)*color;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>B60C314357C2E51CFD94C6FCC20502B2</GUID>
        <Name>Cullmode</Name>
      
        <Scope>0</Scope>
      
        <Type>5</Type>
      
        <Value>AQAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>8BF7697D5A620EC7C2773D21F47EEE6B</GUID>
        <Name>BlendMode</Name>
      
        <Scope>1</Scope>
      
        <Type>15</Type>
      
        <Value>EQAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>C5900026C82CE9663762C6EFBEDF3EF1</GUID>
        <Name>ZMode</Name>
      
        <Scope>1</Scope>
      
        <Type>2</Type>
      
        <Value>AgAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>C1466038720EB9D4632A99FF2226F5E0</GUID>
        <Name>Texture</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>973B56E8888BCD8CE0B42A40018701AE</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>9FD2D533AD96F1D4C7ECB1723769E963</GUID>
        <Name>Color</Name>
      
        <Scope>1</Scope>
      
        <Type>1</Type>
      
        <Value>AACAP8C/Pz+TkhI/AACAPw==</Value>
      
        <DefaultValue>AACAPwAAgD8AAIA/AACAPw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>4894D079E6BCF18E31A380C8BDF9A430</GUID>
        <Name>Sprite Size</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>gYCAPCBub3QgZm91bmQhAA==</Value>
      
        <DefaultValue>0dBQPQAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>8BDCBCDFC913A5697498B22558B7E559</GUID>
        <Name>Sprite offset</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>ubi4PQAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>ycjIPQAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>7EDD9961B7275190F8FD01C09D64E164</GUID>
    <Name>Radial Blur</Name>
    <Type>2</Type>
    <TargetLayer>NONENONENONENONENONENONENONENONE</TargetLayer>
  
    <Pass>
      <Name>New Pass</Name>
      <Code>SamplerState sm:register(s1);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
	float t,aspect,xres,yres;
}

cbuffer c : register(b1)
{
	float power;
	float samplecnt;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	float count=samplecnt*255+1;

	float2 dirr=(0.5-t);
	float2 dirb=dirr;
	float4 col=Textur.Sample(sm,t);
	for (int x=-count/2; x&lt;count/2; x++)
 		col+=Textur.Sample(sm,t+dirr*x/200.0f*power);

	col=col/count;
	return col;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>CD3AB5832AE878690BB1E0C6FE00E674</GUID>
        <Name>Input</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>KNuWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>KNuWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>B804E9F623AABCBA232F247216EE216B</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>65E9D6E9C50DD3D0AF1D6518CCD2CB40</GUID>
        <Name>Rendertarget</Name>
      
        <Scope>1</Scope>
      
        <Type>23</Type>
      
        <Value>uNuWAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>uNuWAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>A277553146FC64CF028CD78429CB0C26</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>353DB3E7802C4BE9529F21EC941655D1</GUID>
        <Name>Power</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>zcxMPgAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>zcxMPgAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>4D26C1964ADFCDB5FF1A1F7F30CE3BE9</GUID>
        <Name>SampleCount</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>oaCgPQAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>mZiYPQAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>FA2C8F6BB7A84615E511F0B5458FC520</GUID>
    <Name>Texture Draw</Name>
    <Type>2</Type>
    <TargetLayer>0B660A129B4CFDA2A5A2D3E4E0949FA6</TargetLayer>
  
    <Pass>
      <Name>New Pass</Name>
      <Code>SamplerState sm:register(s0);
Texture2D Textur:register(t0);

cbuffer b : register(b0)
{
}

cbuffer c : register(b1)
{
	float4 color;
}

float4 p( float2 t:TEXCOORD0 ) : SV_TARGET0
{ 
	return Textur.Sample(sm,t)*color;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>B4F0CF2363DA250F0284B2ADE6788929</GUID>
        <Name>RenderTarget</Name>
      
        <Scope>1</Scope>
      
        <Type>23</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>8ECC5ABCA79B63695CCE7FF9FD05507B</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>321AFEE79575A7AECFDB23D5924963A9</GUID>
        <Name>Texture</Name>
      
        <Scope>1</Scope>
      
        <Type>7</Type>
      
        <Value>OM6WAwAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>OM6WAwAAAAAAAAAAAAAAAA==</DefaultValue>
      
        <TextureGUID>9DE2A20DCA6371A7D7731C30E7A870A1</TextureGUID>
      </Parameter>
    
      <Parameter>
        <GUID>5D8628038F51F2B75FA463F6E2DF6FDB</GUID>
        <Name>Color</Name>
      
        <Scope>2</Scope>
      
        <Type>1</Type>
      
        <Value>AACAPwAAgD8AAIA/AACAPw==</Value>
      
        <DefaultValue>AACAPwAAgD8AAIA/AACAPw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>438A8061827629139060FE2382D8404B</GUID>
        <Name>BlendMode</Name>
      
        <Scope>1</Scope>
      
        <Type>15</Type>
      
        <Value>AQAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>VAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <rendertechnique>
    <GUID>2A9BCBB81A1352D113B8B5BF0982D887</GUID>
    <Name>Wireframe</Name>
    <Type>0</Type>
    <TargetLayer>0B660A129B4CFDA2A5A2D3E4E0949FA6</TargetLayer>
  
    <Pass>
      <Name>Wireframe Pass</Name>
      <Code>cbuffer b : register(b0)
{
	float4x4 viewmat;
	float4x4 projmat;
}

cbuffer c : register(b1)
{
	float4x4 worldmat;
	float4x4 itworldmat;
	float4 color;
	float offset;
}

struct VSIN
{
	float3 Position : POSITION0;
	float3 Position2 : POSITION1;
	float3 Normal : NORMAL0;
	float4 Color : COLOR0;
	float4 UV : TEXCOORD0;
	float4 UV2: TEXCOORD1;
};

struct VSOUT
{
	float4 Position : SV_POSITION;
	float4 Normal: NORMAL0;
};

VSOUT v(VSIN x)
{
	VSOUT o;
	o.Position=float4(mul(worldmat,float4(x.Position,1)).xyz,1);
	o.Normal=float4(normalize(mul(worldmat,float4(x.Normal,1)).xyz),1);
	return o;
}

struct GSOUT
{
	float4 Position : SV_POSITION;
};

[maxvertexcount(2)]
void g(line VSOUT input[2], inout LineStream&lt;GSOUT&gt; OutputStream)
{
	GSOUT vx[2];

	for (int x=0; x&lt;2; x++)
		{
			float3 p=input[x].Position.xyz+input[x].Normal.xyz*offset;
			GSOUT g;
			g.Position=mul(projmat,mul(viewmat,float4(p,1)));
			OutputStream.Append(g);
		}

	OutputStream.RestartStrip();	
}

float4 p(GSOUT v) : SV_TARGET0
{
	return color;
}</Code>
      <Minifiable>1</Minifiable>
      <Parameter>
        <GUID>7D1A21A882071C04727232D8AAD62AFF</GUID>
        <Name>Color</Name>
      
        <Scope>1</Scope>
      
        <Type>1</Type>
      
        <Value>AACAPwAAgD8AAIA/AACAPw==</Value>
      
        <DefaultValue>AACAPwAAgD8AAIA/AACAPw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>7C46FA4CC80DDEFF587BA6B3DF8C1361</GUID>
        <Name>Fillmode</Name>
      
        <Scope>0</Scope>
      
        <Type>4</Type>
      
        <Value>AQAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>F1EE2750D698C58A7900CF9F3B5B866E</GUID>
        <Name>BlendMode</Name>
      
        <Scope>0</Scope>
      
        <Type>15</Type>
      
        <Value>VAAAAAAAAAAAAAAAAAAAvw==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAvw==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>786837C98D8069FCF99D1374311B6B95</GUID>
        <Name>Zmode</Name>
      
        <Scope>0</Scope>
      
        <Type>2</Type>
      
        <Value>AgAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>AAAAAAAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    
      <Parameter>
        <GUID>CDBD1EC59A8FDB6B0747E5D78BE6662C</GUID>
        <Name>Offset</Name>
      
        <Scope>1</Scope>
      
        <Type>0</Type>
      
        <Value>AAAAAAAAAAAAAAAAAAAAAA==</Value>
      
        <DefaultValue>4eBgPQAAAAAAAAAAAAAAAA==</DefaultValue>
      </Parameter>
    </Pass>
  </rendertechnique>

  <material>
    <GUID>C5D0ADAF505073D2F4E35D221EE3D9A7</GUID>
    <Name>[Base Material]</Name>
    <Tech>2EC2AE23E3AA634D2FD7277D3C18D797</Tech></material>

  <material>
    <GUID>A84A65F1626DC961D09A5F4D0677DD08</GUID>
    <Name>Hide Object</Name></material>

  <material>
    <GUID>0DA9620A5D8A63D92C8152F5454BB5FB</GUID>
    <Name>Particle Material</Name>
    <Tech>D9BCB25B70726C223C6F5F322777287C</Tech></material>

  <material>
    <GUID>E78A2AF015A46FD9FDA63304B241C084</GUID>
    <Name>PointSprites</Name>
    <Tech>DF3B04D3DDCB67A835408CE58B6BA679</Tech></material>

  <material>
    <GUID>12D5FB8DDBDFAABA4C5755702B02FD76</GUID>
    <Name>textured (noshade, alphatest)</Name>
    <Tech>E29A95A4D3FD630C418CF73778137606</Tech></material>

  <material>
    <GUID>2AB14C9F5E1625A6C4F39766B33F013E</GUID>
    <Name>Wireframe</Name>
    <Tech>2A9BCBB81A1352D113B8B5BF0982D887</Tech></material>
</apExProject>
