UNPKG

@luma.gl/shadertools

Version:

Shader module system for luma.gl

40 lines 1.48 kB
// luma.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import { floatColors } from "../../color/float-colors.js"; import { lighting } from "../lights/lighting.js"; import { PHONG_VS, PHONG_FS } from "../phong-material/phong-shaders-glsl.js"; import { PHONG_WGSL } from "../phong-material/phong-shaders-wgsl.js"; const DEFAULT_SPECULAR_COLOR = [38.25, 38.25, 38.25]; /** In Gouraud shading, color is calculated for each triangle vertex normal, and then color is interpolated colors across the triangle */ export const gouraudMaterial = { props: {}, name: 'gouraudMaterial', bindingLayout: [{ name: 'gouraudMaterial', group: 3 }], // Note these are switched between phong and gouraud vs: PHONG_FS.replace('phongMaterial', 'gouraudMaterial'), fs: PHONG_VS.replace('phongMaterial', 'gouraudMaterial'), source: PHONG_WGSL.replaceAll('phongMaterial', 'gouraudMaterial'), defines: { LIGHTING_VERTEX: true }, dependencies: [lighting, floatColors], uniformTypes: { unlit: 'i32', ambient: 'f32', diffuse: 'f32', shininess: 'f32', specularColor: 'vec3<f32>' }, defaultUniforms: { unlit: false, ambient: 0.35, diffuse: 0.6, shininess: 32, specularColor: DEFAULT_SPECULAR_COLOR }, getUniforms(props) { return { ...gouraudMaterial.defaultUniforms, ...props }; } }; //# sourceMappingURL=gouraud-material.js.map