@luma.gl/shadertools
Version:
Shader module system for luma.gl
37 lines (36 loc) • 1.02 kB
JavaScript
// luma.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
const uniformBlock = /* glsl */ `\
layout(std140) uniform pbrProjectionUniforms {
mat4 modelViewProjectionMatrix;
mat4 modelMatrix;
mat4 normalMatrix;
vec3 camera;
} pbrProjection;
`;
const wgslUniformBlock = /* wgsl */ `\
struct pbrProjectionUniforms {
modelViewProjectionMatrix: mat4x4<f32>,
modelMatrix: mat4x4<f32>,
normalMatrix: mat4x4<f32>,
camera: vec3<f32>
};
var<uniform> pbrProjection: pbrProjectionUniforms;
`;
export const pbrProjection = {
name: 'pbrProjection',
bindingLayout: [{ name: 'pbrProjection', group: 0 }],
source: wgslUniformBlock,
vs: uniformBlock,
fs: uniformBlock,
// TODO why is this needed?
getUniforms: props => props,
uniformTypes: {
modelViewProjectionMatrix: 'mat4x4<f32>',
modelMatrix: 'mat4x4<f32>',
normalMatrix: 'mat4x4<f32>',
camera: 'vec3<f32>'
}
};
//# sourceMappingURL=pbr-projection.js.map