rl-loadout-lib
Version:
Load Rocket League assets into three.js
58 lines (51 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const body_model_1 = require("./body-model");
const color_1 = require("../../webgl/include/color");
// language=GLSL
const FRAGMENT_SHADER = () => `
precision mediump float;
` + color_1.COLOR_INCLUDE + `
uniform sampler2D u_base;
uniform sampler2D u_rgba_map;
uniform vec4 u_primary;
// the texCoords passed in from the vertex shader.
varying vec2 v_texCoord;
void main() {
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
// Look up a color from the texture.
vec4 base = texture2D(u_base, v_texCoord);
vec4 rgba_map = texture2D(u_rgba_map, v_texCoord);
// base body color
gl_FragColor.rgb = blendNormal(gl_FragColor.rgb, base.rgb, base.a);
// primary color
if (rgba_map.r > 0.16470588235) {
gl_FragColor.rgb = blendNormal(gl_FragColor.rgb, u_primary.rgb, rgba_map.r);
}
// grey color
gl_FragColor.rgb = blendNormal(gl_FragColor.rgb, vec3(0.329729, 0.329729, 0.329729), rgba_map.a);
}
`;
/**
* Class for the 3D model of DeLorean Time Machine. Needed because of custom coloring.
*/
class GreyCarModel extends body_model_1.BodyModel {
constructor(body, decal, bodyAssets, decalAssets, paints) {
super(body, decal, bodyAssets, decalAssets, paints);
this.setPrimaryColor(this.bodyMaterial.primaryColor);
}
setPaintColor(color) {
}
changeDecal(decalAssets, paints) {
}
setPrimaryColor(color) {
this.bodyMaterial.primaryColor = color;
this.chassisMaterial.paintColor = color;
}
setAccentColor(color) {
}
setDecalPaintColor(color) {
}
}
exports.GreyCarModel = GreyCarModel;
//# sourceMappingURL=grey-car-model.js.map