sprites.vertex.js 1.3 KB

12345678910111213141516171819202122
  1. // Do not edit.
  2. import { ShaderStore } from "../Engines/shaderStore.js";
  3. import "./ShadersInclude/fogVertexDeclaration.js";
  4. const name = "spritesVertexShader";
  5. const shader = `attribute vec4 position;attribute vec2 options;attribute vec2 offsets;attribute vec2 inverts;attribute vec4 cellInfo;attribute vec4 color;uniform mat4 view;uniform mat4 projection;varying vec2 vUV;varying vec4 vColor;
  6. #include<fogVertexDeclaration>
  7. #define CUSTOM_VERTEX_DEFINITIONS
  8. void main(void) {
  9. #define CUSTOM_VERTEX_MAIN_BEGIN
  10. vec3 viewPos=(view*vec4(position.xyz,1.0)).xyz;
  11. vec2 cornerPos;float angle=position.w;vec2 size=vec2(options.x,options.y);vec2 offset=offsets.xy;cornerPos=vec2(offset.x-0.5,offset.y -0.5)*size;vec3 rotatedCorner;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;viewPos+=rotatedCorner;gl_Position=projection*vec4(viewPos,1.0);
  12. vColor=color;vec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));vec2 uvPlace=cellInfo.xy;vec2 uvSize=cellInfo.zw;vUV.x=uvPlace.x+uvSize.x*uvOffset.x;vUV.y=uvPlace.y+uvSize.y*uvOffset.y;
  13. #ifdef FOG
  14. vFogDistance=viewPos;
  15. #endif
  16. #define CUSTOM_VERTEX_MAIN_END
  17. }`;
  18. // Sideeffect
  19. ShaderStore.ShadersStore[name] = shader;
  20. /** @internal */
  21. export const spritesVertexShader = { name, shader };
  22. //# sourceMappingURL=sprites.vertex.js.map