init commit
This commit is contained in:
57
line.fx
Normal file
57
line.fx
Normal file
@@ -0,0 +1,57 @@
|
||||
#if OPENGL
|
||||
#define SV_POSITION POSITION
|
||||
#define VS_SHADERMODEL vs_3_0
|
||||
#define PS_SHADERMODEL ps_3_0
|
||||
#else
|
||||
#define VS_SHADERMODEL vs_4_0_level_9_1
|
||||
#define PS_SHADERMODEL ps_4_0_level_9_1
|
||||
#endif
|
||||
|
||||
matrix WorldViewProjection;
|
||||
float thickness;
|
||||
|
||||
struct VertexShaderInput
|
||||
{
|
||||
float4 Position : POSITION0;
|
||||
float4 Color : COLOR0;
|
||||
float2 Normal : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct VertexShaderOutput
|
||||
{
|
||||
float4 Position : SV_POSITION;
|
||||
float4 Color : COLOR0;
|
||||
float2 Normal : TEXCOORD0;
|
||||
};
|
||||
|
||||
VertexShaderOutput MainVS(in VertexShaderInput input)
|
||||
{
|
||||
VertexShaderOutput output = (VertexShaderOutput)0;
|
||||
float4 temp = input.Position + (float4(input.Normal,0.0,0.0) * thickness);
|
||||
output.Position = mul(temp, WorldViewProjection);
|
||||
output.Color = input.Color;
|
||||
output.Normal = input.Normal;
|
||||
return output;
|
||||
}
|
||||
|
||||
float4 MainPS(VertexShaderOutput input) : COLOR
|
||||
{
|
||||
float feather = 0.2; //Fade off part
|
||||
float4 res = input.Color;
|
||||
float distFromLine = length(input.Normal);
|
||||
float alpha = 1.0 - ((clamp(distFromLine, (1.0 - feather),1.0) - (1.0 - feather)) / feather);
|
||||
res.a = alpha;
|
||||
return res;
|
||||
}
|
||||
|
||||
technique BasicColorDrawing
|
||||
{
|
||||
pass P0
|
||||
{
|
||||
AlphaBlendEnable = TRUE;
|
||||
DestBlend = INVSRCALPHA;
|
||||
SrcBlend = SRCALPHA;
|
||||
VertexShader = compile VS_SHADERMODEL MainVS();
|
||||
PixelShader = compile PS_SHADERMODEL MainPS();
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user