|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- //-----------------------------------------------------------------------------
- //GLSL
- //-----------------------------------------------------------------------------
- [vert.glsl]
-
- #version 120
-
- attribute vec2 in_position;
-
- uniform vec2 in_screen_res;
-
- uniform float in_step;
- varying vec2 pass_pos;
- varying vec2 pass_p[8];
-
- void main()
- {
- //JFA ALGO
- pass_pos = ((vec2(1.0) + in_position) * 0.5);
-
- float k = in_step;
-
- vec2 p2 = pass_pos;
- pass_p[0] = p2 + vec2(-k, -k);
- pass_p[1] = p2 + vec2( 0, -k);
- pass_p[2] = p2 + vec2( k, -k);
- pass_p[3] = p2 + vec2(-k, 0);
- pass_p[4] = p2 + vec2( k, 0);
- pass_p[5] = p2 + vec2(-k, k);
- pass_p[6] = p2 + vec2( 0, k);
- pass_p[7] = p2 + vec2( k, k);
-
- gl_Position = vec4(in_position, 0.0, 1.0);
- }
-
- [frag.glsl]
-
- #version 120
-
- #if defined GL_ES
- precision highp float;
- #endif
-
- uniform sampler2D in_texture;
-
- varying vec2 pass_pos;
- varying vec2 pass_p[8];
-
- void main(void)
- {
- vec4 src_color = texture2D(in_texture, pass_pos);
- vec4 neigh_color;
-
- for (int i = 0; i < 8; ++i)
- {
- neigh_color = texture2D(in_texture, pass_p[i]);
-
- if (neigh_color.z > 0.0 && src_color.z == 0.0)
- src_color = neigh_color;
- else if (neigh_color.z > 0.0 && src_color.z > 0.0 &&
- length(neigh_color.xy - pass_pos) < length(src_color.xy - pass_pos))
- src_color = neigh_color;
-
- }
-
- gl_FragColor = src_color;
- }
-
- //-----------------------------------------------------------------------------
- //HLSL
- //-----------------------------------------------------------------------------
- [vert.hlsl]
-
- void main(float2 in_Position : POSITION,
- out float2 pass_Position : TEXCOORD0,
- out float4 out_Position : POSITION)
- {
- pass_Position = in_Position;
- out_Position = float4(in_Position, 0.0, 1.0);
- }
-
- [frag.hlsl]
-
- void main(in float2 pass_Position : TEXCOORD0,
- uniform sampler2D in_Texture,
- uniform float in_Flag,
- uniform float3 in_Point,
- uniform float3 in_Color,
- out float4 out_FragColor : COLOR)
- {
- out_FragColor = float4(0.0);
- }
-
|