@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
32 lines • 2.72 kB
JavaScript
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=