71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| #include "shared.effect"
 | |
| 
 | |
| uniform texture2d InputA<
 | |
| 	bool automatic = true;
 | |
| >;
 | |
| uniform texture2d InputB<
 | |
| 	bool automatic = true;
 | |
| >;
 | |
| uniform float Threshold<
 | |
| 	string name = "Threshold";
 | |
| 	string suffix = " %";
 | |
| 	float minimum = 0.;
 | |
| 	float maximum = 100.;
 | |
| 	float step = .01;
 | |
| 	float scale = .01;
 | |
| > = 10.;
 | |
| uniform float ThresholdRange<
 | |
| 	string name = "Threshold Range";
 | |
| 	string suffix = " %";
 | |
| 	float minimum = 0.;
 | |
| 	float maximum = 100.;
 | |
| 	float step = .01;
 | |
| 	float scale = .01;
 | |
| > = 10.;
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| // Technique: Draw
 | |
| //------------------------------------------------------------------------------
 | |
| // Parameters:
 | |
| // - InputA: RGBA Texture
 | |
| // - InputB: XXXA Texture
 | |
| 
 | |
| float4 PSDrawAlpha(VertexData vtx) : TARGET {
 | |
| 	return InputA.Sample(BlankSampler, vtx.uv);
 | |
| };
 | |
| 
 | |
| technique DrawAlpha
 | |
| {
 | |
| 	pass
 | |
| 	{
 | |
| 		vertex_shader = DefaultVertexShader(vtx);
 | |
| 		pixel_shader = PSDrawAlpha(vtx);
 | |
| 	};
 | |
| };
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| // Technique: Draw
 | |
| //------------------------------------------------------------------------------
 | |
| // Parameters:
 | |
| // - InputA: RGBX Texture
 | |
| // - InputB: XXXA Texture
 | |
| // - Threshold: Alha threshold to be "visible".
 | |
| 
 | |
| float4 PSDrawAlphaThreshold(VertexData vtx) : TARGET {
 | |
| 	float4 rgba = InputA.Sample(BlankSampler, vtx.uv);
 | |
| 	float4 xxxa = InputB.Sample(BlankSampler, vtx.uv);
 | |
| 
 | |
| 	rgba.a = smoothstep(Threshold - ThresholdRange * .5, Threshold + ThresholdRange * .5, xxxa.a);
 | |
| 
 | |
| 	return rgba;
 | |
| };
 | |
| 
 | |
| technique DrawAlphaThreshold
 | |
| {
 | |
| 	pass
 | |
| 	{
 | |
| 		vertex_shader = DefaultVertexShader(vtx);
 | |
| 		pixel_shader = PSDrawAlphaThreshold(vtx);
 | |
| 	};
 | |
| };
 |