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

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.6",
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.6",
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,
@@ -17,14 +13,17 @@ import {
17
13
  Uniform,
18
14
  WebGLRenderTarget,
19
15
  type Event,
16
+ type Texture,
20
17
  type TextureDataType,
21
18
  type WebGLRenderer
22
19
  } from 'three'
23
20
 
21
+ import { type UniformMap } from '@takram/three-geospatial'
22
+
24
23
  import { DownsampleThresholdMaterial } from './DownsampleThresholdMaterial'
25
24
  import { LensFlareFeaturesMaterial } from './LensFlareFeaturesMaterial'
26
25
 
27
- import fragmentShader from './shaders/lensFlareEffect.frag'
26
+ import fragmentShader from './shaders/lensFlareEffect.frag?raw'
28
27
 
29
28
  export interface LensFlareEffectOptions {
30
29
  blendFunction?: BlendFunction
@@ -36,6 +35,12 @@ export interface LensFlareEffectOptions {
36
35
  intensity?: number
37
36
  }
38
37
 
38
+ export interface LensFlareEffectUniforms {
39
+ bloomBuffer: Uniform<Texture | null>
40
+ featuresBuffer: Uniform<Texture | null>
41
+ intensity: Uniform<number>
42
+ }
43
+
39
44
  export const lensFlareEffectOptionsDefaults = {
40
45
  blendFunction: BlendFunction.NORMAL,
41
46
  resolutionScale: 0.5,
@@ -46,6 +51,8 @@ export const lensFlareEffectOptionsDefaults = {
46
51
 
47
52
  // Reference: https://www.froyok.fr/blog/2021-09-ue4-custom-lens-flare/
48
53
  export class LensFlareEffect extends Effect {
54
+ declare uniforms: UniformMap<LensFlareEffectUniforms>
55
+
49
56
  readonly resolution: Resolution
50
57
  readonly renderTarget1: WebGLRenderTarget
51
58
  readonly renderTarget2: WebGLRenderTarget
@@ -73,11 +80,13 @@ export class LensFlareEffect extends Effect {
73
80
  super('LensFlareEffect', fragmentShader, {
74
81
  blendFunction,
75
82
  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
- ])
83
+ uniforms: new Map<string, Uniform>(
84
+ Object.entries({
85
+ bloomBuffer: new Uniform(null),
86
+ featuresBuffer: new Uniform(null),
87
+ intensity: new Uniform(1)
88
+ } satisfies LensFlareEffectUniforms)
89
+ )
81
90
  })
82
91
 
83
92
  this.renderTarget1 = new WebGLRenderTarget(1, 1, {
@@ -107,8 +116,8 @@ export class LensFlareEffect extends Effect {
107
116
  this.featuresMaterial = new LensFlareFeaturesMaterial()
108
117
  this.featuresPass = new ShaderPass(this.featuresMaterial)
109
118
 
110
- this.uniforms.get('bloomBuffer')!.value = this.blurPass.texture
111
- this.uniforms.get('featuresBuffer')!.value = this.renderTarget1.texture
119
+ this.uniforms.get('bloomBuffer').value = this.blurPass.texture
120
+ this.uniforms.get('featuresBuffer').value = this.renderTarget1.texture
112
121
 
113
122
  this.resolution = new Resolution(
114
123
  this,
@@ -150,23 +159,25 @@ export class LensFlareEffect extends Effect {
150
159
  this.featuresPass.render(renderer, this.renderTarget2, this.renderTarget1)
151
160
  }
152
161
 
153
- override setSize(width: number, height: number): void {
162
+ override setSize(baseWidth: number, baseHeight: number): void {
154
163
  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)
164
+ resolution.setBaseSize(baseWidth, baseHeight)
165
+
166
+ const { width, height } = resolution
167
+ this.renderTarget1.setSize(width, height)
168
+ this.renderTarget2.setSize(width, height)
169
+ this.thresholdMaterial.setSize(width, height)
170
+ this.blurPass.setSize(width, height)
171
+ this.preBlurPass.setSize(width, height)
172
+ this.featuresMaterial.setSize(width, height)
162
173
  }
163
174
 
164
175
  get intensity(): number {
165
- return this.uniforms.get('intensity')!.value
176
+ return this.uniforms.get('intensity').value
166
177
  }
167
178
 
168
179
  set intensity(value: number) {
169
- this.uniforms.get('intensity')!.value = value
180
+ this.uniforms.get('intensity').value = value
170
181
  }
171
182
 
172
183
  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