UNPKG

@luma.gl/shadertools

Version:

Shader module system for luma.gl

40 lines 1.31 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_WGSL } from "./phong-shaders-wgsl.js"; import { PHONG_VS, PHONG_FS } from "./phong-shaders-glsl.js"; const DEFAULT_SPECULAR_COLOR = [38.25, 38.25, 38.25]; /** In Phong shading, the normal vector is linearly interpolated across the surface of the polygon from the polygon's vertex normals. */ export const phongMaterial = { name: 'phongMaterial', firstBindingSlot: 0, bindingLayout: [{ name: 'phongMaterial', group: 3 }], dependencies: [lighting, floatColors], // Note these are switched between phong and gouraud source: PHONG_WGSL, vs: PHONG_VS, fs: PHONG_FS, defines: { LIGHTING_FRAGMENT: true }, 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 { ...phongMaterial.defaultUniforms, ...props }; } }; //# sourceMappingURL=phong-material.js.map