UNPKG

@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.

42 lines (39 loc) 2.47 kB
import { S as ShaderStore } from './index-MZPybX0H.esm.js'; import { g as gaussianSplattingVertexDeclaration, a as gaussianSplattingUboDeclaration, b as gaussianSplatting } from './gaussianSplatting-B1z0qJ8N.esm.js'; import { s as sceneUboDeclaration } from './sceneUboDeclaration-D-TsHbOr.esm.js'; import { m as meshUboDeclaration } from './meshUboDeclaration-Bv_BtoSy.esm.js'; // Do not edit. const name = "gaussianSplattingVoxelVertexShader"; const shader = `#include<__decl__gaussianSplattingVertex> uniform vec2 dataTextureSize;uniform float alpha;uniform mat4 invWorldScale;uniform mat4 viewMatrix;uniform sampler2D rotationsATexture;uniform sampler2D rotationsBTexture;uniform sampler2D rotationScaleTexture;uniform sampler2D centersTexture;uniform sampler2D colorsTexture; #if IS_COMPOUND uniform mat4 partWorld[MAX_PART_COUNT];uniform float partVisibility[MAX_PART_COUNT];uniform sampler2D partIndicesTexture; #endif varying vec3 vNormalizedPosition;varying vec3 vNormalizedCenterPosition;varying float vAlpha;varying vec2 vPatchPosition; #include<gaussianSplatting> void main(void) {float splatIndex=getSplatIndex(int(position.z+0.5));Splat splat=readSplat(splatIndex); #if IS_COMPOUND if (partVisibility[splat.partIndex]==0.0) {gl_Position=vec4(2.0,2.0,2.0,1.0);return;} mat4 splatWorld=getPartWorld(splat.partIndex); #else mat4 splatWorld=world; #endif vec4 worldPos=computeVoxelSplatWorldPos(splat.rotationA,splat.rotationB,splat.rotationScale,splat.center.xyz,splatWorld,viewMatrix,invWorldScale,position.xy);gl_Position=viewMatrix*invWorldScale*worldPos;vNormalizedPosition=gl_Position.xyz*0.5+0.5;vec4 viewCenterPos=viewMatrix*invWorldScale*splatWorld*vec4(splat.center.xyz,1.0);vNormalizedCenterPosition=viewCenterPos.xyz*0.5+0.5;vAlpha=splat.color.w*alpha; #if IS_COMPOUND vAlpha*=partVisibility[splat.partIndex]; #endif vPatchPosition=position.xy;}`; // Sideeffect if (!ShaderStore.ShadersStore[name]) { ShaderStore.ShadersStore[name] = shader; } const includes = [gaussianSplattingVertexDeclaration, sceneUboDeclaration, meshUboDeclaration, gaussianSplattingUboDeclaration, gaussianSplatting]; for (const inc of includes) { if (!ShaderStore.IncludesShadersStore[inc.name]) { ShaderStore.IncludesShadersStore[inc.name] = inc.shader; } } /** @internal */ const gaussianSplattingVoxelVertexShader = { name, shader }; export { gaussianSplattingVoxelVertexShader }; //# sourceMappingURL=gaussianSplattingVoxel.vertex-4wucSakc.esm.js.map