@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.0.0
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 +73 -0
- package/README.md +3 -0
- package/dist/RenderingEngine.d.ts +296 -0
- package/dist/RenderingEngine.d.ts.map +1 -0
- package/dist/RenderingEngine.js +1079 -0
- package/dist/RenderingEngine.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/injectors/Tag3dGeometryCreationInjector.d.ts +11 -0
- package/dist/injectors/Tag3dGeometryCreationInjector.d.ts.map +1 -0
- package/dist/injectors/Tag3dGeometryCreationInjector.js +169 -0
- package/dist/injectors/Tag3dGeometryCreationInjector.js.map +1 -0
- package/dist/injectors/TextureUnifierInjector.d.ts +14 -0
- package/dist/injectors/TextureUnifierInjector.d.ts.map +1 -0
- package/dist/injectors/TextureUnifierInjector.js +227 -0
- package/dist/injectors/TextureUnifierInjector.js.map +1 -0
- package/dist/interfaces/ILoader.d.ts +4 -0
- package/dist/interfaces/ILoader.d.ts.map +1 -0
- package/dist/interfaces/ILoader.js +3 -0
- package/dist/interfaces/ILoader.js.map +1 -0
- package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts +307 -0
- package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts.map +1 -0
- package/dist/interfaces/IPostProcessingEffectDefinitions.js +31 -0
- package/dist/interfaces/IPostProcessingEffectDefinitions.js.map +1 -0
- package/dist/interfaces/IRenderingEngine.d.ts +43 -0
- package/dist/interfaces/IRenderingEngine.d.ts.map +1 -0
- package/dist/interfaces/IRenderingEngine.js +3 -0
- package/dist/interfaces/IRenderingEngine.js.map +1 -0
- package/dist/loaders/EnvironmentMapLoader.d.ts +98 -0
- package/dist/loaders/EnvironmentMapLoader.d.ts.map +1 -0
- package/dist/loaders/EnvironmentMapLoader.js +348 -0
- package/dist/loaders/EnvironmentMapLoader.js.map +1 -0
- package/dist/loaders/GeometryLoader.d.ts +38 -0
- package/dist/loaders/GeometryLoader.d.ts.map +1 -0
- package/dist/loaders/GeometryLoader.js +505 -0
- package/dist/loaders/GeometryLoader.js.map +1 -0
- package/dist/loaders/HTMLElementAnchorLoader.d.ts +17 -0
- package/dist/loaders/HTMLElementAnchorLoader.d.ts.map +1 -0
- package/dist/loaders/HTMLElementAnchorLoader.js +84 -0
- package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -0
- package/dist/loaders/LightLoader.d.ts +19 -0
- package/dist/loaders/LightLoader.d.ts.map +1 -0
- package/dist/loaders/LightLoader.js +152 -0
- package/dist/loaders/LightLoader.js.map +1 -0
- package/dist/loaders/MaterialLoader.d.ts +99 -0
- package/dist/loaders/MaterialLoader.d.ts.map +1 -0
- package/dist/loaders/MaterialLoader.js +1175 -0
- package/dist/loaders/MaterialLoader.js.map +1 -0
- package/dist/managers/CameraManager.d.ts +20 -0
- package/dist/managers/CameraManager.d.ts.map +1 -0
- package/dist/managers/CameraManager.js +195 -0
- package/dist/managers/CameraManager.js.map +1 -0
- package/dist/managers/EnvironmentGeometryManager.d.ts +43 -0
- package/dist/managers/EnvironmentGeometryManager.d.ts.map +1 -0
- package/dist/managers/EnvironmentGeometryManager.js +210 -0
- package/dist/managers/EnvironmentGeometryManager.js.map +1 -0
- package/dist/managers/PostProcessingManager.d.ts +1014 -0
- package/dist/managers/PostProcessingManager.d.ts.map +1 -0
- package/dist/managers/PostProcessingManager.js +1013 -0
- package/dist/managers/PostProcessingManager.js.map +1 -0
- package/dist/managers/RenderingManager.d.ts +83 -0
- package/dist/managers/RenderingManager.d.ts.map +1 -0
- package/dist/managers/RenderingManager.js +567 -0
- package/dist/managers/RenderingManager.js.map +1 -0
- package/dist/managers/SceneTracingManager.d.ts +26 -0
- package/dist/managers/SceneTracingManager.d.ts.map +1 -0
- package/dist/managers/SceneTracingManager.js +122 -0
- package/dist/managers/SceneTracingManager.js.map +1 -0
- package/dist/managers/SceneTreeManager.d.ts +55 -0
- package/dist/managers/SceneTreeManager.d.ts.map +1 -0
- package/dist/managers/SceneTreeManager.js +501 -0
- package/dist/managers/SceneTreeManager.js.map +1 -0
- package/dist/managers/postprocessing/GodRaysManager.d.ts +13 -0
- package/dist/managers/postprocessing/GodRaysManager.d.ts.map +1 -0
- package/dist/managers/postprocessing/GodRaysManager.js +64 -0
- package/dist/managers/postprocessing/GodRaysManager.js.map +1 -0
- package/dist/managers/postprocessing/OutlineManager.d.ts +15 -0
- package/dist/managers/postprocessing/OutlineManager.d.ts.map +1 -0
- package/dist/managers/postprocessing/OutlineManager.js +67 -0
- package/dist/managers/postprocessing/OutlineManager.js.map +1 -0
- package/dist/managers/postprocessing/SSAARenderPass.d.ts +54 -0
- package/dist/managers/postprocessing/SSAARenderPass.d.ts.map +1 -0
- package/dist/managers/postprocessing/SSAARenderPass.js +234 -0
- package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -0
- package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +15 -0
- package/dist/managers/postprocessing/SelectiveBloomManager.d.ts.map +1 -0
- package/dist/managers/postprocessing/SelectiveBloomManager.js +67 -0
- package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -0
- package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +47 -0
- package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ao/AOEffect.js +134 -0
- package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -0
- package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +13 -0
- package/dist/managers/postprocessing/ao/ao/AOPass.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ao/AOPass.js +78 -0
- package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts +2 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js +23 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +15 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +25 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +2 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +102 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.js.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.d.ts +2 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.js +99 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.js.map +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +37 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +171 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts +2 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js +131 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js.map +1 -0
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +15 -0
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +76 -0
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -0
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts +2 -0
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.js +134 -0
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.js.map +1 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +2 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.js +12 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.js.map +1 -0
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts +2 -0
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js +42 -0
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js.map +1 -0
- package/dist/managers/postprocessing/utils/CopyMaterial.d.ts +38 -0
- package/dist/managers/postprocessing/utils/CopyMaterial.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/CopyMaterial.js +106 -0
- package/dist/managers/postprocessing/utils/CopyMaterial.js.map +1 -0
- package/dist/managers/postprocessing/utils/CopyShader.d.ts +14 -0
- package/dist/managers/postprocessing/utils/CopyShader.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/CopyShader.js +36 -0
- package/dist/managers/postprocessing/utils/CopyShader.js.map +1 -0
- package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +10 -0
- package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/FullScreenQuad.js +29 -0
- package/dist/managers/postprocessing/utils/FullScreenQuad.js.map +1 -0
- package/dist/managers/postprocessing/utils/NormalPass.d.ts +88 -0
- package/dist/managers/postprocessing/utils/NormalPass.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/NormalPass.js +157 -0
- package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -0
- package/dist/managers/postprocessing/utils/RenderPass.d.ts +115 -0
- package/dist/managers/postprocessing/utils/RenderPass.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/RenderPass.js +251 -0
- package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -0
- package/dist/materials/GemMaterial.d.ts +38 -0
- package/dist/materials/GemMaterial.d.ts.map +1 -0
- package/dist/materials/GemMaterial.js +253 -0
- package/dist/materials/GemMaterial.js.map +1 -0
- package/dist/materials/MeshUnlitMaterialParameters.d.ts +4 -0
- package/dist/materials/MeshUnlitMaterialParameters.d.ts.map +1 -0
- package/dist/materials/MeshUnlitMaterialParameters.js +3 -0
- package/dist/materials/MeshUnlitMaterialParameters.js.map +1 -0
- package/dist/materials/MultiPointsMaterial.d.ts +94 -0
- package/dist/materials/MultiPointsMaterial.d.ts.map +1 -0
- package/dist/materials/MultiPointsMaterial.js +567 -0
- package/dist/materials/MultiPointsMaterial.js.map +1 -0
- package/dist/materials/SpecularGlossinessMaterial.d.ts +14 -0
- package/dist/materials/SpecularGlossinessMaterial.d.ts.map +1 -0
- package/dist/materials/SpecularGlossinessMaterial.js +162 -0
- package/dist/materials/SpecularGlossinessMaterial.js.map +1 -0
- package/dist/objects/SDBone.d.ts +13 -0
- package/dist/objects/SDBone.d.ts.map +1 -0
- package/dist/objects/SDBone.js +75 -0
- package/dist/objects/SDBone.js.map +1 -0
- package/dist/objects/SDColor.d.ts +17 -0
- package/dist/objects/SDColor.d.ts.map +1 -0
- package/dist/objects/SDColor.js +49 -0
- package/dist/objects/SDColor.js.map +1 -0
- package/dist/objects/SDData.d.ts +19 -0
- package/dist/objects/SDData.d.ts.map +1 -0
- package/dist/objects/SDData.js +48 -0
- package/dist/objects/SDData.js.map +1 -0
- package/dist/objects/SDObject.d.ts +14 -0
- package/dist/objects/SDObject.d.ts.map +1 -0
- package/dist/objects/SDObject.js +81 -0
- package/dist/objects/SDObject.js.map +1 -0
- package/dist/shaders/PCSS.d.ts +3 -0
- package/dist/shaders/PCSS.d.ts.map +1 -0
- package/dist/shaders/PCSS.js +127 -0
- package/dist/shaders/PCSS.js.map +1 -0
- package/dist/shaders/gem.d.ts +3 -0
- package/dist/shaders/gem.d.ts.map +1 -0
- package/dist/shaders/gem.js +578 -0
- package/dist/shaders/gem.js.map +1 -0
- package/dist/shaders/multi_points.d.ts +3 -0
- package/dist/shaders/multi_points.d.ts.map +1 -0
- package/dist/shaders/multi_points.js +294 -0
- package/dist/shaders/multi_points.js.map +1 -0
- package/dist/styling/viewport-css.d.ts +2 -0
- package/dist/styling/viewport-css.d.ts.map +1 -0
- package/dist/styling/viewport-css.js +117 -0
- package/dist/styling/viewport-css.js.map +1 -0
- package/dist/three/font.d.ts +2365 -0
- package/dist/three/font.d.ts.map +1 -0
- package/dist/three/font.js +6 -0
- package/dist/three/font.js.map +1 -0
- package/dist/three/geometries/TextGeometry.d.ts +22 -0
- package/dist/three/geometries/TextGeometry.d.ts.map +1 -0
- package/dist/three/geometries/TextGeometry.js +45 -0
- package/dist/three/geometries/TextGeometry.js.map +1 -0
- package/dist/three/loaders/FontLoader.d.ts +15 -0
- package/dist/three/loaders/FontLoader.d.ts.map +1 -0
- package/dist/three/loaders/FontLoader.js +118 -0
- package/dist/three/loaders/FontLoader.js.map +1 -0
- package/dist/three/loaders/RGBELoader.d.ts +24 -0
- package/dist/three/loaders/RGBELoader.d.ts.map +1 -0
- package/dist/three/loaders/RGBELoader.js +299 -0
- package/dist/three/loaders/RGBELoader.js.map +1 -0
- package/dist/types/IThreejsData.d.ts +7 -0
- package/dist/types/IThreejsData.d.ts.map +1 -0
- package/dist/types/IThreejsData.js +3 -0
- package/dist/types/IThreejsData.js.map +1 -0
- package/dist/types/ThreejsData.d.ts +11 -0
- package/dist/types/ThreejsData.d.ts.map +1 -0
- package/dist/types/ThreejsData.js +42 -0
- package/dist/types/ThreejsData.js.map +1 -0
- package/package.json +65 -0
- package/src/RenderingEngine.ts +1342 -0
- package/src/index.ts +23 -0
- package/src/injectors/Tag3dGeometryCreationInjector.ts +170 -0
- package/src/injectors/TextureUnifierInjector.ts +224 -0
- package/src/interfaces/ILoader.ts +3 -0
- package/src/interfaces/IPostProcessingEffectDefinitions.ts +402 -0
- package/src/interfaces/IRenderingEngine.ts +48 -0
- package/src/loaders/EnvironmentMapLoader.ts +355 -0
- package/src/loaders/GeometryLoader.ts +565 -0
- package/src/loaders/HTMLElementAnchorLoader.ts +107 -0
- package/src/loaders/LightLoader.ts +171 -0
- package/src/loaders/MaterialLoader.ts +1418 -0
- package/src/managers/CameraManager.ts +178 -0
- package/src/managers/EnvironmentGeometryManager.ts +224 -0
- package/src/managers/PostProcessingManager.ts +1169 -0
- package/src/managers/RenderingManager.ts +657 -0
- package/src/managers/SceneTracingManager.ts +120 -0
- package/src/managers/SceneTreeManager.ts +569 -0
- package/src/managers/postprocessing/GodRaysManager.ts +52 -0
- package/src/managers/postprocessing/OutlineManager.ts +58 -0
- package/src/managers/postprocessing/SSAARenderPass.ts +339 -0
- package/src/managers/postprocessing/SelectiveBloomManager.ts +58 -0
- package/src/managers/postprocessing/ao/ao/AOEffect.ts +180 -0
- package/src/managers/postprocessing/ao/ao/AOPass.ts +128 -0
- package/src/managers/postprocessing/ao/ao/shader/ao_compose.glsl +17 -0
- package/src/managers/postprocessing/ao/ao/shader/ao_compose.ts +19 -0
- package/src/managers/postprocessing/ao/hbao/HBAOEffect.ts +41 -0
- package/src/managers/postprocessing/ao/hbao/shader/hbao.glsl +96 -0
- package/src/managers/postprocessing/ao/hbao/shader/hbao.ts +98 -0
- package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.glsl +92 -0
- package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.ts +95 -0
- package/src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts +245 -0
- package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.glsl +125 -0
- package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.ts +127 -0
- package/src/managers/postprocessing/ao/ssao/SSAOEffect.ts +106 -0
- package/src/managers/postprocessing/ao/ssao/shader/ssao.glsl +128 -0
- package/src/managers/postprocessing/ao/ssao/shader/ssao.ts +130 -0
- package/src/managers/postprocessing/ao/utils/shader/basic.glsl +6 -0
- package/src/managers/postprocessing/ao/utils/shader/basic.ts +8 -0
- package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.glsl +36 -0
- package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts +38 -0
- package/src/managers/postprocessing/utils/CopyMaterial.ts +130 -0
- package/src/managers/postprocessing/utils/CopyShader.ts +39 -0
- package/src/managers/postprocessing/utils/FullScreenQuad.ts +47 -0
- package/src/managers/postprocessing/utils/NormalPass.ts +222 -0
- package/src/managers/postprocessing/utils/RenderPass.ts +366 -0
- package/src/materials/GemMaterial.ts +268 -0
- package/src/materials/MeshUnlitMaterialParameters.ts +4 -0
- package/src/materials/MultiPointsMaterial.ts +646 -0
- package/src/materials/SpecularGlossinessMaterial.ts +182 -0
- package/src/objects/SDBone.ts +51 -0
- package/src/objects/SDColor.ts +54 -0
- package/src/objects/SDData.ts +44 -0
- package/src/objects/SDObject.ts +58 -0
- package/src/shaders/PCSS.ts +124 -0
- package/src/shaders/gem.ts +575 -0
- package/src/shaders/gem_frag.glsl +517 -0
- package/src/shaders/gem_vert.glsl +53 -0
- package/src/shaders/multi_points.ts +291 -0
- package/src/shaders/multi_points_frag.glsl +166 -0
- package/src/shaders/multi_points_vert.glsl +120 -0
- package/src/styling/viewport-css.ts +113 -0
- package/src/styling/viewport.css +111 -0
- package/src/three/font.ts +2 -0
- package/src/three/geometries/TextGeometry.ts +58 -0
- package/src/three/loaders/FontLoader.ts +205 -0
- package/src/three/loaders/RGBELoader.ts +496 -0
- package/src/types/IThreejsData.ts +16 -0
- package/src/types/ThreejsData.ts +43 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sampleBlueNoise = void 0;
|
|
4
|
+
exports.sampleBlueNoise = `
|
|
5
|
+
const float g = 1.6180339887498948482;
|
|
6
|
+
const float a1 = 1.0 / g;
|
|
7
|
+
|
|
8
|
+
// reference: https://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/
|
|
9
|
+
float r1(float n) {
|
|
10
|
+
// 7th harmonious number
|
|
11
|
+
return fract(1.1127756842787055 + a1 * n);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const vec4 hn = vec4(0.618033988749895, 0.3247179572447458, 0.2207440846057596, 0.1673039782614187);
|
|
15
|
+
|
|
16
|
+
vec4 sampleBlueNoise(sampler2D texture, int seed, vec2 repeat, vec2 texSize) {
|
|
17
|
+
vec2 size = vUv * texSize;
|
|
18
|
+
vec2 blueNoiseSize = texSize / repeat;
|
|
19
|
+
float blueNoiseIndex = floor(floor(size.y / blueNoiseSize.y) * repeat.x) + floor(size.x / blueNoiseSize.x);
|
|
20
|
+
|
|
21
|
+
// get the offset of this pixel's blue noise tile
|
|
22
|
+
// int blueNoiseTileOffset = int(r1(blueNoiseIndex + 1.0) * 65536.);
|
|
23
|
+
|
|
24
|
+
vec2 blueNoiseUv = vUv * repeat;
|
|
25
|
+
|
|
26
|
+
// fetch blue noise for this pixel
|
|
27
|
+
vec4 blueNoise = textureLod(texture, blueNoiseUv, 0.);
|
|
28
|
+
|
|
29
|
+
// animate blue noise
|
|
30
|
+
if (seed != 0) {
|
|
31
|
+
blueNoise = fract(blueNoise + hn * float(seed));
|
|
32
|
+
|
|
33
|
+
blueNoise.r = (blueNoise.r > 0.5 ? 1.0 - blueNoise.r : blueNoise.r) * 2.0;
|
|
34
|
+
blueNoise.g = (blueNoise.g > 0.5 ? 1.0 - blueNoise.g : blueNoise.g) * 2.0;
|
|
35
|
+
blueNoise.b = (blueNoise.b > 0.5 ? 1.0 - blueNoise.b : blueNoise.b) * 2.0;
|
|
36
|
+
blueNoise.a = (blueNoise.a > 0.5 ? 1.0 - blueNoise.a : blueNoise.a) * 2.0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return blueNoise;
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
42
|
+
//# sourceMappingURL=sampleBlueNoise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleBlueNoise.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC9B,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ShaderMaterial, WebGLRenderTarget } from "three";
|
|
2
|
+
/**
|
|
3
|
+
* A simple copy shader material.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CopyMaterial extends ShaderMaterial {
|
|
6
|
+
/**
|
|
7
|
+
* Constructs a new copy material.
|
|
8
|
+
*/
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* The input buffer.
|
|
12
|
+
*
|
|
13
|
+
* @type {Texture}
|
|
14
|
+
*/
|
|
15
|
+
set inputBuffer(value: WebGLRenderTarget);
|
|
16
|
+
/**
|
|
17
|
+
* Sets the input buffer.
|
|
18
|
+
*
|
|
19
|
+
* @deprecated Use inputBuffer instead.
|
|
20
|
+
* @param {Number} value - The buffer.
|
|
21
|
+
*/
|
|
22
|
+
setInputBuffer(value: WebGLRenderTarget): void;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the opacity.
|
|
25
|
+
*
|
|
26
|
+
* @deprecated Use opacity instead.
|
|
27
|
+
* @return {Number} The opacity.
|
|
28
|
+
*/
|
|
29
|
+
getOpacity(value: number): any;
|
|
30
|
+
/**
|
|
31
|
+
* Sets the opacity.
|
|
32
|
+
*
|
|
33
|
+
* @deprecated Use opacity instead.
|
|
34
|
+
* @param {Number} value - The opacity.
|
|
35
|
+
*/
|
|
36
|
+
setOpacity(value: number): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=CopyMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyMaterial.d.ts","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/CopyMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkI,cAAc,EAAwF,iBAAiB,EAAc,MAAM,OAAO,CAAC;AA8C5R;;GAEG;AAEH,qBAAa,YAAa,SAAQ,cAAc;IAE/C;;OAEG;;IAwBH;;;;OAIG;IAEH,IAAI,WAAW,CAAC,KAAK,EAAE,iBAAiB,EAIvC;IAED;;;;;OAKG;IAEH,cAAc,CAAC,KAAK,EAAE,iBAAiB;IAMvC;;;;;OAKG;IAEH,UAAU,CAAC,KAAK,EAAE,MAAM;IAMxB;;;;;OAKG;IAEH,UAAU,CAAC,KAAK,EAAE,MAAM;CAMxB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CopyMaterial = void 0;
|
|
4
|
+
const three_1 = require("three");
|
|
5
|
+
const vertexShader = `
|
|
6
|
+
varying vec2 vUv;
|
|
7
|
+
|
|
8
|
+
void main() {
|
|
9
|
+
|
|
10
|
+
vUv = position.xy * 0.5 + 0.5;
|
|
11
|
+
gl_Position = vec4(position.xy, 1.0, 1.0);
|
|
12
|
+
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
const fragmentShader = `
|
|
16
|
+
#include <common>
|
|
17
|
+
#include <dithering_pars_fragment>
|
|
18
|
+
|
|
19
|
+
#ifdef FRAMEBUFFER_PRECISION_HIGH
|
|
20
|
+
|
|
21
|
+
uniform mediump sampler2D inputBuffer;
|
|
22
|
+
|
|
23
|
+
#else
|
|
24
|
+
|
|
25
|
+
uniform lowp sampler2D inputBuffer;
|
|
26
|
+
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
uniform float opacity;
|
|
30
|
+
|
|
31
|
+
varying vec2 vUv;
|
|
32
|
+
|
|
33
|
+
void main() {
|
|
34
|
+
|
|
35
|
+
vec4 texel = texture2D(inputBuffer, vUv);
|
|
36
|
+
gl_FragColor = opacity * texel;
|
|
37
|
+
|
|
38
|
+
#include <encodings_fragment>
|
|
39
|
+
#include <dithering_fragment>
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
/**
|
|
44
|
+
* A simple copy shader material.
|
|
45
|
+
*/
|
|
46
|
+
class CopyMaterial extends three_1.ShaderMaterial {
|
|
47
|
+
/**
|
|
48
|
+
* Constructs a new copy material.
|
|
49
|
+
*/
|
|
50
|
+
constructor() {
|
|
51
|
+
super({
|
|
52
|
+
name: "CopyMaterial",
|
|
53
|
+
uniforms: {
|
|
54
|
+
inputBuffer: new three_1.Uniform(null),
|
|
55
|
+
opacity: new three_1.Uniform(1.0)
|
|
56
|
+
},
|
|
57
|
+
blending: three_1.CustomBlending,
|
|
58
|
+
blendEquation: three_1.AddEquation,
|
|
59
|
+
blendDst: three_1.ZeroFactor,
|
|
60
|
+
blendSrc: three_1.OneFactor,
|
|
61
|
+
toneMapped: false,
|
|
62
|
+
depthWrite: false,
|
|
63
|
+
depthTest: false,
|
|
64
|
+
transparent: true,
|
|
65
|
+
fragmentShader,
|
|
66
|
+
vertexShader
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The input buffer.
|
|
71
|
+
*
|
|
72
|
+
* @type {Texture}
|
|
73
|
+
*/
|
|
74
|
+
set inputBuffer(value) {
|
|
75
|
+
this.uniforms.inputBuffer.value = value;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Sets the input buffer.
|
|
79
|
+
*
|
|
80
|
+
* @deprecated Use inputBuffer instead.
|
|
81
|
+
* @param {Number} value - The buffer.
|
|
82
|
+
*/
|
|
83
|
+
setInputBuffer(value) {
|
|
84
|
+
this.uniforms.inputBuffer.value = value;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns the opacity.
|
|
88
|
+
*
|
|
89
|
+
* @deprecated Use opacity instead.
|
|
90
|
+
* @return {Number} The opacity.
|
|
91
|
+
*/
|
|
92
|
+
getOpacity(value) {
|
|
93
|
+
return this.uniforms.opacity.value;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Sets the opacity.
|
|
97
|
+
*
|
|
98
|
+
* @deprecated Use opacity instead.
|
|
99
|
+
* @param {Number} value - The opacity.
|
|
100
|
+
*/
|
|
101
|
+
setOpacity(value) {
|
|
102
|
+
this.uniforms.opacity.value = value;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.CopyMaterial = CopyMaterial;
|
|
106
|
+
//# sourceMappingURL=CopyMaterial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyMaterial.js","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/CopyMaterial.ts"],"names":[],"mappings":";;;AAAA,iCAA4R;AAG5R,MAAM,YAAY,GAClB;;;;;;;;;CASC,CAAA;AAGD,MAAM,cAAc,GACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BC,CAAA;AAED;;GAEG;AAEH,MAAa,YAAa,SAAQ,sBAAc;IAE/C;;OAEG;IAEH;QAEC,KAAK,CAAC;YACL,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;gBACT,WAAW,EAAE,IAAI,eAAO,CAAC,IAAI,CAAC;gBAC9B,OAAO,EAAE,IAAI,eAAO,CAAC,GAAG,CAAC;aACzB;YACD,QAAQ,EAAE,sBAAc;YACf,aAAa,EAAE,mBAAW;YAC1B,QAAQ,EAAE,kBAAU;YACpB,QAAQ,EAAE,iBAAS;YAC5B,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK;YACP,WAAW,EAAE,IAAI;YAC1B,cAAc;YACd,YAAY;SACZ,CAAC,CAAC;IAEJ,CAAC;IAED;;;;OAIG;IAEH,IAAI,WAAW,CAAC,KAAwB;QAEvC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IAEzC,CAAC;IAED;;;;;OAKG;IAEH,cAAc,CAAC,KAAwB;QAEtC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IAEzC,CAAC;IAED;;;;;OAKG;IAEH,UAAU,CAAC,KAAa;QAEvB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;IAEpC,CAAC;IAED;;;;;OAKG;IAEH,UAAU,CAAC,KAAa;QAEvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IAErC,CAAC;CAED;AA/ED,oCA+EC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyShader.d.ts","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/CopyShader.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAsCtB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CopyShader = void 0;
|
|
4
|
+
exports.CopyShader = {
|
|
5
|
+
name: 'CopyShader',
|
|
6
|
+
uniforms: {
|
|
7
|
+
'tDiffuse': { value: null },
|
|
8
|
+
'opacity': { value: 1.0 }
|
|
9
|
+
},
|
|
10
|
+
vertexShader: /* glsl */ `
|
|
11
|
+
|
|
12
|
+
varying vec2 vUv;
|
|
13
|
+
|
|
14
|
+
void main() {
|
|
15
|
+
|
|
16
|
+
vUv = uv;
|
|
17
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
|
18
|
+
|
|
19
|
+
}`,
|
|
20
|
+
fragmentShader: /* glsl */ `
|
|
21
|
+
|
|
22
|
+
uniform float opacity;
|
|
23
|
+
|
|
24
|
+
uniform sampler2D tDiffuse;
|
|
25
|
+
|
|
26
|
+
varying vec2 vUv;
|
|
27
|
+
|
|
28
|
+
void main() {
|
|
29
|
+
|
|
30
|
+
gl_FragColor = texture2D( tDiffuse, vUv );
|
|
31
|
+
gl_FragColor.a *= opacity;
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
}`
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=CopyShader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyShader.js","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/CopyShader.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IAEzB,IAAI,EAAE,YAAY;IAElB,QAAQ,EAAE;QAET,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QAC3B,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;KAEzB;IAED,YAAY,EAAE,UAAU,CAAA;;;;;;;;;IASrB;IAEH,cAAc,EAAE,UAAU,CAAA;;;;;;;;;;;;;;IAcvB;CAEH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Mesh, Material, WebGLRenderer } from "three";
|
|
2
|
+
export declare class FullScreenQuad {
|
|
3
|
+
_mesh: Mesh;
|
|
4
|
+
constructor(material: Material);
|
|
5
|
+
dispose(): void;
|
|
6
|
+
render(renderer: WebGLRenderer): void;
|
|
7
|
+
get material(): Material | Material[];
|
|
8
|
+
set material(value: Material | Material[]);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=FullScreenQuad.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FullScreenQuad.d.ts","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/FullScreenQuad.ts"],"names":[],"mappings":"AAGA,OAAO,EAA8D,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAUlH,qBAAa,cAAc;IAC1B,KAAK,EAAE,IAAI,CAAC;gBAEC,QAAQ,EAAE,QAAQ;IAM/B,OAAO;IAMP,MAAM,CAAE,QAAQ,EAAE,aAAa;IAM/B,IAAI,QAAQ,0BAIX;IAED,IAAI,QAAQ,CAAE,KAAK,uBAAA,EAIlB;CAED"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Helper for passes that need to fill the viewport with a single quad.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.FullScreenQuad = void 0;
|
|
5
|
+
const three_1 = require("three");
|
|
6
|
+
const _camera = new three_1.OrthographicCamera(-1, 1, 1, -1, 0, 1);
|
|
7
|
+
// https://github.com/mrdoob/three.js/pull/21358
|
|
8
|
+
const _geometry = new three_1.BufferGeometry();
|
|
9
|
+
_geometry.setAttribute('position', new three_1.Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3));
|
|
10
|
+
_geometry.setAttribute('uv', new three_1.Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));
|
|
11
|
+
class FullScreenQuad {
|
|
12
|
+
constructor(material) {
|
|
13
|
+
this._mesh = new three_1.Mesh(_geometry, material);
|
|
14
|
+
}
|
|
15
|
+
dispose() {
|
|
16
|
+
this._mesh.geometry.dispose();
|
|
17
|
+
}
|
|
18
|
+
render(renderer) {
|
|
19
|
+
renderer.render(this._mesh, _camera);
|
|
20
|
+
}
|
|
21
|
+
get material() {
|
|
22
|
+
return this._mesh.material;
|
|
23
|
+
}
|
|
24
|
+
set material(value) {
|
|
25
|
+
this._mesh.material = value;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.FullScreenQuad = FullScreenQuad;
|
|
29
|
+
//# sourceMappingURL=FullScreenQuad.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FullScreenQuad.js","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/FullScreenQuad.ts"],"names":[],"mappings":";AACA,uEAAuE;;;AAEvE,iCAAkH;AAElH,MAAM,OAAO,GAAG,IAAI,0BAAkB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC;AAE/D,gDAAgD;AAEhD,MAAM,SAAS,GAAG,IAAI,sBAAc,EAAE,CAAC;AACvC,SAAS,CAAC,YAAY,CAAE,UAAU,EAAE,IAAI,8BAAsB,CAAE,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAE,CAAC;AAC7G,SAAS,CAAC,YAAY,CAAE,IAAI,EAAE,IAAI,8BAAsB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAE,CAAC;AAEtF,MAAa,cAAc;IAG1B,YAAa,QAAkB;QAE9B,IAAI,CAAC,KAAK,GAAG,IAAI,YAAI,CAAE,SAAS,EAAE,QAAQ,CAAE,CAAC;IAE9C,CAAC;IAED,OAAO;QAEN,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAE/B,CAAC;IAED,MAAM,CAAE,QAAuB;QAE9B,QAAQ,CAAC,MAAM,CAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAE,CAAC;IAExC,CAAC;IAED,IAAI,QAAQ;QAEX,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAE5B,CAAC;IAED,IAAI,QAAQ,CAAE,KAAK;QAElB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IAE7B,CAAC;CAED;AAjCD,wCAiCC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Pass, Resolution } from "postprocessing";
|
|
2
|
+
import { Camera, DepthTexture, Scene, Texture, WebGLRenderTarget, WebGLRenderer } from "three";
|
|
3
|
+
import { RenderPass } from "./RenderPass";
|
|
4
|
+
/**
|
|
5
|
+
* A pass that renders the normals of a given scene.
|
|
6
|
+
*/
|
|
7
|
+
export declare class NormalPass extends Pass {
|
|
8
|
+
renderPass: RenderPass;
|
|
9
|
+
renderTarget: WebGLRenderTarget | undefined;
|
|
10
|
+
resolution: Resolution;
|
|
11
|
+
dTexture: any;
|
|
12
|
+
/**
|
|
13
|
+
* Constructs a new normal pass.
|
|
14
|
+
*
|
|
15
|
+
* @param {Scene} scene - The scene to render.
|
|
16
|
+
* @param {Camera} camera - The camera to use to render the scene.
|
|
17
|
+
* @param {Object} [options] - The options.
|
|
18
|
+
* @param {WebGLRenderTarget} [options.renderTarget] - A custom render target.
|
|
19
|
+
* @param {Number} [options.resolutionScale=1.0] - The resolution scale.
|
|
20
|
+
* @param {Number} [options.resolutionX=Resolution.AUTO_SIZE] - The horizontal resolution.
|
|
21
|
+
* @param {Number} [options.resolutionY=Resolution.AUTO_SIZE] - The vertical resolution.
|
|
22
|
+
* @param {Number} [options.width=Resolution.AUTO_SIZE] - Deprecated. Use resolutionX instead.
|
|
23
|
+
* @param {Number} [options.height=Resolution.AUTO_SIZE] - Deprecated. Use resolutionY instead.
|
|
24
|
+
*/
|
|
25
|
+
constructor(scene: Scene, camera: Camera, { renderTarget, resolutionScale, width, height, resolutionX, resolutionY }?: {
|
|
26
|
+
renderTarget?: WebGLRenderTarget;
|
|
27
|
+
resolutionScale?: number;
|
|
28
|
+
resolutionX?: number;
|
|
29
|
+
resolutionY?: number;
|
|
30
|
+
width?: number;
|
|
31
|
+
height?: number;
|
|
32
|
+
});
|
|
33
|
+
set mainScene(value: Scene);
|
|
34
|
+
set mainCamera(value: Camera);
|
|
35
|
+
/**
|
|
36
|
+
* The normal texture.
|
|
37
|
+
*
|
|
38
|
+
* @type {Texture}
|
|
39
|
+
*/
|
|
40
|
+
get texture(): Texture | undefined;
|
|
41
|
+
get depthTexture(): DepthTexture | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* The normal texture.
|
|
44
|
+
*
|
|
45
|
+
* @deprecated Use texture instead.
|
|
46
|
+
* @return {Texture} The texture.
|
|
47
|
+
*/
|
|
48
|
+
getTexture(): Texture | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Returns the resolution settings.
|
|
51
|
+
*
|
|
52
|
+
* @deprecated Use resolution instead.
|
|
53
|
+
* @return {Resolution} The resolution.
|
|
54
|
+
*/
|
|
55
|
+
getResolution(): Resolution;
|
|
56
|
+
/**
|
|
57
|
+
* Returns the current resolution scale.
|
|
58
|
+
*
|
|
59
|
+
* @return {Number} The resolution scale.
|
|
60
|
+
* @deprecated Use resolution.preferredWidth or resolution.preferredHeight instead.
|
|
61
|
+
*/
|
|
62
|
+
getResolutionScale(): number;
|
|
63
|
+
/**
|
|
64
|
+
* Sets the resolution scale.
|
|
65
|
+
*
|
|
66
|
+
* @param {Number} scale - The new resolution scale.
|
|
67
|
+
* @deprecated Use resolution.preferredWidth or resolution.preferredHeight instead.
|
|
68
|
+
*/
|
|
69
|
+
setResolutionScale(scale: number): void;
|
|
70
|
+
/**
|
|
71
|
+
* Renders the scene normals.
|
|
72
|
+
*
|
|
73
|
+
* @param {WebGLRenderer} renderer - The renderer.
|
|
74
|
+
* @param {WebGLRenderTarget} inputBuffer - A frame buffer that contains the result of the previous pass.
|
|
75
|
+
* @param {WebGLRenderTarget} outputBuffer - A frame buffer that serves as the output render target unless this pass renders to screen.
|
|
76
|
+
* @param {Number} [deltaTime] - The time between the last frame and the current one in seconds.
|
|
77
|
+
* @param {Boolean} [stencilTest] - Indicates whether a stencil mask is active.
|
|
78
|
+
*/
|
|
79
|
+
render(renderer: WebGLRenderer): void;
|
|
80
|
+
/**
|
|
81
|
+
* Updates the size of this pass.
|
|
82
|
+
*
|
|
83
|
+
* @param {Number} width - The width.
|
|
84
|
+
* @param {Number} height - The height.
|
|
85
|
+
*/
|
|
86
|
+
setSize(width: number, height: number): void;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=NormalPass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NormalPass.d.ts","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/NormalPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,MAAM,EAA6B,YAAY,EAAyG,KAAK,EAAE,OAAO,EAAuC,iBAAiB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtQ,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AAEH,qBAAa,UAAW,SAAQ,IAAI;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,GAAG,CAAC;IAEd;;;;;;;;;;;;OAYG;gBAES,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EACtC,YAAY,EACZ,eAAqB,EACrB,KAA4B,EAC5B,MAA6B,EAC7B,WAAmB,EACnB,WAAoB,EACvB,GAAE;QAAE,YAAY,CAAC,EAAE,iBAAiB,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;KAAO;IAwEpJ,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAIzB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAI3B;IAED;;;;OAIG;IAEH,IAAI,OAAO,wBAIV;IAED,IAAI,YAAY,6BAIf;IAED;;;;;OAKG;IAEH,UAAU,IAAI,OAAO,GAAG,SAAS;IAMjC;;;;;OAKG;IAEH,aAAa,IAAI,UAAU;IAM3B;;;;;OAKG;IAEH,kBAAkB,IAAI,MAAM;IAM5B;;;;;OAKG;IAEH,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAMhC;;;;;;;;OAQG;IAEH,MAAM,CAAC,QAAQ,EAAE,aAAa;IAO9B;;;;;OAKG;IAEH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQxC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NormalPass = void 0;
|
|
4
|
+
const postprocessing_1 = require("postprocessing");
|
|
5
|
+
const three_1 = require("three");
|
|
6
|
+
const RenderPass_1 = require("./RenderPass");
|
|
7
|
+
/**
|
|
8
|
+
* A pass that renders the normals of a given scene.
|
|
9
|
+
*/
|
|
10
|
+
class NormalPass extends postprocessing_1.Pass {
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a new normal pass.
|
|
13
|
+
*
|
|
14
|
+
* @param {Scene} scene - The scene to render.
|
|
15
|
+
* @param {Camera} camera - The camera to use to render the scene.
|
|
16
|
+
* @param {Object} [options] - The options.
|
|
17
|
+
* @param {WebGLRenderTarget} [options.renderTarget] - A custom render target.
|
|
18
|
+
* @param {Number} [options.resolutionScale=1.0] - The resolution scale.
|
|
19
|
+
* @param {Number} [options.resolutionX=Resolution.AUTO_SIZE] - The horizontal resolution.
|
|
20
|
+
* @param {Number} [options.resolutionY=Resolution.AUTO_SIZE] - The vertical resolution.
|
|
21
|
+
* @param {Number} [options.width=Resolution.AUTO_SIZE] - Deprecated. Use resolutionX instead.
|
|
22
|
+
* @param {Number} [options.height=Resolution.AUTO_SIZE] - Deprecated. Use resolutionY instead.
|
|
23
|
+
*/
|
|
24
|
+
constructor(scene, camera, { renderTarget, resolutionScale = 1.0, width = postprocessing_1.Resolution.AUTO_SIZE, height = postprocessing_1.Resolution.AUTO_SIZE, resolutionX = width, resolutionY = height } = {}) {
|
|
25
|
+
super("NormalPass");
|
|
26
|
+
this.needsSwap = false;
|
|
27
|
+
/**
|
|
28
|
+
* A render pass.
|
|
29
|
+
*
|
|
30
|
+
* @type {RenderPass}
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
this.renderPass = new RenderPass_1.RenderPass(scene, camera, new three_1.MeshNormalMaterial());
|
|
34
|
+
const renderPass = this.renderPass;
|
|
35
|
+
renderPass.ignoreBackground = true;
|
|
36
|
+
renderPass.skipShadowMapUpdate = true;
|
|
37
|
+
const clearPass = renderPass.getClearPass();
|
|
38
|
+
clearPass.overrideClearColor = new three_1.Color(0x7777ff);
|
|
39
|
+
clearPass.overrideClearAlpha = 1.0;
|
|
40
|
+
/**
|
|
41
|
+
* A render target for the scene normals.
|
|
42
|
+
*
|
|
43
|
+
* @type {WebGLRenderTarget}
|
|
44
|
+
* @readonly
|
|
45
|
+
*/
|
|
46
|
+
this.renderTarget = renderTarget;
|
|
47
|
+
if (this.renderTarget === undefined) {
|
|
48
|
+
this.renderTarget = new three_1.WebGLRenderTarget(1, 1, {
|
|
49
|
+
minFilter: three_1.NearestFilter,
|
|
50
|
+
magFilter: three_1.NearestFilter
|
|
51
|
+
});
|
|
52
|
+
this.renderTarget.texture.name = "NormalPass.Target";
|
|
53
|
+
}
|
|
54
|
+
this.dTexture = new three_1.DepthTexture(1, 1);
|
|
55
|
+
// Hack: Make sure the input buffer uses the depth texture.
|
|
56
|
+
this.renderTarget.depthTexture = this.dTexture;
|
|
57
|
+
this.renderTarget.dispose();
|
|
58
|
+
if (this.renderTarget.stencilBuffer) {
|
|
59
|
+
this.dTexture.format = three_1.DepthStencilFormat;
|
|
60
|
+
this.dTexture.type = three_1.UnsignedInt248Type;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.dTexture.type = three_1.UnsignedIntType;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The resolution.
|
|
67
|
+
*
|
|
68
|
+
* @type {Resolution}
|
|
69
|
+
* @readonly
|
|
70
|
+
*/
|
|
71
|
+
const resolution = this.resolution = new postprocessing_1.Resolution(this, resolutionX, resolutionY, resolutionScale);
|
|
72
|
+
resolution.addEventListener("change", (e) => this.setSize(resolution.baseWidth, resolution.baseHeight));
|
|
73
|
+
}
|
|
74
|
+
set mainScene(value) {
|
|
75
|
+
this.renderPass.mainScene = value;
|
|
76
|
+
}
|
|
77
|
+
set mainCamera(value) {
|
|
78
|
+
this.renderPass.mainCamera = value;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The normal texture.
|
|
82
|
+
*
|
|
83
|
+
* @type {Texture}
|
|
84
|
+
*/
|
|
85
|
+
get texture() {
|
|
86
|
+
var _a;
|
|
87
|
+
return (_a = this.renderTarget) === null || _a === void 0 ? void 0 : _a.texture;
|
|
88
|
+
}
|
|
89
|
+
get depthTexture() {
|
|
90
|
+
var _a;
|
|
91
|
+
return (_a = this.renderTarget) === null || _a === void 0 ? void 0 : _a.depthTexture;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The normal texture.
|
|
95
|
+
*
|
|
96
|
+
* @deprecated Use texture instead.
|
|
97
|
+
* @return {Texture} The texture.
|
|
98
|
+
*/
|
|
99
|
+
getTexture() {
|
|
100
|
+
var _a;
|
|
101
|
+
return (_a = this.renderTarget) === null || _a === void 0 ? void 0 : _a.texture;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Returns the resolution settings.
|
|
105
|
+
*
|
|
106
|
+
* @deprecated Use resolution instead.
|
|
107
|
+
* @return {Resolution} The resolution.
|
|
108
|
+
*/
|
|
109
|
+
getResolution() {
|
|
110
|
+
return this.resolution;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Returns the current resolution scale.
|
|
114
|
+
*
|
|
115
|
+
* @return {Number} The resolution scale.
|
|
116
|
+
* @deprecated Use resolution.preferredWidth or resolution.preferredHeight instead.
|
|
117
|
+
*/
|
|
118
|
+
getResolutionScale() {
|
|
119
|
+
return this.resolution.scale;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Sets the resolution scale.
|
|
123
|
+
*
|
|
124
|
+
* @param {Number} scale - The new resolution scale.
|
|
125
|
+
* @deprecated Use resolution.preferredWidth or resolution.preferredHeight instead.
|
|
126
|
+
*/
|
|
127
|
+
setResolutionScale(scale) {
|
|
128
|
+
this.resolution.scale = scale;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Renders the scene normals.
|
|
132
|
+
*
|
|
133
|
+
* @param {WebGLRenderer} renderer - The renderer.
|
|
134
|
+
* @param {WebGLRenderTarget} inputBuffer - A frame buffer that contains the result of the previous pass.
|
|
135
|
+
* @param {WebGLRenderTarget} outputBuffer - A frame buffer that serves as the output render target unless this pass renders to screen.
|
|
136
|
+
* @param {Number} [deltaTime] - The time between the last frame and the current one in seconds.
|
|
137
|
+
* @param {Boolean} [stencilTest] - Indicates whether a stencil mask is active.
|
|
138
|
+
*/
|
|
139
|
+
render(renderer) {
|
|
140
|
+
const renderTarget = this.renderToScreen ? null : this.renderTarget;
|
|
141
|
+
this.renderPass.render(renderer, renderTarget, renderTarget, 0, true);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Updates the size of this pass.
|
|
145
|
+
*
|
|
146
|
+
* @param {Number} width - The width.
|
|
147
|
+
* @param {Number} height - The height.
|
|
148
|
+
*/
|
|
149
|
+
setSize(width, height) {
|
|
150
|
+
var _a;
|
|
151
|
+
const resolution = this.resolution;
|
|
152
|
+
resolution.setBaseSize(width, height);
|
|
153
|
+
(_a = this.renderTarget) === null || _a === void 0 ? void 0 : _a.setSize(resolution.width, resolution.height);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
exports.NormalPass = NormalPass;
|
|
157
|
+
//# sourceMappingURL=NormalPass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NormalPass.js","sourceRoot":"","sources":["../../../../src/managers/postprocessing/utils/NormalPass.ts"],"names":[],"mappings":"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"}
|