@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
261 lines (256 loc) • 9.26 kB
JavaScript
import { S as ShaderStore } from './index-MZPybX0H.esm.js';
import { b as bonesDeclaration, a as bakedVertexAnimationDeclaration, i as instancesVertex, c as bonesVertex, d as bakedVertexAnimation } from './bakedVertexAnimation-wpiWOSwD.esm.js';
import { m as morphTargetsVertexGlobalDeclaration, a as morphTargetsVertexDeclaration, b as morphTargetsVertexGlobal, c as morphTargetsVertex } from './morphTargetsVertex-BRsti3ha.esm.js';
import { i as instancesDeclaration } from './instancesDeclaration-BsiN991H.esm.js';
import { s as sceneUboDeclaration } from './sceneUboDeclaration-D-TsHbOr.esm.js';
import { c as clipPlaneVertexDeclaration, a as clipPlaneVertex } from './clipPlaneVertex-DpLNqQi1.esm.js';
import { h as harmonicsFunctions } from './harmonicsFunctions-CyUiGbEt.esm.js';
import { b as bumpVertex } from './bumpVertex-eKH8yilz.esm.js';
// Do not edit.
const name$2 = "geometryVertexDeclaration";
const shader$2 = `uniform mat4 viewProjection;uniform mat4 view;`;
// Sideeffect
if (!ShaderStore.IncludesShadersStore[name$2]) {
ShaderStore.IncludesShadersStore[name$2] = shader$2;
}
/** @internal */
const geometryVertexDeclaration = { name: name$2, shader: shader$2 };
// Do not edit.
const name$1 = "geometryUboDeclaration";
const shader$1 = `
`;
// Sideeffect
if (!ShaderStore.IncludesShadersStore[name$1]) {
ShaderStore.IncludesShadersStore[name$1] = shader$1;
}
/** @internal */
const geometryUboDeclaration = { name: name$1, shader: shader$1 };
// Do not edit.
const name = "geometryVertexShader";
const shader = `precision highp float;
uniform mat4 reflectionMatrix;uniform vec2 vReflectionInfos;uniform vec3 vReflectionColor;
varying vec3 vEnvironmentIrradiance;
uniform vec3 vSphericalL00;uniform vec3 vSphericalL1_1;uniform vec3 vSphericalL10;uniform vec3 vSphericalL11;uniform vec3 vSphericalL2_2;uniform vec3 vSphericalL2_1;uniform vec3 vSphericalL20;uniform vec3 vSphericalL21;uniform vec3 vSphericalL22;
uniform vec3 vSphericalX;uniform vec3 vSphericalY;uniform vec3 vSphericalZ;uniform vec3 vSphericalXX_ZZ;uniform vec3 vSphericalYY_ZZ;uniform vec3 vSphericalZZ;uniform vec3 vSphericalXY;uniform vec3 vSphericalYZ;uniform vec3 vSphericalZX;
attribute vec3 position;
attribute vec3 normal;
varying vec2 vUV;
uniform mat4 diffuseMatrix;
uniform mat4 bumpMatrix;varying vec2 vBumpUV;
uniform mat4 reflectivityMatrix;uniform mat4 albedoMatrix;varying vec2 vReflectivityUV;varying vec2 vAlbedoUV;
varying vec2 vMetallicUV;uniform mat4 metallicMatrix;
varying vec2 vRoughnessUV;uniform mat4 roughnessMatrix;
varying vec2 vSubsurfaceWeightUV;uniform mat4 subsurfaceWeightMatrix;
varying vec2 vTransmissionWeightUV;uniform mat4 transmissionWeightMatrix;
attribute vec2 uv;
attribute vec2 uv2;
varying mat4 vWorldView;
varying vec3 vNormalW;
varying vec3 vNormalV;
varying vec4 vViewPos;
varying vec3 vPositionW;
uniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
void main(void)
{vec3 positionUpdated=position;
vec3 normalUpdated=normal;
vec3 normalUpdated=vec3(0.0,0.0,0.0);
vec2 uvUpdated=uv;
vec2 uv2Updated=uv2;
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
vec4 worldPos=vec4(finalWorld*vec4(positionUpdated,1.0));
vWorldView=view*finalWorld;mat3 normalWorld=mat3(finalWorld);vNormalW=normalize(normalWorld*normalUpdated);
vNormalV=normalize(vec3(finalWorld*vec4(normalUpdated,0.0)));
vNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));
vViewPos=view*worldPos;
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);
mat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];
previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];
previousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];
previousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
vPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);
vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
vPositionW=worldPos.xyz/worldPos.w;
gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);
vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
vUV=uvUpdated;
vBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));
vReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));
vMetallicUV=vec2(metallicMatrix*vec4(uvUpdated,1.0,0.0));
vRoughnessUV=vec2(roughnessMatrix*vec4(uvUpdated,1.0,0.0));
vAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0));
vSubsurfaceColorUV=vec2(subsurfaceColorMatrix*vec4(uvUpdated,1.0,0.0));
vSubsurfaceWeightUV=vec2(subsurfaceWeightMatrix*vec4(uvUpdated,1.0,0.0));
vUV=vec2(diffuseMatrix*vec4(uv2Updated,1.0,0.0));
vUV=uv2Updated;
vBumpUV=vec2(bumpMatrix*vec4(uv2Updated,1.0,0.0));
vReflectivityUV=vec2(reflectivityMatrix*vec4(uv2Updated,1.0,0.0));
vMetallicUV=vec2(metallicMatrix*vec4(uv2Updated,1.0,0.0));
vRoughnessUV=vec2(roughnessMatrix*vec4(uv2Updated,1.0,0.0));
vAlbedoUV=vec2(albedoMatrix*vec4(uv2Updated,1.0,0.0));
vSubsurfaceColorUV=vec2(subsurfaceColorMatrix*vec4(uv2Updated,1.0,0.0));
vSubsurfaceWeightUV=vec2(subsurfaceWeightMatrix*vec4(uv2Updated,1.0,0.0));
vec3 reflectionVector=vec3(reflectionMatrix*vec4(normalUpdated,0.0)).xyz;
reflectionVector.z*=-1.0;
vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector)*vReflectionInfos.x;
}
`;
// Sideeffect
if (!ShaderStore.ShadersStore[name]) {
ShaderStore.ShadersStore[name] = shader;
}
const includes = [bonesDeclaration, bakedVertexAnimationDeclaration, morphTargetsVertexGlobalDeclaration, morphTargetsVertexDeclaration, instancesDeclaration, geometryVertexDeclaration, sceneUboDeclaration, geometryUboDeclaration, clipPlaneVertexDeclaration, harmonicsFunctions, morphTargetsVertexGlobal, morphTargetsVertex, instancesVertex, bonesVertex, bakedVertexAnimation, clipPlaneVertex, bumpVertex];
for (const inc of includes) {
if (!ShaderStore.IncludesShadersStore[inc.name]) {
ShaderStore.IncludesShadersStore[inc.name] = inc.shader;
}
}
/** @internal */
const geometryVertexShader = { name, shader };
export { geometryVertexShader };
//# sourceMappingURL=geometry.vertex-BcfO2J7x.esm.js.map