UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

32 lines 2.72 kB
import { TgdVec4 } from "./../math/index.js"; import { TgdMaterial } from "./material.js"; const DEFAULT_COLOR = new TgdVec4(0.6, 1, 0.9, 1); export class TgdMaterialGhost extends TgdMaterial { constructor({ color = DEFAULT_COLOR, exponent = 3, intensity = 3 } = {}) { super({ uniforms: { uniMaterialGhostExponent: "float", uniMaterialGhostIntensity: "float", }, setUniforms: ({ program }) => { program.uniform1f("uniMaterialGhostExponent", this.exponent); program.uniform1f("uniMaterialGhostIntensity", this.intensity); }, fragmentShaderCode: [ `float light = 1.0 - varNormal.z;`, `light = pow(light, uniMaterialGhostExponent);`, `vec4 color = vec4(${color.join(", ")});`, `return vec4(color.rgb * uniMaterialGhostIntensity, color.a) * light;`, ], vertexShaderCode: () => [`varNormal = mat3(uniModelViewMatrix) * ${this.attNormal};`], varyings: { varNormal: "vec3", }, }); this.exponent = 3; this.intensity = 3; this.intensity = intensity; this.exponent = exponent; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvZ2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBUXhDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRWpELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBSTdDLFlBQVksRUFBRSxLQUFLLEdBQUcsYUFBYSxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLENBQUMsS0FBOEIsRUFBRTtRQUM1RixLQUFLLENBQUM7WUFDRixRQUFRLEVBQUU7Z0JBQ04sd0JBQXdCLEVBQUUsT0FBTztnQkFDakMseUJBQXlCLEVBQUUsT0FBTzthQUNyQztZQUNELFdBQVcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtnQkFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7Z0JBQzVELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ2xFLENBQUM7WUFDRCxrQkFBa0IsRUFBRTtnQkFDaEIsa0NBQWtDO2dCQUNsQywrQ0FBK0M7Z0JBQy9DLHFCQUFxQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUN6QyxzRUFBc0U7YUFDekU7WUFDRCxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDBDQUEwQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUM7WUFDckYsUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxNQUFNO2FBQ3BCO1NBQ0osQ0FBQyxDQUFBO1FBdkJDLGFBQVEsR0FBVyxDQUFDLENBQUE7UUFDcEIsY0FBUyxHQUFXLENBQUMsQ0FBQTtRQXVCeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDNUIsQ0FBQztDQUNKIn0=