git-svn-id: svn://db.shs.com.ru/libs@627 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-11-22 20:22:30 +00:00
parent 09248aae34
commit e65ee56ee4
21 changed files with 527 additions and 208 deletions

View File

@@ -133,6 +133,7 @@ void main(void) {
//calcLight(0, normal, v);
qgl_FragColor.rgb = max(vec3(0), li * diffuse + si * specular + emission);
//qgl_FragColor.rgb = vec3(1);
qgl_FragColor.a = 1;

View File

@@ -0,0 +1,48 @@
// vert //
out vec4 object_color_g;
out float mat_scale;
void main(void) {
gl_Position = qgl_ftransform();
object_color_g = qgl_ObjectColor;
mat_scale = pow(qgl_ModelMatrix[0][0] * qgl_ModelMatrix[1][1] * qgl_ModelMatrix[2][2], 0.3333);
}
// geom //
layout (lines) in;
layout (triangle_strip, max_vertices = 4) out;
in float mat_scale[];
in vec4 object_color_g[];
out vec4 object_color;
uniform float line_width, z_offset;
uniform mat4 qgl_ProjMatrix;
void main(void) {
object_color = object_color_g[0];
vec2 dir = normalize(gl_in[0].gl_Position.xy - gl_in[1].gl_Position.xy);
vec2 side = cross(vec3(dir, 0), vec3(0, 0, 1)).xy;
vec4 vo = vec4(0, 0, z_offset, 0);
float dts = 0.05 * line_width * mat_scale[0];
dir *= dts;
side *= dts;
gl_Position = gl_in[0].gl_Position + vec4((dir + side), 0, 0)*qgl_ProjMatrix + vo; EmitVertex();
gl_Position = gl_in[0].gl_Position + vec4((dir - side), 0, 0)*qgl_ProjMatrix + vo; EmitVertex();
gl_Position = gl_in[1].gl_Position - vec4((dir - side), 0, 0)*qgl_ProjMatrix + vo; EmitVertex();
gl_Position = gl_in[1].gl_Position - vec4((dir + side), 0, 0)*qgl_ProjMatrix + vo; EmitVertex();
EndPrimitive();
}
// frag //
in vec4 object_color;
uniform float scale;
void main(void) {
qgl_FragColor = object_color;
}