@takram/three-geospatial-effects 0.0.1-alpha.5 → 0.0.1-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sources":["../src/shaders/depthEffect.frag","../src/DepthEffect.ts","../src/shaders/ditheringEffect.frag","../src/DitheringEffect.ts","../src/setupMaterialsForGeometryPass.ts","../src/GeometryPass.ts","../src/shaders/downsampleThreshold.frag","../src/shaders/downsampleThreshold.vert","../src/DownsampleThresholdMaterial.ts","../src/shaders/lensFlareFeatures.frag","../src/shaders/lensFlareFeatures.vert","../src/LensFlareFeaturesMaterial.ts","../src/shaders/lensFlareEffect.frag","../src/LensFlareEffect.ts","../src/shaders/normalEffect.frag","../src/NormalEffect.ts"],"sourcesContent":null,"names":["depthEffect_default","depthEffectOptionsDefaults","BlendFunction","DepthEffect","Effect","options","blendFunction","useTurbo","near","far","depthShader","fragmentShader","EffectAttribute","Uniform","value","ditheringEffect_default","ditheringOptionsDefaults","DitheringEffect","SETUP","injectNormal","shader","vertexShader","injectGBuffer","type","outputBuffer1","packingShader","setupMaterialsForGeometryPass","ShaderLib","GeometryPass","RenderPass","inputBuffer","scene","camera","overrideMaterial","__publicField","HalfFloatType","renderer","outputBuffer","deltaTime","stencilTest","width","height","downsampleThreshold_default","downsampleThresholdMaterialParametersDefaults","DownsampleThresholdMaterial","ShaderMaterial","params","thresholdLevel","thresholdRange","others","Vector2","NoBlending","lensFlareFeatures_default","lensFlareFeaturesMaterialParametersDefaults","LensFlareFeaturesMaterial","ghostAmount","haloAmount","chromaticAberration","texelSize","lensFlareEffect_default","lensFlareEffectOptionsDefaults","Resolution","LensFlareEffect","resolutionScale","resolutionX","resolutionY","intensity","WebGLRenderTarget","ShaderPass","MipmapBlurPass","KawaseBlurPass","KernelSize","alpha","frameBufferType","resolution","normalEffect_default","normalEffectOptionsDefaults","NormalEffect","normalBuffer","octEncoded","reconstructFromDepth","transformShader","Matrix4","uniforms","projectionMatrix","inverseProjectionMatrix"],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sources":["../src/shaders/depthEffect.frag?raw","../src/DepthEffect.ts","../src/shaders/ditheringEffect.frag?raw","../src/DitheringEffect.ts","../src/setupMaterialsForGeometryPass.ts","../src/GeometryPass.ts","../src/shaders/downsampleThreshold.frag?raw","../src/shaders/downsampleThreshold.vert?raw","../src/DownsampleThresholdMaterial.ts","../src/shaders/lensFlareFeatures.frag?raw","../src/shaders/lensFlareFeatures.vert?raw","../src/LensFlareFeaturesMaterial.ts","../src/shaders/lensFlareEffect.frag?raw","../src/LensFlareEffect.ts","../src/shaders/normalEffect.frag?raw","../src/NormalEffect.ts"],"sourcesContent":null,"names":["fragmentShader$5","depthEffectOptionsDefaults","BlendFunction","DepthEffect","Effect","options","blendFunction","useTurbo","near","far","resolveIncludes","fragmentShader","depth","turbo","EffectAttribute","Uniform","value","fragmentShader$4","ditheringOptionsDefaults","DitheringEffect","SETUP","injectNormal","shader","vertexShader","injectGBuffer","type","outputBuffer1","packing","setupMaterialsForGeometryPass","ShaderLib","GeometryPass","RenderPass","inputBuffer","scene","camera","overrideMaterial","__publicField","HalfFloatType","renderer","outputBuffer","deltaTime","stencilTest","width","height","fragmentShader$3","vertexShader$1","downsampleThresholdMaterialParametersDefaults","DownsampleThresholdMaterial","ShaderMaterial","params","thresholdLevel","thresholdRange","others","NoBlending","Vector2","fragmentShader$2","lensFlareFeaturesMaterialParametersDefaults","LensFlareFeaturesMaterial","ghostAmount","haloAmount","chromaticAberration","fragmentShader$1","lensFlareEffectOptionsDefaults","Resolution","LensFlareEffect","resolutionScale","resolutionX","resolutionY","intensity","WebGLRenderTarget","ShaderPass","MipmapBlurPass","KawaseBlurPass","KernelSize","alpha","frameBufferType","baseWidth","baseHeight","resolution","normalEffectOptionsDefaults","NormalEffect","normalBuffer","octEncoded","reconstructFromDepth","transform","Matrix4","uniforms","projectionMatrix","inverseProjectionMatrix"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takram/three-geospatial-effects",
3
- "version": "0.0.1-alpha.5",
3
+ "version": "0.0.1-alpha.7",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -25,7 +25,7 @@
25
25
  "README.md"
26
26
  ],
27
27
  "dependencies": {
28
- "@takram/three-geospatial": "0.0.1-alpha.5",
28
+ "@takram/three-geospatial": "0.0.1-alpha.7",
29
29
  "n8ao": "^1.9.4"
30
30
  },
31
31
  "peerDependencies": {
@@ -1,13 +1,10 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
-
3
- /// <reference types="vite-plugin-glsl/ext" />
4
-
5
1
  import { BlendFunction, Effect, EffectAttribute } from 'postprocessing'
6
2
  import { Uniform } from 'three'
7
3
 
8
- import { depthShader } from '@takram/three-geospatial'
4
+ import { resolveIncludes, type UniformMap } from '@takram/three-geospatial'
5
+ import { depth, turbo } from '@takram/three-geospatial/shaders'
9
6
 
10
- import fragmentShader from './shaders/depthEffect.frag'
7
+ import fragmentShader from './shaders/depthEffect.frag?raw'
11
8
 
12
9
  export interface DepthEffectOptions {
13
10
  blendFunction?: BlendFunction
@@ -16,6 +13,10 @@ export interface DepthEffectOptions {
16
13
  far?: number
17
14
  }
18
15
 
16
+ export interface DepthEffectUniforms {
17
+ near: Uniform<number>
18
+ far: Uniform<number>
19
+ }
19
20
  export const depthEffectOptionsDefaults = {
20
21
  blendFunction: BlendFunction.SRC,
21
22
  useTurbo: false,
@@ -24,6 +25,8 @@ export const depthEffectOptionsDefaults = {
24
25
  } satisfies DepthEffectOptions
25
26
 
26
27
  export class DepthEffect extends Effect {
28
+ declare uniforms: UniformMap<DepthEffectUniforms>
29
+
27
30
  constructor(options?: DepthEffectOptions) {
28
31
  const { blendFunction, useTurbo, near, far } = {
29
32
  ...depthEffectOptionsDefaults,
@@ -32,17 +35,18 @@ export class DepthEffect extends Effect {
32
35
 
33
36
  super(
34
37
  'DepthEffect',
35
- /* glsl */ `
36
- ${depthShader}
37
- ${fragmentShader}
38
- `,
38
+ resolveIncludes(fragmentShader, {
39
+ core: { depth, turbo }
40
+ }),
39
41
  {
40
42
  blendFunction,
41
43
  attributes: EffectAttribute.DEPTH,
42
- uniforms: new Map([
43
- ['near', new Uniform(near)],
44
- ['far', new Uniform(far)]
45
- ])
44
+ uniforms: new Map(
45
+ Object.entries({
46
+ near: new Uniform(near),
47
+ far: new Uniform(far)
48
+ } satisfies DepthEffectUniforms)
49
+ )
46
50
  }
47
51
  )
48
52
  this.useTurbo = useTurbo
@@ -64,18 +68,18 @@ export class DepthEffect extends Effect {
64
68
  }
65
69
 
66
70
  get near(): number {
67
- return this.uniforms.get('near')!.value
71
+ return this.uniforms.get('near').value
68
72
  }
69
73
 
70
74
  set near(value: number) {
71
- this.uniforms.get('near')!.value = value
75
+ this.uniforms.get('near').value = value
72
76
  }
73
77
 
74
78
  get far(): number {
75
- return this.uniforms.get('far')!.value
79
+ return this.uniforms.get('far').value
76
80
  }
77
81
 
78
82
  set far(value: number) {
79
- this.uniforms.get('far')!.value = value
83
+ this.uniforms.get('far').value = value
80
84
  }
81
85
  }
@@ -1,10 +1,6 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
-
3
- /// <reference types="vite-plugin-glsl/ext" />
4
-
5
1
  import { BlendFunction, Effect } from 'postprocessing'
6
2
 
7
- import fragmentShader from './shaders/ditheringEffect.frag'
3
+ import fragmentShader from './shaders/ditheringEffect.frag?raw'
8
4
 
9
5
  export interface DitheringEffectOptions {
10
6
  blendFunction?: BlendFunction
@@ -1,5 +1,3 @@
1
- /// <reference types="vite-plugin-glsl/ext" />
2
-
3
1
  import {
4
2
  NoBlending,
5
3
  ShaderMaterial,
@@ -9,8 +7,8 @@ import {
9
7
  type Texture
10
8
  } from 'three'
11
9
 
12
- import fragmentShader from './shaders/downsampleThreshold.frag'
13
- import vertexShader from './shaders/downsampleThreshold.vert'
10
+ import fragmentShader from './shaders/downsampleThreshold.frag?raw'
11
+ import vertexShader from './shaders/downsampleThreshold.vert?raw'
14
12
 
15
13
  export interface DownsampleThresholdMaterialParameters
16
14
  extends ShaderMaterialParameters {
@@ -39,17 +37,18 @@ export class DownsampleThresholdMaterial extends ShaderMaterial {
39
37
  name: 'DownsampleThresholdMaterial',
40
38
  fragmentShader,
41
39
  vertexShader,
42
- uniforms: {
43
- inputBuffer: new Uniform(inputBuffer),
44
- texelSize: new Uniform(new Vector2()),
45
- thresholdLevel: new Uniform(thresholdLevel),
46
- thresholdRange: new Uniform(thresholdRange)
47
- },
48
40
  blending: NoBlending,
49
41
  toneMapped: false,
50
42
  depthWrite: false,
51
43
  depthTest: false,
52
- ...others
44
+ ...others,
45
+ uniforms: {
46
+ inputBuffer: new Uniform(inputBuffer),
47
+ texelSize: new Uniform(new Vector2()),
48
+ thresholdLevel: new Uniform(thresholdLevel),
49
+ thresholdRange: new Uniform(thresholdRange),
50
+ ...others.uniforms
51
+ }
53
52
  })
54
53
  }
55
54
 
@@ -1,13 +1,10 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
-
3
- /// <reference types="vite-plugin-glsl/ext" />
4
-
5
1
  import { BlendFunction, Effect, EffectAttribute } from 'postprocessing'
6
2
  import { Uniform, type Texture } from 'three'
7
3
 
8
- import { packingShader } from '@takram/three-geospatial'
4
+ import { resolveIncludes, type UniformMap } from '@takram/three-geospatial'
5
+ import { packing } from '@takram/three-geospatial/shaders'
9
6
 
10
- import fragmentShader from './shaders/geometryEffect.frag'
7
+ import fragmentShader from './shaders/geometryEffect.frag?raw'
11
8
 
12
9
  export type GeometryEffectOutput = 'normal' | 'pbr'
13
10
 
@@ -17,12 +14,18 @@ export interface GeometryEffectOptions {
17
14
  output?: GeometryEffectOutput
18
15
  }
19
16
 
17
+ export interface GeometryEffectUniforms {
18
+ geometryBuffer: Uniform<Texture | null>
19
+ }
20
+
20
21
  export const geometryEffectOptionsDefaults = {
21
22
  blendFunction: BlendFunction.SRC,
22
23
  output: 'normal'
23
24
  } satisfies GeometryEffectOptions
24
25
 
25
26
  export class GeometryEffect extends Effect {
27
+ declare uniforms: UniformMap<GeometryEffectUniforms>
28
+
26
29
  constructor(options?: GeometryEffectOptions) {
27
30
  const {
28
31
  blendFunction,
@@ -34,27 +37,28 @@ export class GeometryEffect extends Effect {
34
37
  }
35
38
  super(
36
39
  'GeometryEffect',
37
- /* glsl */ `
38
- ${packingShader}
39
- ${fragmentShader}
40
- `,
40
+ resolveIncludes(fragmentShader, {
41
+ core: { packing }
42
+ }),
41
43
  {
42
44
  blendFunction,
43
45
  attributes: EffectAttribute.DEPTH,
44
- uniforms: new Map<string, Uniform>([
45
- ['geometryBuffer', new Uniform(geometryBuffer)]
46
- ])
46
+ uniforms: new Map<string, Uniform>(
47
+ Object.entries({
48
+ geometryBuffer: new Uniform(geometryBuffer)
49
+ } satisfies GeometryEffectUniforms)
50
+ )
47
51
  }
48
52
  )
49
53
  this.output = output
50
54
  }
51
55
 
52
56
  get geometryBuffer(): Texture | null {
53
- return this.uniforms.get('geometryBuffer')!.value
57
+ return this.uniforms.get('geometryBuffer').value
54
58
  }
55
59
 
56
60
  set geometryBuffer(value: Texture | null) {
57
- this.uniforms.get('geometryBuffer')!.value = value
61
+ this.uniforms.get('geometryBuffer').value = value
58
62
  }
59
63
 
60
64
  get output(): GeometryEffectOutput {
@@ -1,7 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
-
3
- /// <reference types="vite-plugin-glsl/ext" />
4
-
5
1
  import {
6
2
  BlendFunction,
7
3
  Effect,
@@ -16,15 +12,17 @@ import {
16
12
  HalfFloatType,
17
13
  Uniform,
18
14
  WebGLRenderTarget,
19
- type Event,
15
+ type Texture,
20
16
  type TextureDataType,
21
17
  type WebGLRenderer
22
18
  } from 'three'
23
19
 
20
+ import { type UniformMap } from '@takram/three-geospatial'
21
+
24
22
  import { DownsampleThresholdMaterial } from './DownsampleThresholdMaterial'
25
23
  import { LensFlareFeaturesMaterial } from './LensFlareFeaturesMaterial'
26
24
 
27
- import fragmentShader from './shaders/lensFlareEffect.frag'
25
+ import fragmentShader from './shaders/lensFlareEffect.frag?raw'
28
26
 
29
27
  export interface LensFlareEffectOptions {
30
28
  blendFunction?: BlendFunction
@@ -36,6 +34,12 @@ export interface LensFlareEffectOptions {
36
34
  intensity?: number
37
35
  }
38
36
 
37
+ export interface LensFlareEffectUniforms {
38
+ bloomBuffer: Uniform<Texture | null>
39
+ featuresBuffer: Uniform<Texture | null>
40
+ intensity: Uniform<number>
41
+ }
42
+
39
43
  export const lensFlareEffectOptionsDefaults = {
40
44
  blendFunction: BlendFunction.NORMAL,
41
45
  resolutionScale: 0.5,
@@ -46,6 +50,8 @@ export const lensFlareEffectOptionsDefaults = {
46
50
 
47
51
  // Reference: https://www.froyok.fr/blog/2021-09-ue4-custom-lens-flare/
48
52
  export class LensFlareEffect extends Effect {
53
+ declare uniforms: UniformMap<LensFlareEffectUniforms>
54
+
49
55
  readonly resolution: Resolution
50
56
  readonly renderTarget1: WebGLRenderTarget
51
57
  readonly renderTarget2: WebGLRenderTarget
@@ -73,11 +79,13 @@ export class LensFlareEffect extends Effect {
73
79
  super('LensFlareEffect', fragmentShader, {
74
80
  blendFunction,
75
81
  attributes: EffectAttribute.CONVOLUTION,
76
- uniforms: new Map<string, Uniform>([
77
- ['bloomBuffer', new Uniform(null)],
78
- ['featuresBuffer', new Uniform(null)],
79
- ['intensity', new Uniform(1)]
80
- ])
82
+ uniforms: new Map<string, Uniform>(
83
+ Object.entries({
84
+ bloomBuffer: new Uniform(null),
85
+ featuresBuffer: new Uniform(null),
86
+ intensity: new Uniform(1)
87
+ } satisfies LensFlareEffectUniforms)
88
+ )
81
89
  })
82
90
 
83
91
  this.renderTarget1 = new WebGLRenderTarget(1, 1, {
@@ -107,8 +115,8 @@ export class LensFlareEffect extends Effect {
107
115
  this.featuresMaterial = new LensFlareFeaturesMaterial()
108
116
  this.featuresPass = new ShaderPass(this.featuresMaterial)
109
117
 
110
- this.uniforms.get('bloomBuffer')!.value = this.blurPass.texture
111
- this.uniforms.get('featuresBuffer')!.value = this.renderTarget1.texture
118
+ this.uniforms.get('bloomBuffer').value = this.blurPass.texture
119
+ this.uniforms.get('featuresBuffer').value = this.renderTarget1.texture
112
120
 
113
121
  this.resolution = new Resolution(
114
122
  this,
@@ -116,10 +124,7 @@ export class LensFlareEffect extends Effect {
116
124
  resolutionY,
117
125
  resolutionScale
118
126
  )
119
- this.resolution.addEventListener<keyof Event>(
120
- 'change' as keyof Event,
121
- this.onResolutionChange
122
- )
127
+ this.resolution.addEventListener('change', this.onResolutionChange)
123
128
 
124
129
  this.intensity = intensity
125
130
  }
@@ -150,23 +155,25 @@ export class LensFlareEffect extends Effect {
150
155
  this.featuresPass.render(renderer, this.renderTarget2, this.renderTarget1)
151
156
  }
152
157
 
153
- override setSize(width: number, height: number): void {
158
+ override setSize(baseWidth: number, baseHeight: number): void {
154
159
  const resolution = this.resolution
155
- resolution.setBaseSize(width, height)
156
- this.renderTarget1.setSize(resolution.width, resolution.height)
157
- this.renderTarget2.setSize(resolution.width, resolution.height)
158
- this.thresholdMaterial.setSize(resolution.width, resolution.height)
159
- this.blurPass.setSize(resolution.width, resolution.height)
160
- this.preBlurPass.setSize(resolution.width, resolution.height)
161
- this.featuresMaterial.setSize(resolution.width, resolution.height)
160
+ resolution.setBaseSize(baseWidth, baseHeight)
161
+
162
+ const { width, height } = resolution
163
+ this.renderTarget1.setSize(width, height)
164
+ this.renderTarget2.setSize(width, height)
165
+ this.thresholdMaterial.setSize(width, height)
166
+ this.blurPass.setSize(width, height)
167
+ this.preBlurPass.setSize(width, height)
168
+ this.featuresMaterial.setSize(width, height)
162
169
  }
163
170
 
164
171
  get intensity(): number {
165
- return this.uniforms.get('intensity')!.value
172
+ return this.uniforms.get('intensity').value
166
173
  }
167
174
 
168
175
  set intensity(value: number) {
169
- this.uniforms.get('intensity')!.value = value
176
+ this.uniforms.get('intensity').value = value
170
177
  }
171
178
 
172
179
  get thresholdLevel(): number {
@@ -1,5 +1,3 @@
1
- /// <reference types="vite-plugin-glsl/ext" />
2
-
3
1
  import {
4
2
  NoBlending,
5
3
  ShaderMaterial,
@@ -9,8 +7,8 @@ import {
9
7
  type Texture
10
8
  } from 'three'
11
9
 
12
- import fragmentShader from './shaders/lensFlareFeatures.frag'
13
- import vertexShader from './shaders/lensFlareFeatures.vert'
10
+ import fragmentShader from './shaders/lensFlareFeatures.frag?raw'
11
+ import vertexShader from './shaders/lensFlareFeatures.vert?raw'
14
12
 
15
13
  export interface LensFlareFeaturesMaterialParameters
16
14
  extends ShaderMaterialParameters {
@@ -33,7 +31,8 @@ export class LensFlareFeaturesMaterial extends ShaderMaterial {
33
31
  inputBuffer = null,
34
32
  ghostAmount,
35
33
  haloAmount,
36
- chromaticAberration
34
+ chromaticAberration,
35
+ ...others
37
36
  } = {
38
37
  ...lensFlareFeaturesMaterialParametersDefaults,
39
38
  ...params
@@ -42,24 +41,23 @@ export class LensFlareFeaturesMaterial extends ShaderMaterial {
42
41
  name: 'LensFlareFeaturesMaterial',
43
42
  fragmentShader,
44
43
  vertexShader,
44
+ blending: NoBlending,
45
+ toneMapped: false,
46
+ depthWrite: false,
47
+ depthTest: false,
45
48
  uniforms: {
46
49
  inputBuffer: new Uniform(inputBuffer),
47
50
  texelSize: new Uniform(new Vector2()),
48
51
  ghostAmount: new Uniform(ghostAmount),
49
52
  haloAmount: new Uniform(haloAmount),
50
- chromaticAberration: new Uniform(chromaticAberration)
51
- },
52
- blending: NoBlending,
53
- toneMapped: false,
54
- depthWrite: false,
55
- depthTest: false
53
+ chromaticAberration: new Uniform(chromaticAberration),
54
+ ...others.uniforms
55
+ }
56
56
  })
57
57
  }
58
58
 
59
59
  setSize(width: number, height: number): void {
60
- const texelSize = this.uniforms.texelSize
61
- texelSize.value.x = 1 / width
62
- texelSize.value.y = 1 / height
60
+ this.uniforms.texelSize.value.set(1 / width, 1 / height)
63
61
  }
64
62
 
65
63
  get inputBuffer(): Texture | null {
@@ -1,7 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
-
3
- /// <reference types="vite-plugin-glsl/ext" />
4
-
5
1
  import { BlendFunction, Effect, EffectAttribute } from 'postprocessing'
6
2
  import {
7
3
  Matrix4,
@@ -12,13 +8,10 @@ import {
12
8
  type WebGLRenderTarget
13
9
  } from 'three'
14
10
 
15
- import {
16
- depthShader,
17
- packingShader,
18
- transformShader
19
- } from '@takram/three-geospatial'
11
+ import { resolveIncludes, type UniformMap } from '@takram/three-geospatial'
12
+ import { depth, packing, transform } from '@takram/three-geospatial/shaders'
20
13
 
21
- import fragmentShader from './shaders/normalEffect.frag'
14
+ import fragmentShader from './shaders/normalEffect.frag?raw'
22
15
 
23
16
  export interface NormalEffectOptions {
24
17
  blendFunction?: BlendFunction
@@ -27,6 +20,12 @@ export interface NormalEffectOptions {
27
20
  reconstructFromDepth?: boolean
28
21
  }
29
22
 
23
+ export interface NormalEffectUniforms {
24
+ normalBuffer: Uniform<Texture | null>
25
+ projectionMatrix: Uniform<Matrix4>
26
+ inverseProjectionMatrix: Uniform<Matrix4>
27
+ }
28
+
30
29
  export const normalEffectOptionsDefaults = {
31
30
  blendFunction: BlendFunction.SRC,
32
31
  octEncoded: false,
@@ -34,6 +33,8 @@ export const normalEffectOptionsDefaults = {
34
33
  } satisfies NormalEffectOptions
35
34
 
36
35
  export class NormalEffect extends Effect {
36
+ declare uniforms: UniformMap<NormalEffectUniforms>
37
+
37
38
  constructor(
38
39
  private camera: Camera,
39
40
  options?: NormalEffectOptions
@@ -49,20 +50,23 @@ export class NormalEffect extends Effect {
49
50
  }
50
51
  super(
51
52
  'NormalEffect',
52
- /* glsl */ `
53
- ${depthShader}
54
- ${packingShader}
55
- ${transformShader}
56
- ${fragmentShader}
57
- `,
53
+ resolveIncludes(fragmentShader, {
54
+ core: {
55
+ depth,
56
+ packing,
57
+ transform
58
+ }
59
+ }),
58
60
  {
59
61
  blendFunction,
60
62
  attributes: EffectAttribute.DEPTH,
61
- uniforms: new Map<string, Uniform>([
62
- ['normalBuffer', new Uniform(normalBuffer)],
63
- ['projectionMatrix', new Uniform(new Matrix4())],
64
- ['inverseProjectionMatrix', new Uniform(new Matrix4())]
65
- ])
63
+ uniforms: new Map<string, Uniform>(
64
+ Object.entries({
65
+ normalBuffer: new Uniform(normalBuffer),
66
+ projectionMatrix: new Uniform(new Matrix4()),
67
+ inverseProjectionMatrix: new Uniform(new Matrix4())
68
+ } satisfies NormalEffectUniforms)
69
+ )
66
70
  }
67
71
  )
68
72
  if (camera != null) {
@@ -80,14 +84,14 @@ export class NormalEffect extends Effect {
80
84
  this.camera = value
81
85
  }
82
86
 
83
- update(
87
+ override update(
84
88
  renderer: WebGLRenderer,
85
89
  inputBuffer: WebGLRenderTarget,
86
90
  deltaTime?: number
87
91
  ): void {
88
92
  const uniforms = this.uniforms
89
- const projectionMatrix = uniforms.get('projectionMatrix')!
90
- const inverseProjectionMatrix = uniforms.get('inverseProjectionMatrix')!
93
+ const projectionMatrix = uniforms.get('projectionMatrix')
94
+ const inverseProjectionMatrix = uniforms.get('inverseProjectionMatrix')
91
95
  const camera = this.camera
92
96
  if (camera != null) {
93
97
  projectionMatrix.value.copy(camera.projectionMatrix)
@@ -96,11 +100,11 @@ export class NormalEffect extends Effect {
96
100
  }
97
101
 
98
102
  get normalBuffer(): Texture | null {
99
- return this.uniforms.get('normalBuffer')!.value
103
+ return this.uniforms.get('normalBuffer').value
100
104
  }
101
105
 
102
106
  set normalBuffer(value: Texture | null) {
103
- this.uniforms.get('normalBuffer')!.value = value
107
+ this.uniforms.get('normalBuffer').value = value
104
108
  }
105
109
 
106
110
  get octEncoded(): boolean {
@@ -1,10 +1,8 @@
1
1
  // cSpell:words defaultnormal specularmap envmap
2
2
 
3
- /// <reference types="vite-plugin-glsl/ext" />
4
-
5
3
  import { ShaderLib, type ShaderLibShader } from 'three'
6
4
 
7
- import { packingShader } from '@takram/three-geospatial'
5
+ import { packing } from '@takram/three-geospatial/shaders'
8
6
 
9
7
  const SETUP = Symbol('SETUP')
10
8
 
@@ -105,11 +103,11 @@ function injectGBuffer(
105
103
  shader.fragmentShader = /* glsl */ `
106
104
  layout(location = 1) out vec4 outputBuffer1;
107
105
 
108
- #ifndef USE_ENVMAP
106
+ #if !defined(USE_ENVMAP)
109
107
  uniform float reflectivity;
110
- #endif
108
+ #endif // !defined(USE_ENVMAP)
111
109
 
112
- ${packingShader}
110
+ ${packing}
113
111
  ${shader.fragmentShader.replace(
114
112
  /}\s*$/m, // Assume the last curly brace is of main()
115
113
  /* glsl */ `
@@ -1,16 +1,9 @@
1
+ #include "core/depth"
2
+ #include "core/turbo"
3
+
1
4
  uniform float near;
2
5
  uniform float far;
3
6
 
4
- // A fifth-order polynomial approximation of Turbo colormap.
5
- // See: https://observablehq.com/@mbostock/turbo
6
- // prettier-ignore
7
- vec3 turbo(const float x) {
8
- float r = 0.1357 + x * (4.5974 - x * (42.3277 - x * (130.5887 - x * (150.5666 - x * 58.1375))));
9
- float g = 0.0914 + x * (2.1856 + x * (4.8052 - x * (14.0195 - x * (4.2109 + x * 2.7747))));
10
- float b = 0.1067 + x * (12.5925 - x * (60.1097 - x * (109.0745 - x * (88.5066 - x * 26.8183))));
11
- return vec3(r, g, b);
12
- }
13
-
14
7
  void mainImage(const vec4 inputColor, const vec2 uv, out vec4 outputColor) {
15
8
  float depth = readDepth(uv);
16
9
  depth = reverseLogDepth(depth, cameraNear, cameraFar);
@@ -18,7 +11,7 @@ void mainImage(const vec4 inputColor, const vec2 uv, out vec4 outputColor) {
18
11
 
19
12
  #ifdef USE_TURBO
20
13
  vec3 color = turbo(1.0 - depth);
21
- #else
14
+ #else // USE_TURBO
22
15
  vec3 color = vec3(depth);
23
16
  #endif // USE_TURBO
24
17