@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
52 lines (32 loc) • 1.03 kB
JavaScript
import { insert_after } from "../../../../../../core/primitives/strings/insert_after.js";
import PREAMBLE_COMMON from "../common.js";
//language=GLSL
const PREAMBLE = `
precision highp usampler2D;
precision highp usampler3D;
varying vec3 vWorldPosition;
uniform float lpv_f_intensity;
`;
const ACCUMULATION = `
{
vec3 world_normal = normalize(inverseTransformDirection( geometry.normal, viewMatrix ));
vec3 probe_irradiance = lpv_sample_irradiance( vWorldPosition, world_normal, geometry.viewDir );
irradiance += probe_irradiance * lpv_f_intensity;
}
`;
/**
*
* @param {string} source
*/
export function build_fragment_shader(source) {
let result = PREAMBLE + PREAMBLE_COMMON + source;
result = insert_after(
result,
'#include <lights_fragment_begin>',
ACCUMULATION
);
return result;
}