UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

125 lines 4.32 kB
// Do not edit. import { ShaderStore } from "../Engines/shaderStore.js"; import "./ShadersInclude/backgroundUboDeclaration.js"; import "./ShadersInclude/helperFunctions.js"; import "./ShadersInclude/bonesDeclaration.js"; import "./ShadersInclude/bakedVertexAnimationDeclaration.js"; import "./ShadersInclude/instancesDeclaration.js"; import "./ShadersInclude/clipPlaneVertexDeclaration.js"; import "./ShadersInclude/fogVertexDeclaration.js"; import "./ShadersInclude/lightVxUboDeclaration.js"; import "./ShadersInclude/logDepthDeclaration.js"; import "./ShadersInclude/instancesVertex.js"; import "./ShadersInclude/bonesVertex.js"; import "./ShadersInclude/bakedVertexAnimation.js"; import "./ShadersInclude/clipPlaneVertex.js"; import "./ShadersInclude/fogVertex.js"; import "./ShadersInclude/shadowsVertex.js"; import "./ShadersInclude/logDepthVertex.js"; const name = "backgroundVertexShader"; const shader = `#include<backgroundUboDeclaration> #include<helperFunctions> attribute position: vec3f; #ifdef NORMAL attribute normal: vec3f; #endif #include<bonesDeclaration> #include<bakedVertexAnimationDeclaration> #include<instancesDeclaration> varying vPositionW: vec3f; #ifdef NORMAL varying vNormalW: vec3f; #endif #ifdef UV1 attribute uv: vec2f; #endif #ifdef UV2 attribute uv2: vec2f; #endif #ifdef MAINUV1 varying vMainUV1: vec2f; #endif #ifdef MAINUV2 varying vMainUV2: vec2f; #endif #if defined(DIFFUSE) && DIFFUSEDIRECTUV==0 varying vDiffuseUV: vec2f; #endif #include<clipPlaneVertexDeclaration> #include<fogVertexDeclaration> #include<lightVxUboDeclaration>[0..maxSimultaneousLights] #ifdef REFLECTIONMAP_SKYBOX varying vPositionUVW: vec3f; #endif #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) varying vDirectionW: vec3f; #endif #include<logDepthDeclaration> #define CUSTOM_VERTEX_DEFINITIONS @vertex fn main(input : VertexInputs)->FragmentInputs { #define CUSTOM_VERTEX_MAIN_BEGIN #ifdef REFLECTIONMAP_SKYBOX vertexOutputs.vPositionUVW=input.position; #endif #include<instancesVertex> #include<bonesVertex> #include<bakedVertexAnimation> #ifdef MULTIVIEW if (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*finalWorld* vec4f(input.position,1.0);} else {vertexOutputs.position=scene.viewProjectionR*finalWorld* vec4f(input.position,1.0);} #else vertexOutputs.position=scene.viewProjection*finalWorld* vec4f(input.position,1.0); #endif var worldPos: vec4f=finalWorld* vec4f(input.position,1.0);vertexOutputs.vPositionW= worldPos.xyz; #ifdef NORMAL var normalWorld: mat3x3f=mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz); #ifdef NONUNIFORMSCALING normalWorld=transposeMat3(inverseMat3(normalWorld)); #endif vertexOutputs.vNormalW=normalize(normalWorld*input.normal); #endif #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) vertexOutputs.vDirectionW=normalize((finalWorld*vec4f(input.position,0.0)).xyz); #ifdef EQUIRECTANGULAR_RELFECTION_FOV var screenToWorld: mat3x3f=inverseMat3( mat3x3f(finalWorld*scene.viewProjection));var segment: vec3f=mix(vertexOutputs.vDirectionW,screenToWorld* vec3f(0.0,0.0,1.0),abs(fFovMultiplier-1.0));if (fFovMultiplier<=1.0) {vertexOutputs.vDirectionW=normalize(segment);} else {vertexOutputs.vDirectionW=normalize(vertexOutputs.vDirectionW+(vertexOutputs.vDirectionW-segment));} #endif #endif #ifndef UV1 var uv: vec2f=vec2f(0.,0.); #else var uv=input.uv; #endif #ifndef UV2 var uv2: vec2f=vec2f(0.,0.); #else var uv2=input.uv2; #endif #ifdef MAINUV1 vertexOutputs.vMainUV1=uv; #endif #ifdef MAINUV2 vertexOutputs.vMainUV2=uv2; #endif #if defined(DIFFUSE) && DIFFUSEDIRECTUV==0 if (uniforms.vDiffuseInfos.x==0.) {vertexOutputs.vDiffuseUV= (uniforms.diffuseMatrix* vec4f(uv,1.0,0.0)).xy;} else {vertexOutputs.vDiffuseUV= (uniforms.diffuseMatrix* vec4f(uv2,1.0,0.0)).xy;} #endif #include<clipPlaneVertex> #include<fogVertex> #include<shadowsVertex>[0..maxSimultaneousLights] #ifdef VERTEXCOLOR vertexOutputs.vColor=vertexInputs.color; #endif #include<logDepthVertex> #define CUSTOM_VERTEX_MAIN_END } `; // Sideeffect if (!ShaderStore.ShadersStoreWGSL[name]) { ShaderStore.ShadersStoreWGSL[name] = shader; } /** @internal */ export const backgroundVertexShaderWGSL = { name, shader }; //# sourceMappingURL=background.vertex.js.map