UNPKG

@luma.gl/shadertools

Version:

Shader module system for luma.gl

38 lines 1.22 kB
// luma.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import { lighting } from "../lights/lighting.js"; import { PHONG_WGSL } from "./phong-shaders-wgsl.js"; import { PHONG_VS, PHONG_FS } from "./phong-shaders-glsl.js"; /** 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', dependencies: [lighting], // Note these are switched between phong and gouraud source: PHONG_WGSL, vs: PHONG_VS, fs: PHONG_FS, defines: { LIGHTING_FRAGMENT: 1 }, uniformTypes: { ambient: 'f32', diffuse: 'f32', shininess: 'f32', specularColor: 'vec3<f32>' }, defaultUniforms: { ambient: 0.35, diffuse: 0.6, shininess: 32, specularColor: [0.15, 0.15, 0.15] }, getUniforms(props) { const uniforms = { ...props }; if (uniforms.specularColor) { uniforms.specularColor = uniforms.specularColor.map(x => x / 255); } return { ...phongMaterial.defaultUniforms, ...uniforms }; } }; //# sourceMappingURL=phong-material.js.map