@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
22 lines • 1.86 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();
this.fragmentShaderCode = [
`float light = 1.0 - varNormal.z;`,
`light = pow(light, ${exponent.toFixed(6)});`,
`vec4 color = vec4(${color.join(", ")});`,
`return vec4(color.rgb * ${intensity.toFixed(6)}, color.a) * light;`,
];
this.vertexShaderCode = [
"varNormal = mat3(uniModelViewMatrix) * NORMAL;",
];
this.varyings = {
varNormal: "vec3",
};
}
setUniforms(_program) { }
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvZ2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBVXhDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRWpELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBSzdDLFlBQVksRUFDUixLQUFLLEdBQUcsYUFBYSxFQUNyQixRQUFRLEdBQUcsQ0FBQyxFQUNaLFNBQVMsR0FBRyxDQUFDLE1BQ1ksRUFBRTtRQUMzQixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRztZQUN0QixrQ0FBa0M7WUFDbEMsc0JBQXNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDN0MscUJBQXFCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDekMsMkJBQTJCLFNBQVMsQ0FBQyxPQUFPLENBQ3hDLENBQUMsQ0FDSixxQkFBcUI7U0FDekIsQ0FBQTtRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRztZQUNwQixnREFBZ0Q7U0FDbkQsQ0FBQTtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDWixTQUFTLEVBQUUsTUFBTTtTQUNwQixDQUFBO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFvQixJQUFTLENBQUM7Q0FDN0MifQ==