outline.vertex.fx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Attribute
  2. attribute vec3 position;
  3. attribute vec3 normal;
  4. #include<bonesDeclaration>
  5. #include<morphTargetsVertexGlobalDeclaration>
  6. #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
  7. // Uniform
  8. uniform float offset;
  9. #include<instancesDeclaration>
  10. uniform mat4 viewProjection;
  11. #ifdef ALPHATEST
  12. varying vec2 vUV;
  13. uniform mat4 diffuseMatrix;
  14. #ifdef UV1
  15. attribute vec2 uv;
  16. #endif
  17. #ifdef UV2
  18. attribute vec2 uv2;
  19. #endif
  20. #endif
  21. #include<logDepthDeclaration>
  22. void main(void)
  23. {
  24. vec3 positionUpdated = position;
  25. vec3 normalUpdated = normal;
  26. #ifdef UV1
  27. vec2 uvUpdated = uv;
  28. #endif
  29. #include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
  30. vec3 offsetPosition = positionUpdated + (normalUpdated * offset);
  31. #include<instancesVertex>
  32. #include<bonesVertex>
  33. gl_Position = viewProjection * finalWorld * vec4(offsetPosition, 1.0);
  34. #ifdef ALPHATEST
  35. #ifdef UV1
  36. vUV = vec2(diffuseMatrix * vec4(uvUpdated, 1.0, 0.0));
  37. #endif
  38. #ifdef UV2
  39. vUV = vec2(diffuseMatrix * vec4(uv2, 1.0, 0.0));
  40. #endif
  41. #endif
  42. #include<logDepthVertex>
  43. }