Skip to main content

Variable: CompositeBands

const CompositeBands: object

Defined in: composite-bands.ts:42

A shader module that samples up to 4 band textures with per-band UV transforms and composites them into a vec4 color.

Uses fixed uniform slots (band0band3) for textures (bound via getUniforms) and a uniform block for scalar values (uvTransform0uvTransform3, channelMap).

Type Declaration

fs

readonly fs: "uniform compositeBandsUniforms {\n vec4 uvTransform0;\n vec4 uvTransform1;\n vec4 uvTransform2;\n vec4 uvTransform3;\n ivec4 channelMap;\n} compositeBands;\n"

getUniforms

readonly getUniforms: (props) => object

Parameters

props

Partial<CompositeBandsProps>

Returns

object

band0

band0: Texture | undefined = props.band0

band1

band1: Texture | undefined = props.band1

band2

band2: Texture | undefined = props.band2

band3

band3: Texture | undefined = props.band3

channelMap

channelMap: [number, number, number, number]

uvTransform0

uvTransform0: UvTransform

uvTransform1

uvTransform1: UvTransform

uvTransform2

uvTransform2: UvTransform

uvTransform3

uvTransform3: UvTransform

inject

readonly inject: object

inject.fs:#decl

readonly fs:#decl: "\nuniform sampler2D band0;\nuniform sampler2D band1;\nuniform sampler2D band2;\nuniform sampler2D band3;\n\nvec2 compositeBands_applyUv(vec2 uv, vec4 transform) {\n return uv * transform.zw + transform.xy;\n}\n\nfloat compositeBands_sampleSlot(int slot, vec2 uv) {\n if (slot == 0) return texture(band0, compositeBands_applyUv(uv, compositeBands.uvTransform0)).r;\n if (slot == 1) return texture(band1, compositeBands_applyUv(uv, compositeBands.uvTransform1)).r;\n if (slot == 2) return texture(band2, compositeBands_applyUv(uv, compositeBands.uvTransform2)).r;\n if (slot == 3) return texture(band3, compositeBands_applyUv(uv, compositeBands.uvTransform3)).r;\n return 0.0;\n}\n"

inject.fs:DECKGL_FILTER_COLOR

readonly fs:DECKGL_FILTER_COLOR: "\n float r = compositeBands.channelMap.r >= 0 ? compositeBands_sampleSlot(compositeBands.channelMap.r, geometry.uv) : 0.0;\n float g = compositeBands.channelMap.g >= 0 ? compositeBands_sampleSlot(compositeBands.channelMap.g, geometry.uv) : 0.0;\n float b = compositeBands.channelMap.b >= 0 ? compositeBands_sampleSlot(compositeBands.channelMap.b, geometry.uv) : 0.0;\n float a = compositeBands.channelMap.a >= 0 ? compositeBands_sampleSlot(compositeBands.channelMap.a, geometry.uv) : 1.0;\n color = vec4(r, g, b, a);\n"

name

readonly name: "compositeBands" = MODULE_NAME

uniformTypes

readonly uniformTypes: object

uniformTypes.channelMap

readonly channelMap: "vec4<i32>" = "vec4<i32>"

uniformTypes.uvTransform0

readonly uvTransform0: "vec4<f32>" = "vec4<f32>"

uniformTypes.uvTransform1

readonly uvTransform1: "vec4<f32>" = "vec4<f32>"

uniformTypes.uvTransform2

readonly uvTransform2: "vec4<f32>" = "vec4<f32>"

uniformTypes.uvTransform3

readonly uvTransform3: "vec4<f32>" = "vec4<f32>"

See