three-gpu-pathtracer 0.0.14 → 0.0.16
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.
- package/LICENSE +21 -21
- package/README.md +1004 -981
- package/build/index.module.js +7413 -6902
- package/build/index.module.js.map +1 -1
- package/build/index.umd.cjs +7446 -6933
- package/build/index.umd.cjs.map +1 -1
- package/package.json +73 -73
- package/src/core/DynamicPathTracingSceneGenerator.js +119 -119
- package/src/core/MaterialReducer.js +256 -256
- package/src/core/PathTracingRenderer.js +346 -346
- package/src/core/PathTracingSceneGenerator.js +69 -69
- package/src/core/QuiltPathTracingRenderer.js +223 -223
- package/src/detectors/CompatibilityDetector.js +38 -0
- package/src/detectors/MaterialCompileDetector.js +50 -0
- package/src/detectors/PrecisionDetector.js +85 -0
- package/src/detectors/PrecisionMaterial.js +160 -0
- package/src/index.js +40 -36
- package/src/materials/MaterialBase.js +56 -56
- package/src/materials/debug/GraphMaterial.js +243 -243
- package/src/materials/fullscreen/AlphaDisplayMaterial.js +50 -48
- package/src/materials/fullscreen/BlendMaterial.js +67 -67
- package/src/materials/fullscreen/DenoiseMaterial.js +142 -142
- package/src/materials/fullscreen/GradientMapMaterial.js +82 -0
- package/src/materials/pathtracing/LambertPathTracingMaterial.js +296 -296
- package/src/materials/pathtracing/PhysicalPathTracingMaterial.js +118 -196
- package/src/materials/pathtracing/glsl/attenuateHit.glsl.js +177 -179
- package/src/materials/pathtracing/glsl/cameraUtils.glsl.js +84 -81
- package/src/materials/pathtracing/glsl/directLightContribution.glsl.js +93 -0
- package/src/materials/pathtracing/glsl/getSurfaceRecord.glsl.js +323 -317
- package/src/materials/pathtracing/glsl/renderStructs.glsl.js +50 -0
- package/src/materials/pathtracing/glsl/traceScene.glsl.js +52 -54
- package/src/materials/surface/AmbientOcclusionMaterial.js +207 -207
- package/src/materials/surface/FogVolumeMaterial.js +23 -23
- package/src/objects/EquirectCamera.js +13 -13
- package/src/objects/PhysicalCamera.js +42 -28
- package/src/objects/PhysicalSpotLight.js +25 -14
- package/src/objects/ShapedAreaLight.js +22 -12
- package/src/shader/bsdf/bsdfSampling.glsl.js +499 -490
- package/src/shader/bsdf/fog.glsl.js +22 -23
- package/src/shader/bsdf/ggx.glsl.js +102 -102
- package/src/shader/bsdf/iridescence.glsl.js +135 -135
- package/src/shader/bsdf/sheen.glsl.js +98 -98
- package/src/shader/common/arraySamplerTexelFetch.glsl.js +25 -25
- package/src/shader/common/bvhAnyHit.glsl.js +76 -76
- package/src/shader/common/fresnel.glsl.js +98 -98
- package/src/shader/common/intersectShapes.glsl.js +62 -62
- package/src/shader/common/math.glsl.js +81 -81
- package/src/shader/common/utils.glsl.js +116 -116
- package/src/shader/rand/pcg.glsl.js +57 -57
- package/src/shader/rand/sobol.glsl.js +256 -256
- package/src/shader/sampling/equirectSampling.glsl.js +62 -62
- package/src/shader/sampling/lightSampling.glsl.js +223 -223
- package/src/shader/sampling/shapeSampling.glsl.js +86 -86
- package/src/shader/structs/cameraStruct.glsl.js +13 -13
- package/src/shader/structs/equirectStruct.glsl.js +13 -14
- package/src/shader/structs/fogMaterialBvh.glsl.js +62 -62
- package/src/shader/structs/lightsStruct.glsl.js +78 -78
- package/src/shader/structs/materialStruct.glsl.js +207 -207
- package/src/textures/GradientEquirectTexture.js +35 -35
- package/src/textures/ProceduralEquirectTexture.js +75 -75
- package/src/uniforms/AttributesTextureArray.js +35 -35
- package/src/uniforms/EquirectHdrInfoUniform.js +269 -277
- package/src/uniforms/FloatAttributeTextureArray.js +169 -169
- package/src/uniforms/IESProfilesTexture.js +100 -100
- package/src/uniforms/LightsInfoUniformStruct.js +212 -212
- package/src/uniforms/MaterialsTexture.js +503 -503
- package/src/uniforms/PhysicalCameraUniform.js +36 -36
- package/src/uniforms/RenderTarget2DArray.js +97 -97
- package/src/uniforms/utils.js +30 -30
- package/src/utils/BlurredEnvMapGenerator.js +116 -116
- package/src/utils/GeometryPreparationUtils.js +214 -214
- package/src/utils/IESLoader.js +325 -325
- package/src/utils/SobolNumberMapGenerator.js +80 -80
- package/src/utils/UVUnwrapper.js +101 -101
- package/src/utils/macroify.js +9 -9
- package/src/workers/PathTracingSceneWorker.js +42 -42
|
@@ -1,28 +1,42 @@
|
|
|
1
|
-
import { PerspectiveCamera } from 'three';
|
|
2
|
-
|
|
3
|
-
export class PhysicalCamera extends PerspectiveCamera {
|
|
4
|
-
|
|
5
|
-
set bokehSize( size ) {
|
|
6
|
-
|
|
7
|
-
this.fStop = this.getFocalLength() / size;
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
get bokehSize() {
|
|
12
|
-
|
|
13
|
-
return this.getFocalLength() / this.fStop;
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
constructor( ...args ) {
|
|
18
|
-
|
|
19
|
-
super( ...args );
|
|
20
|
-
this.fStop = 1.4;
|
|
21
|
-
this.apertureBlades = 0;
|
|
22
|
-
this.apertureRotation = 0;
|
|
23
|
-
this.focusDistance = 25;
|
|
24
|
-
this.anamorphicRatio = 1;
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
import { PerspectiveCamera } from 'three';
|
|
2
|
+
|
|
3
|
+
export class PhysicalCamera extends PerspectiveCamera {
|
|
4
|
+
|
|
5
|
+
set bokehSize( size ) {
|
|
6
|
+
|
|
7
|
+
this.fStop = this.getFocalLength() / size;
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
get bokehSize() {
|
|
12
|
+
|
|
13
|
+
return this.getFocalLength() / this.fStop;
|
|
14
|
+
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
constructor( ...args ) {
|
|
18
|
+
|
|
19
|
+
super( ...args );
|
|
20
|
+
this.fStop = 1.4;
|
|
21
|
+
this.apertureBlades = 0;
|
|
22
|
+
this.apertureRotation = 0;
|
|
23
|
+
this.focusDistance = 25;
|
|
24
|
+
this.anamorphicRatio = 1;
|
|
25
|
+
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
copy( source, recursive ) {
|
|
29
|
+
|
|
30
|
+
super.copy( source, recursive );
|
|
31
|
+
|
|
32
|
+
this.fStop = source.fStop;
|
|
33
|
+
this.apertureBlades = source.apertureBlades;
|
|
34
|
+
this.apertureRotation = source.apertureRotation;
|
|
35
|
+
this.focusDistance = source.focusDistance;
|
|
36
|
+
this.anamorphicRatio = source.anamorphicRatio;
|
|
37
|
+
|
|
38
|
+
return this;
|
|
39
|
+
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
}
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
import { SpotLight } from 'three';
|
|
2
|
-
|
|
3
|
-
export class PhysicalSpotLight extends SpotLight {
|
|
4
|
-
|
|
5
|
-
constructor( ...args ) {
|
|
6
|
-
|
|
7
|
-
super( ...args );
|
|
8
|
-
|
|
9
|
-
this.iesTexture = null;
|
|
10
|
-
this.radius = 0;
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { SpotLight } from 'three';
|
|
2
|
+
|
|
3
|
+
export class PhysicalSpotLight extends SpotLight {
|
|
4
|
+
|
|
5
|
+
constructor( ...args ) {
|
|
6
|
+
|
|
7
|
+
super( ...args );
|
|
8
|
+
|
|
9
|
+
this.iesTexture = null;
|
|
10
|
+
this.radius = 0;
|
|
11
|
+
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
copy( source, recursive ) {
|
|
15
|
+
|
|
16
|
+
super.copy( source, recursive );
|
|
17
|
+
|
|
18
|
+
this.iesTexture = source.iesTexture;
|
|
19
|
+
this.radius = source.radius;
|
|
20
|
+
|
|
21
|
+
return this;
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import { RectAreaLight } from 'three';
|
|
2
|
-
|
|
3
|
-
export class ShapedAreaLight extends RectAreaLight {
|
|
4
|
-
|
|
5
|
-
constructor( ...args ) {
|
|
6
|
-
|
|
7
|
-
super( ...args );
|
|
8
|
-
this.isCircular = false;
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { RectAreaLight } from 'three';
|
|
2
|
+
|
|
3
|
+
export class ShapedAreaLight extends RectAreaLight {
|
|
4
|
+
|
|
5
|
+
constructor( ...args ) {
|
|
6
|
+
|
|
7
|
+
super( ...args );
|
|
8
|
+
this.isCircular = false;
|
|
9
|
+
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
copy( source, recursive ) {
|
|
13
|
+
|
|
14
|
+
super.copy( source, recursive );
|
|
15
|
+
|
|
16
|
+
this.isCircular = source.isCircular;
|
|
17
|
+
|
|
18
|
+
return this;
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
}
|