import { Effect } from "babylonjs"; let name = 'gradientVertexShader'; let shader = `precision highp float; attribute vec3 position; #ifdef NORMAL attribute vec3 normal; #endif #ifdef UV1 attribute vec2 uv; #endif #ifdef UV2 attribute vec2 uv2; #endif #ifdef VERTEXCOLOR attribute vec4 color; #endif #include #include uniform mat4 view; uniform mat4 viewProjection; #ifdef DIFFUSE varying vec2 vDiffuseUV; uniform mat4 diffuseMatrix; uniform vec2 vDiffuseInfos; #endif #ifdef POINTSIZE uniform float pointSize; #endif varying vec3 vPositionW; varying vec3 vPosition; #ifdef NORMAL varying vec3 vNormalW; #endif #ifdef VERTEXCOLOR varying vec4 vColor; #endif #include #include #include<__decl__lightFragment>[0..maxSimultaneousLights] void main(void) { #include #include gl_Position=viewProjection*finalWorld*vec4(position,1.0); vec4 worldPos=finalWorld*vec4(position,1.0); vPositionW=vec3(worldPos); vPosition=position; #ifdef NORMAL vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0))); #endif #ifndef UV1 vec2 uv=vec2(0.,0.); #endif #ifndef UV2 vec2 uv2=vec2(0.,0.); #endif #ifdef DIFFUSE if (vDiffuseInfos.x == 0.) { vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0)); } else { vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); } #endif #include #include #include[0..maxSimultaneousLights] #ifdef VERTEXCOLOR vColor=color; #endif #ifdef POINTSIZE gl_PointSize=pointSize; #endif } `; Effect.ShadersStore[name] = shader; export { shader, name };