@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
JavaScript
// 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 = `
attribute position: vec3f;
attribute normal: vec3f;
varying vPositionW: vec3f;
varying vNormalW: vec3f;
attribute uv: vec2f;
attribute uv2: vec2f;
varying vMainUV1: vec2f;
varying vMainUV2: vec2f;
varying vDiffuseUV: vec2f;
varying vPositionUVW: vec3f;
varying vDirectionW: vec3f;
@vertex
fn main(input : VertexInputs)->FragmentInputs {
vertexOutputs.vPositionUVW=input.position;
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);}
vertexOutputs.position=scene.viewProjection*finalWorld* vec4f(input.position,1.0);
var worldPos: vec4f=finalWorld* vec4f(input.position,1.0);vertexOutputs.vPositionW= worldPos.xyz;
var normalWorld: mat3x3f=mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);
normalWorld=transposeMat3(inverseMat3(normalWorld));
vertexOutputs.vNormalW=normalize(normalWorld*input.normal);
vertexOutputs.vDirectionW=normalize((finalWorld*vec4f(input.position,0.0)).xyz);
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));}
var uv: vec2f=vec2f(0.,0.);
var uv=input.uv;
var uv2: vec2f=vec2f(0.,0.);
var uv2=input.uv2;
vertexOutputs.vMainUV1=uv;
vertexOutputs.vMainUV2=uv2;
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;}
vertexOutputs.vColor=vertexInputs.color;
}
`;
// Sideeffect
if (!ShaderStore.ShadersStoreWGSL[name]) {
ShaderStore.ShadersStoreWGSL[name] = shader;
}
/** @internal */
export const backgroundVertexShaderWGSL = { name, shader };
//# sourceMappingURL=background.vertex.js.map