kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
38 lines (37 loc) • 1.4 kB
TypeScript
import { LightingEffect } from '@deck.gl/core';
import type { Texture } from '@luma.gl/core';
/**
* Custom LightingEffect for kepler.gl.
*
* Extends deck.gl's LightingEffect with:
* - A patched shadow module with `outputUniformShadow` for uniform shadow
* during nighttime (avoids partial shadows from below).
* - getShaderModuleProps override that always provides dummyShadowMap
* to prevent "Bad texture binding" errors when shadows are disabled.
*/
declare class CustomDeckLightingEffect extends LightingEffect {
outputUniformShadow: boolean;
private get _private();
constructor(props: any);
setup(context: any): void;
cleanup(context: any): void;
getShaderModuleProps(layer: any, otherShaderModuleProps: any): {
shadow: {
project: any;
shadowMaps: Texture[];
dummyShadowMap: Texture;
shadowColor: [number, number, number, number];
shadowMatrices: import("@math.gl/core/classes/matrix4").default[] | undefined;
} | {
project?: undefined;
shadowMaps?: undefined;
dummyShadowMap?: undefined;
shadowColor?: undefined;
shadowMatrices?: undefined;
};
lighting: import("@luma.gl/shadertools").LightingProps;
phongMaterial: any;
gouraudMaterial: any;
};
}
export default CustomDeckLightingEffect;