浏览代码

Merge branch 'master' of https://github.com/BabylonJS/Babylon.js

# Conflicts:
#	src/Shaders/spriteMap.fragment.ts
David Catuhe 5 年之前
父节点
当前提交
8b46dbf8a5
共有 2 个文件被更改,包括 0 次插入114 次删除
  1. 0 81
      src/Shaders/spriteMap.fragment.ts
  2. 0 33
      src/Shaders/spriteMap.vertex.ts

+ 0 - 81
src/Shaders/spriteMap.fragment.ts

@@ -1,81 +0,0 @@
-import { Effect } from "../Materials/effect";
-
-let name = 'spriteMapPixelShader';
-let shader = `precision highp float;
-varying vec3 vPosition;
-varying vec2 vUV;
-varying vec2 tUV;
-uniform float time;
-uniform float spriteCount;
-uniform sampler2D spriteSheet;
-uniform vec2 spriteMapSize;
-uniform vec2 outputSize;
-uniform vec2 stageSize;
-uniform float maxAnimationFrames;
-uniform sampler2D frameMap;
-uniform sampler2D tileMaps[LAYERS];
-uniform sampler2D animationMap;
-uniform vec3 colorMul;
-float mt;
-float fdStep=1./4.;
-mat4 getFrameData(float frameID){
-float fX=frameID/spriteCount;
-return mat4(
-texture(frameMap,vec2(fX,0.),0.),
-texture(frameMap,vec2(fX,fdStep*1.),0.),
-texture(frameMap,vec2(fX,fdStep*2.),0.),
-vec4(0.)
-);
-}
-void main(){
-vec4 color=vec4(0.);
-vec2 tileUV=fract(tUV);
-#ifdef FLIPU
-tileUV.y=1.0-tileUV.y;
-#endif
-vec2 tileID=floor(tUV);
-vec2 sheetUnits=1./spriteMapSize;
-float spriteUnits=1./spriteCount;
-vec2 stageUnits=1./stageSize;
-for(int i=0; i<LAYERS; i++){
-float frameID;
-switch(i){
-#define LAYER_ID_SWITCH
-}
-vec4 animationData=texture(animationMap,vec2((frameID+0.5)/spriteCount,0.),0.);
-if(animationData.y>0.){
-mt=mod(time*animationData.z,1.0);
-float aFrameSteps=1./maxAnimationFrames;
-for(float f=0.; f<maxAnimationFrames; f++){
-if(animationData.y>mt){
-frameID=animationData.x;
-break;
-}
-animationData=texture(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.);
-}
-}
-
-mat4 frameData=getFrameData(frameID+0.5);
-vec2 frameSize=(frameData[0].wz)/spriteMapSize;
-vec2 offset=frameData[0].xy*sheetUnits;
-vec2 ratio=frameData[2].xy/frameData[0].wz;
-
-if(frameData[2].z == 1.){
-tileUV.xy=tileUV.yx;
-}
-if(i == 0){
-color=texture(spriteSheet,tileUV*frameSize+offset);
-} else {
-vec4 nc=texture(spriteSheet,tileUV*frameSize+offset);
-float alpha=min(color.a+nc.a,1.0);
-vec3 mixed=mix(color.xyz,nc.xyz,nc.a);
-color=vec4(mixed,alpha);
-}
-}
-color.xyz*=colorMul;
-gl_FragColor=color;
-}`;
-
-Effect.ShadersStore[name] = shader;
-/** @hidden */
-export var spriteMapPixelShader = { name, shader };

+ 0 - 33
src/Shaders/spriteMap.vertex.ts

@@ -1,33 +0,0 @@
-import { Effect } from "../Materials/effect";
-
-let name = 'spriteMapVertexShader';
-let shader = `precision highp float;
-
-attribute vec3 position;
-attribute vec3 normal;
-attribute vec2 uv;
-
-varying vec3 vPosition;
-varying vec2 vUV;
-varying vec2 tUV;
-varying vec2 stageUnits;
-varying vec2 levelUnits;
-varying vec2 tileID;
-
-uniform float time;
-uniform mat4 worldViewProjection;
-uniform vec2 outputSize;
-uniform vec2 stageSize;
-uniform vec2 spriteMapSize;
-uniform float stageScale;
-void main() {
-vec4 p=vec4( position,1. );
-vPosition=p.xyz;
-vUV=uv;
-tUV=uv*stageSize;
-gl_Position=worldViewProjection*p;
-}`;
-
-Effect.ShadersStore[name] = shader;
-/** @hidden */
-export var spriteMapVertexShader = { name, shader };