OpenGL: edge shader discards fragments of unused edges
Discarded edges should not update depth buffer or blend with color buffer. Geometry shader version will make this obsolete.
This commit is contained in:
parent
222ba0247f
commit
a394f4e545
|
@ -129,6 +129,7 @@ set(SRC
|
|||
data_to_c_simple(shaders/gpu_shader_depth_only_frag.glsl SRC)
|
||||
data_to_c_simple(shaders/gpu_shader_uniform_color_frag.glsl SRC)
|
||||
data_to_c_simple(shaders/gpu_shader_flat_color_frag.glsl SRC)
|
||||
data_to_c_simple(shaders/gpu_shader_flat_color_alpha_test_0_frag.glsl SRC)
|
||||
data_to_c_simple(shaders/gpu_shader_2D_vert.glsl SRC)
|
||||
data_to_c_simple(shaders/gpu_shader_2D_flat_color_vert.glsl SRC)
|
||||
data_to_c_simple(shaders/gpu_shader_2D_smooth_color_vert.glsl SRC)
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
extern char datatoc_gpu_shader_depth_only_frag_glsl[];
|
||||
extern char datatoc_gpu_shader_uniform_color_frag_glsl[];
|
||||
extern char datatoc_gpu_shader_flat_color_frag_glsl[];
|
||||
extern char datatoc_gpu_shader_flat_color_alpha_test_0_frag_glsl[];
|
||||
extern char datatoc_gpu_shader_2D_vert_glsl[];
|
||||
extern char datatoc_gpu_shader_2D_flat_color_vert_glsl[];
|
||||
extern char datatoc_gpu_shader_2D_smooth_color_vert_glsl[];
|
||||
|
@ -664,7 +665,7 @@ GPUShader *GPU_shader_get_builtin_shader(GPUBuiltinShader shader)
|
|||
if (!GG.shaders.edges_front_back_persp)
|
||||
GG.shaders.edges_front_back_persp = GPU_shader_create(
|
||||
datatoc_gpu_shader_edges_front_back_persp_vert_glsl,
|
||||
datatoc_gpu_shader_flat_color_frag_glsl,
|
||||
datatoc_gpu_shader_flat_color_alpha_test_0_frag_glsl,
|
||||
NULL, NULL, NULL, 0, 0, 0);
|
||||
retval = GG.shaders.edges_front_back_persp;
|
||||
break;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
#if __VERSION__ == 120
|
||||
flat varying vec4 finalColor;
|
||||
#define fragColor gl_FragColor
|
||||
#else
|
||||
flat in vec4 finalColor;
|
||||
out vec4 fragColor;
|
||||
#endif
|
||||
|
||||
void main()
|
||||
{
|
||||
if (finalColor.a > 0.0)
|
||||
fragColor = finalColor;
|
||||
else
|
||||
discard;
|
||||
}
|
Loading…
Reference in New Issue