Ali Mohsin
feat: Add virtual try-on system components including DensePose, SMPL, and pix2pixHD models, rendering, and utilities.
5db43ff
| VERTEX_SHADER = """ | |
| #version 330 core | |
| layout (location = 0) in vec3 position; | |
| out vec3 FragPos; | |
| uniform mat4 model; | |
| uniform mat4 view; | |
| uniform mat4 projection; | |
| void main() | |
| { | |
| gl_Position = projection * view * model * vec4(position, 1.0f); | |
| FragPos = vec3(model * vec4(position, 1.0f)); | |
| } | |
| """ | |
| GEOMETRY_SHADER = """ | |
| #version 330 | |
| layout(triangles) in; | |
| layout(triangle_strip, max_vertices=3) out; | |
| in vec3 FragPos []; | |
| out vec3 normal; | |
| out vec3 ex_FragPos; | |
| void main( void ) | |
| { | |
| //vec3 a = ( gl_in[1].gl_Position - gl_in[0].gl_Position ).xyz; | |
| vec3 a = FragPos[1]-FragPos[0]; | |
| //vec3 b = ( gl_in[2].gl_Position - gl_in[0].gl_Position ).xyz; | |
| vec3 b = FragPos[2]-FragPos[0]; | |
| vec3 N = -normalize( cross( b, a ) ); | |
| for( int i=0; i<gl_in.length( ); ++i ) | |
| { | |
| gl_Position = gl_in[i].gl_Position; | |
| normal = N; | |
| ex_FragPos=FragPos[i]; | |
| EmitVertex( ); | |
| } | |
| EndPrimitive( ); | |
| } | |
| """ | |
| FRAGMENT_SHADER = """ | |
| #version 330 core | |
| in vec3 ex_FragPos; | |
| in vec3 normal; | |
| out vec4 color; | |
| //uniform vec3 lightPos; | |
| //uniform vec3 objectColor; | |
| void main() | |
| { | |
| // Ambient | |
| //float ambientStrength = 0.2f; | |
| float ambient = 0.4; | |
| vec3 lightPos = vec3(10,100,-1000); | |
| vec3 objectColor = vec3(1,1,1); | |
| // Diffuse | |
| vec3 norm = normalize(normal); | |
| vec3 lightDir = normalize(lightPos - ex_FragPos); | |
| float diffuse = max(dot(norm, lightDir)*0.6, -0.3); | |
| vec3 result = (ambient + diffuse)* objectColor; | |
| float gamma = 1.1; | |
| result = pow(result, vec3(1.0/gamma)); | |
| color = vec4(result, 1); | |
| //color=vec4(1,0,0,1); | |
| } | |
| """ | |