-
Notifications
You must be signed in to change notification settings - Fork 0
/
Ls_Dilate.xml
89 lines (84 loc) · 5.8 KB
/
Ls_Dilate.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<ShaderNodePreset SupportsAdaptiveDegradation="False" SupportsAction="False" SupportsTransition="False" SupportsTimeline="False" TimelineUseBack="False" MatteProvider="False" CommercialUsePermitted="True" ShaderType="Matchbox" SoftwareVersion="2017.0.0" LimitInputsToTexture="True" Version="2" Description="Dilate - shrink or expand pixels based on brightness, or on closeness to a particular colour
The strength input modulates the effet and can also use negative colours to reverse the dilation into erosion, and vice-versa
When using colour weighting, the third input can set the colour to use per-pixel - using a clean greenscreen can let you spread edge colours inwards or outwards without having to pull a key to use with PixelSpread
Make sure input is 16fp rather than 8-bit!
Quick demo: https://www.youtube.com/watch?v=t2jISkR7fGc
lewis@lewissaunders.com" Name="Dilate">
<Shader Clear="0" GridSubdivision="1" OutputBitDepth="Output" Index="1">
<Uniform ResDependent="None" Max="0.999" Min="0.001" Default="0.5" Inc="0.01" Tooltip="" Row="1" Col="2" Page="0" Type="float" ChannelName="Stretch" DisplayName="Stretch/squash" Name="stretch">
</Uniform>
<Uniform ResDependent="None" Max="1000000.0" Min="-1000000.0" Default="2.0" Inc="0.1" Tooltip="" Row="1" Col="1" Page="0" Type="float" ChannelName="Size" DisplayName="Size" Name="size">
</Uniform>
<Uniform Max="4" Min="0" Default="1" Inc="1" Tooltip="" Row="1" Col="3" Page="0" Type="int" ChannelName="Kernel" DisplayName="Kernel" Name="kernel" ValueType="Popup">
<PopupEntry Title="Box" Value="0"></PopupEntry>
<PopupEntry Title="Subpixel box" Value="1"></PopupEntry>
<PopupEntry Title="Triangle" Value="2"></PopupEntry>
<PopupEntry Title="Ball" Value="3"></PopupEntry>
<PopupEntry Title="Gaussian" Value="4"></PopupEntry>
</Uniform>
<Uniform Row="1" Col="4" Page="0" Default="False" Tooltip="" Type="bool" ChannelName="Use colour" DisplayName="Use colour (forces box kernel)" Name="usecolour">
</Uniform>
<Uniform Inc="0.01" Tooltip="" Row="2" Col="4" Page="0" Action3DWidget="False" IconType="None" ValueType="Colour" Type="vec3" ChannelName="Colour" DisplayName="Colour" Name="screencolour">
<SubUniform ResDependent="None" Max="1000000.0" Min="-1000000.0" Default="0.05">
</SubUniform>
<SubUniform ResDependent="None" Max="1000000.0" Min="-1000000.0" Default="0.2">
</SubUniform>
<SubUniform ResDependent="None" Max="1000000.0" Min="-1000000.0" Default="0.05">
</SubUniform>
</Uniform>
<Uniform Row="3" Col="4" Page="0" Default="False" Tooltip="" Type="bool" ChannelName="usecleanscreen" DisplayName="Use screen input" Name="usecleanscreen">
</Uniform>
<Uniform Index="0" NoInput="Error" Tooltip="" DisplayName="Front" InputType="Front" Mipmaps="False" GL_TEXTURE_WRAP_T="GL_CLAMP_TO_EDGE" GL_TEXTURE_WRAP_S="GL_CLAMP_TO_EDGE" GL_TEXTURE_MAG_FILTER="GL_LINEAR" GL_TEXTURE_MIN_FILTER="GL_LINEAR" Type="sampler2D" Name="front">
</Uniform>
<Uniform Index="1" NoInput="White" Tooltip="" DisplayName="Strength" InputColor="80, 80, 20" InputType="Selective" Mipmaps="False" GL_TEXTURE_WRAP_T="GL_CLAMP_TO_EDGE" GL_TEXTURE_WRAP_S="GL_CLAMP_TO_EDGE" GL_TEXTURE_MAG_FILTER="GL_LINEAR" GL_TEXTURE_MIN_FILTER="GL_LINEAR" Type="sampler2D" Name="strength">
</Uniform>
<Uniform Index="2" NoInput="Black" Tooltip="" DisplayName="Screen colour" InputColor="67, 77, 83" Mipmaps="False" GL_TEXTURE_WRAP_T="GL_CLAMP_TO_EDGE" GL_TEXTURE_WRAP_S="GL_CLAMP_TO_EDGE" GL_TEXTURE_MAG_FILTER="GL_LINEAR" GL_TEXTURE_MIN_FILTER="GL_LINEAR" Type="sampler2D" Name="cleanscreen">
</Uniform>
</Shader>
<Shader Clear="0" GridSubdivision="1" OutputBitDepth="Output" Index="2">
<Uniform Type="float" ChannelName="stretch" DisplayName="Stretch" Name="stretch">
<Duplicate>
</Duplicate>
</Uniform>
<Uniform Type="float" ChannelName="size" DisplayName="Size" Name="size">
<Duplicate>
</Duplicate>
</Uniform>
<Uniform Type="int" ChannelName="kernel" DisplayName="Kernel" Name="kernel">
<Duplicate>
</Duplicate>
</Uniform>
<Uniform Type="vec3" ChannelName="Colour" DisplayName="Colour" Name="screencolour">
<Duplicate>
</Duplicate>
</Uniform>
<Uniform Type="bool" ChannelName="Use colour" DisplayName="Use colour" Name="usecolour">
<Duplicate>
</Duplicate>
</Uniform>
<Uniform Type="bool" ChannelName="usecleanscreen" DisplayName="Use screen input" Name="usecleanscreen">
<Duplicate>
</Duplicate>
</Uniform>
<Uniform Index="1" Tooltip="" DisplayName="Strength" Mipmaps="False" GL_TEXTURE_WRAP_T="GL_CLAMP_TO_EDGE" GL_TEXTURE_WRAP_S="GL_CLAMP_TO_EDGE" GL_TEXTURE_MAG_FILTER="GL_LINEAR" GL_TEXTURE_MIN_FILTER="GL_LINEAR" Type="sampler2D" Name="strength">
<Duplicate>
</Duplicate>
</Uniform>
<Uniform InputColor="67, 77, 83" Mipmaps="False" GL_TEXTURE_WRAP_T="GL_CLAMP_TO_EDGE" GL_TEXTURE_WRAP_S="GL_CLAMP_TO_EDGE" GL_TEXTURE_MAG_FILTER="GL_LINEAR" GL_TEXTURE_MIN_FILTER="GL_LINEAR" Type="sampler2D" Name="adsk_results_pass1">
</Uniform>
<Uniform Index="2" Tooltip="" DisplayName="Screen colour" Mipmaps="False" GL_TEXTURE_WRAP_T="GL_CLAMP_TO_EDGE" GL_TEXTURE_WRAP_S="GL_CLAMP_TO_EDGE" GL_TEXTURE_MAG_FILTER="GL_LINEAR" GL_TEXTURE_MIN_FILTER="GL_LINEAR" Type="sampler2D" Name="cleanscreen">
<Duplicate>
</Duplicate>
</Uniform>
</Shader>
<Page Name="Dilate" Page="0">
<Col Name="Size" Col="1" Page="0">
</Col>
<Col Name="Shape" Col="2" Page="0">
</Col>
<Col Name="Structuring element" Col="3" Page="0">
</Col>
<Col Name="Weight by colour" Col="4" Page="0">
</Col>
</Page>
</ShaderNodePreset>