playcanvas
Version:
PlayCanvas WebGL game engine
18 lines (16 loc) • 1 kB
JavaScript
var clusteredLightCookiesPS = `
vec3 _getCookieClustered(TEXTURE_ACCEPT(tex), vec2 uv, float intensity, vec4 cookieChannel) {
vec4 pixel = mix(vec4(1.0), texture2DLod(tex, uv, 0.0), intensity);
bool isRgb = dot(cookieChannel.rgb, vec3(1.0)) == 3.0;
return isRgb ? pixel.rgb : vec3(dot(pixel, cookieChannel));
}
vec3 getCookie2DClustered(TEXTURE_ACCEPT(tex), mat4 transform, vec3 worldPosition, float intensity, vec4 cookieChannel) {
vec4 projPos = transform * vec4(worldPosition, 1.0);
return _getCookieClustered(TEXTURE_PASS(tex), projPos.xy / projPos.w, intensity, cookieChannel);
}
vec3 getCookieCubeClustered(TEXTURE_ACCEPT(tex), vec3 dir, float intensity, vec4 cookieChannel, float shadowTextureResolution, float shadowEdgePixels, vec3 omniAtlasViewport) {
vec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, dir);
return _getCookieClustered(TEXTURE_PASS(tex), uv, intensity, cookieChannel);
}
`;
export { clusteredLightCookiesPS as default };