Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

26 righe
783 B

  1. #version 330
  2. // Input vertex attributes (from vertex shader)
  3. in vec2 fragTexCoord;
  4. in vec4 fragColor;
  5. // Input uniform values
  6. uniform sampler2D texture0;
  7. uniform vec4 colDiffuse;
  8. // Output fragment color
  9. out vec4 finalColor;
  10. // NOTE: Add here your custom variables
  11. void main()
  12. {
  13. // Texel color fetching from texture sampler
  14. // NOTE: Calculate alpha using signed distance field (SDF)
  15. float distanceFromOutline = texture(texture0, fragTexCoord).a - 0.5;
  16. float distanceChangePerFragment = length(vec2(dFdx(distanceFromOutline), dFdy(distanceFromOutline)));
  17. float alpha = smoothstep(-distanceChangePerFragment, distanceChangePerFragment, distanceFromOutline);
  18. // Calculate final fragment color
  19. finalColor = vec4(fragColor.rgb, fragColor.a*alpha);
  20. }