@plastic-software/three 0.180.0 → 0.181.2
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/build/three.cjs +944 -487
- package/build/three.core.js +506 -327
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +436 -164
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +8 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +3753 -1177
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +3752 -1176
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +1 -1
- package/examples/jsm/controls/DragControls.js +1 -1
- package/examples/jsm/controls/FirstPersonControls.js +1 -1
- package/examples/jsm/controls/FlyControls.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +2 -2
- package/examples/jsm/controls/PointerLockControls.js +2 -2
- package/examples/jsm/controls/TrackballControls.js +1 -1
- package/examples/jsm/controls/TransformControls.js +1 -1
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +3 -3
- package/examples/jsm/exporters/USDZExporter.js +9 -2
- package/examples/jsm/geometries/DecalGeometry.js +2 -2
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +3 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/ViewHelper.js +43 -5
- package/examples/jsm/inspector/Inspector.js +427 -0
- package/examples/jsm/inspector/RendererInspector.js +415 -0
- package/examples/jsm/inspector/tabs/Console.js +204 -0
- package/examples/jsm/inspector/tabs/Parameters.js +332 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Viewer.js +166 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +170 -0
- package/examples/jsm/inspector/ui/Style.js +654 -0
- package/examples/jsm/inspector/ui/Tab.js +46 -0
- package/examples/jsm/inspector/ui/Values.js +423 -0
- package/examples/jsm/inspector/ui/utils.js +56 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +2 -2
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/FBXLoader.js +2 -2
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GLTFLoader.js +5 -3
- package/examples/jsm/loaders/KTX2Loader.js +28 -21
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +1 -1
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +2 -2
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/UltraHDRLoader.js +1 -1
- package/examples/jsm/math/ConvexHull.js +1 -1
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/SkyMesh.js +1 -1
- package/examples/jsm/objects/Water.js +3 -3
- package/examples/jsm/objects/WaterMesh.js +6 -6
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
- package/examples/jsm/renderers/SVGRenderer.js +1 -1
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +2 -2
- package/examples/jsm/shaders/GodRaysShader.js +1 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
- package/examples/jsm/shaders/SSRShader.js +1 -1
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/TSLEncoder.js +7 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
- package/examples/jsm/tsl/display/AnamorphicNode.js +2 -1
- package/examples/jsm/tsl/display/BloomNode.js +4 -0
- package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +7 -0
- package/examples/jsm/tsl/display/GTAONode.js +45 -5
- package/examples/jsm/tsl/display/GaussianBlurNode.js +5 -3
- package/examples/jsm/tsl/display/OutlineNode.js +11 -0
- package/examples/jsm/tsl/display/SSGINode.js +654 -0
- package/examples/jsm/tsl/display/SSRNode.js +2 -0
- package/examples/jsm/tsl/display/SSSNode.js +488 -0
- package/examples/jsm/tsl/display/TRAANode.js +123 -6
- package/examples/jsm/tsl/display/boxBlur.js +1 -0
- package/examples/jsm/tsl/display/hashBlur.js +1 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
- package/package.json +5 -10
- package/src/Three.Core.js +3 -2
- package/src/Three.TSL.js +7 -1
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +2 -0
- package/src/animation/AnimationClip.js +3 -2
- package/src/animation/AnimationMixer.js +3 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/KeyframeTrack.js +7 -6
- package/src/animation/PropertyBinding.js +12 -11
- package/src/audio/Audio.js +10 -9
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +1 -1
- package/src/core/BufferGeometry.js +8 -8
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +3 -2
- package/src/core/Raycaster.js +2 -1
- package/src/core/RenderTarget.js +10 -1
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +268 -55
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/lib/earcut.js +7 -7
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +8 -6
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +1 -0
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +2 -1
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +2 -2
- package/src/loaders/DataTextureLoader.js +1 -1
- package/src/loaders/FileLoader.js +3 -2
- package/src/loaders/ImageBitmapLoader.js +5 -4
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +3 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +3 -2
- package/src/loaders/ObjectLoader.js +13 -13
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +3 -2
- package/src/materials/Material.js +4 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshLambertMaterial.js +2 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +2 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +1 -0
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +2 -2
- package/src/materials/nodes/Line2NodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/NodeMaterial.js +62 -22
- package/src/materials/nodes/manager/NodeMaterialObserver.js +2 -1
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +2 -2
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/MathUtils.js +13 -11
- package/src/math/Matrix2.js +1 -1
- package/src/math/Matrix3.js +2 -2
- package/src/math/Matrix4.js +7 -7
- package/src/math/Plane.js +1 -1
- package/src/math/Quaternion.js +68 -66
- package/src/math/Spherical.js +1 -1
- package/src/nodes/Nodes.js +1 -1
- package/src/nodes/TSL.js +1 -1
- package/src/nodes/accessors/CubeTextureNode.js +3 -2
- package/src/nodes/accessors/InstanceNode.js +22 -4
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/Normal.js +5 -4
- package/src/nodes/accessors/Position.js +18 -2
- package/src/nodes/accessors/ReferenceNode.js +2 -1
- package/src/nodes/accessors/SceneNode.js +2 -1
- package/src/nodes/accessors/StorageBufferNode.js +2 -1
- package/src/nodes/accessors/StorageTextureNode.js +22 -0
- package/src/nodes/accessors/Texture3DNode.js +1 -1
- package/src/nodes/accessors/TextureNode.js +61 -27
- package/src/nodes/code/FunctionCallNode.js +5 -4
- package/src/nodes/core/ArrayNode.js +1 -0
- package/src/nodes/core/AttributeNode.js +2 -1
- package/src/nodes/core/ContextNode.js +5 -10
- package/src/nodes/core/IndexNode.js +2 -2
- package/src/nodes/core/InputNode.js +2 -1
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +40 -7
- package/src/nodes/core/Node.js +137 -12
- package/src/nodes/core/NodeBuilder.js +135 -21
- package/src/nodes/core/NodeFrame.js +20 -20
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUtils.js +17 -90
- package/src/nodes/core/ParameterNode.js +31 -0
- package/src/nodes/core/PropertyNode.js +7 -0
- package/src/nodes/core/StackNode.js +16 -14
- package/src/nodes/core/UniformNode.js +2 -1
- package/src/nodes/core/VarNode.js +70 -12
- package/src/nodes/core/VaryingNode.js +3 -2
- package/src/nodes/display/BlendModes.js +5 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +1 -1
- package/src/nodes/display/NormalMapNode.js +2 -1
- package/src/nodes/display/PassNode.js +51 -10
- package/src/nodes/display/RenderOutputNode.js +28 -2
- package/src/nodes/display/ScreenNode.js +2 -1
- package/src/nodes/display/ToneMappingNode.js +31 -4
- package/src/nodes/display/ToonOutlinePassNode.js +8 -0
- package/src/nodes/fog/Fog.js +3 -2
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +3 -2
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +40 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
- package/src/nodes/gpgpu/ComputeNode.js +17 -5
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +25 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
- package/src/nodes/lighting/EnvironmentNode.js +6 -6
- package/src/nodes/lighting/LightsNode.js +2 -3
- package/src/nodes/lighting/PointShadowNode.js +6 -0
- package/src/nodes/lighting/ShadowFilterNode.js +2 -0
- package/src/nodes/lighting/ShadowNode.js +75 -8
- package/src/nodes/math/ConditionalNode.js +6 -5
- package/src/nodes/math/MathNode.js +22 -4
- package/src/nodes/math/OperatorNode.js +3 -2
- package/src/nodes/pmrem/PMREMUtils.js +117 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +5 -2
- package/src/nodes/tsl/TSLCore.js +36 -15
- package/src/nodes/utils/DebugNode.js +2 -1
- package/src/nodes/utils/EventNode.js +36 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +3 -2
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +2 -1
- package/src/nodes/utils/PostProcessingUtils.js +28 -1
- package/src/nodes/utils/RTTNode.js +12 -2
- package/src/nodes/utils/ReflectorNode.js +10 -3
- package/src/objects/Line.js +2 -1
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Skeleton.js +3 -2
- package/src/objects/SkinnedMesh.js +3 -1
- package/src/objects/Sprite.js +2 -1
- package/src/renderers/WebGLRenderer.js +49 -33
- package/src/renderers/common/Animation.js +13 -1
- package/src/renderers/common/Backend.js +93 -30
- package/src/renderers/common/Background.js +2 -1
- package/src/renderers/common/Bindings.js +56 -2
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/Geometries.js +26 -0
- package/src/renderers/common/Info.js +4 -2
- package/src/renderers/common/InspectorBase.js +146 -0
- package/src/renderers/common/PostProcessing.js +6 -25
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderObject.js +3 -1
- package/src/renderers/common/RenderObjects.js +1 -1
- package/src/renderers/common/Renderer.js +436 -228
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +8 -0
- package/src/renderers/common/Sampler.js +37 -11
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +89 -35
- package/src/renderers/common/TimestampQueryPool.js +63 -1
- package/src/renderers/common/UniformsGroup.js +2 -1
- package/src/renderers/common/XRManager.js +7 -3
- package/src/renderers/common/extras/PMREMGenerator.js +160 -65
- package/src/renderers/common/nodes/NodeLibrary.js +4 -2
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/Nodes.js +38 -16
- package/src/renderers/shaders/DFGLUTData.js +64 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
- package/src/renderers/shaders/UniformsLib.js +1 -0
- package/src/renderers/shaders/UniformsUtils.js +25 -4
- package/src/renderers/webgl/WebGLCapabilities.js +2 -1
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLProgram.js +11 -10
- package/src/renderers/webgl/WebGLPrograms.js +2 -1
- package/src/renderers/webgl/WebGLShadowMap.js +2 -1
- package/src/renderers/webgl/WebGLState.js +15 -14
- package/src/renderers/webgl/WebGLTextures.js +18 -14
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +22 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +74 -11
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +6 -5
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +117 -16
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +42 -12
- package/src/renderers/webgpu/WebGPUBackend.js +134 -108
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +3 -2
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +21 -19
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +5 -0
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +44 -16
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +146 -74
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +29 -6
- package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
- package/src/renderers/webxr/WebXRManager.js +3 -2
- package/src/textures/Source.js +2 -1
- package/src/textures/Texture.js +3 -2
- package/src/textures/VideoTexture.js +2 -0
- package/src/utils.js +67 -3
|
@@ -16,7 +16,7 @@ class CSS2DObject extends Object3D {
|
|
|
16
16
|
/**
|
|
17
17
|
* Constructs a new CSS2D object.
|
|
18
18
|
*
|
|
19
|
-
* @param {
|
|
19
|
+
* @param {HTMLElement} [element] - The DOM element.
|
|
20
20
|
*/
|
|
21
21
|
constructor( element = document.createElement( 'div' ) ) {
|
|
22
22
|
|
|
@@ -34,7 +34,7 @@ class CSS2DObject extends Object3D {
|
|
|
34
34
|
/**
|
|
35
35
|
* The DOM element which defines the appearance of this 3D object.
|
|
36
36
|
*
|
|
37
|
-
* @type {
|
|
37
|
+
* @type {HTMLElement}
|
|
38
38
|
* @readonly
|
|
39
39
|
* @default true
|
|
40
40
|
*/
|
|
@@ -59,6 +59,7 @@ class CSS2DObject extends Object3D {
|
|
|
59
59
|
this.traverse( function ( object ) {
|
|
60
60
|
|
|
61
61
|
if (
|
|
62
|
+
object.element &&
|
|
62
63
|
object.element instanceof object.element.ownerDocument.defaultView.Element &&
|
|
63
64
|
object.element.parentNode !== null
|
|
64
65
|
) {
|
|
@@ -132,10 +133,20 @@ class CSS2DRenderer {
|
|
|
132
133
|
/**
|
|
133
134
|
* The DOM where the renderer appends its child-elements.
|
|
134
135
|
*
|
|
135
|
-
* @type {
|
|
136
|
+
* @type {HTMLElement}
|
|
136
137
|
*/
|
|
137
138
|
this.domElement = domElement;
|
|
138
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Controls whether the renderer assigns `z-index` values to CSS2DObject DOM elements.
|
|
142
|
+
* If set to `true`, z-index values are assigned first based on the `renderOrder`
|
|
143
|
+
* and secondly - the distance to the camera. If set to `false`, no z-index values are assigned.
|
|
144
|
+
*
|
|
145
|
+
* @type {boolean}
|
|
146
|
+
* @default true
|
|
147
|
+
*/
|
|
148
|
+
this.sortObjects = true;
|
|
149
|
+
|
|
139
150
|
/**
|
|
140
151
|
* Returns an object containing the width and height of the renderer.
|
|
141
152
|
*
|
|
@@ -165,7 +176,7 @@ class CSS2DRenderer {
|
|
|
165
176
|
_viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, _viewMatrix );
|
|
166
177
|
|
|
167
178
|
renderObject( scene, scene, camera );
|
|
168
|
-
zOrder( scene );
|
|
179
|
+
if ( this.sortObjects ) zOrder( scene );
|
|
169
180
|
|
|
170
181
|
};
|
|
171
182
|
|
|
@@ -310,7 +321,7 @@ class CSS2DRenderer {
|
|
|
310
321
|
* Constructor parameters of `CSS2DRenderer`.
|
|
311
322
|
*
|
|
312
323
|
* @typedef {Object} CSS2DRenderer~Parameters
|
|
313
|
-
* @property {
|
|
324
|
+
* @property {HTMLElement} [element] - A DOM element where the renderer appends its child-elements.
|
|
314
325
|
* If not passed in here, a new div element will be created.
|
|
315
326
|
**/
|
|
316
327
|
|
|
@@ -22,7 +22,7 @@ class CSS3DObject extends Object3D {
|
|
|
22
22
|
/**
|
|
23
23
|
* Constructs a new CSS3D object.
|
|
24
24
|
*
|
|
25
|
-
* @param {
|
|
25
|
+
* @param {HTMLElement} [element] - The DOM element.
|
|
26
26
|
*/
|
|
27
27
|
constructor( element = document.createElement( 'div' ) ) {
|
|
28
28
|
|
|
@@ -40,7 +40,7 @@ class CSS3DObject extends Object3D {
|
|
|
40
40
|
/**
|
|
41
41
|
* The DOM element which defines the appearance of this 3D object.
|
|
42
42
|
*
|
|
43
|
-
* @type {
|
|
43
|
+
* @type {HTMLElement}
|
|
44
44
|
* @readonly
|
|
45
45
|
* @default true
|
|
46
46
|
*/
|
|
@@ -56,6 +56,7 @@ class CSS3DObject extends Object3D {
|
|
|
56
56
|
this.traverse( function ( object ) {
|
|
57
57
|
|
|
58
58
|
if (
|
|
59
|
+
object.element &&
|
|
59
60
|
object.element instanceof object.element.ownerDocument.defaultView.Element &&
|
|
60
61
|
object.element.parentNode !== null
|
|
61
62
|
) {
|
|
@@ -94,7 +95,7 @@ class CSS3DSprite extends CSS3DObject {
|
|
|
94
95
|
/**
|
|
95
96
|
* Constructs a new CSS3D sprite object.
|
|
96
97
|
*
|
|
97
|
-
* @param {
|
|
98
|
+
* @param {HTMLElement} [element] - The DOM element.
|
|
98
99
|
*/
|
|
99
100
|
constructor( element ) {
|
|
100
101
|
|
|
@@ -138,7 +139,7 @@ const _matrix2 = new Matrix4();
|
|
|
138
139
|
|
|
139
140
|
/**
|
|
140
141
|
* This renderer can be used to apply hierarchical 3D transformations to DOM elements
|
|
141
|
-
* via the CSS3 [transform]
|
|
142
|
+
* via the CSS3 [transform](https://www.w3schools.com/cssref/css3_pr_transform.asp) property.
|
|
142
143
|
* `CSS3DRenderer` is particularly interesting if you want to apply 3D effects to a website without
|
|
143
144
|
* canvas based rendering. It can also be used in order to combine DOM elements with WebGLcontent.
|
|
144
145
|
*
|
|
@@ -179,7 +180,7 @@ class CSS3DRenderer {
|
|
|
179
180
|
/**
|
|
180
181
|
* The DOM where the renderer appends its child-elements.
|
|
181
182
|
*
|
|
182
|
-
* @type {
|
|
183
|
+
* @type {HTMLElement}
|
|
183
184
|
*/
|
|
184
185
|
this.domElement = domElement;
|
|
185
186
|
|
|
@@ -446,7 +447,7 @@ class CSS3DRenderer {
|
|
|
446
447
|
* Constructor parameters of `CSS3DRenderer`.
|
|
447
448
|
*
|
|
448
449
|
* @typedef {Object} CSS3DRenderer~Parameters
|
|
449
|
-
* @property {
|
|
450
|
+
* @property {HTMLElement} [element] - A DOM element where the renderer appends its child-elements.
|
|
450
451
|
* If not passed in here, a new div element will be created.
|
|
451
452
|
**/
|
|
452
453
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* ACES Filmic Tone Mapping Shader by Stephen Hill.
|
|
8
|
-
* Reference: [ltc_blit.fs]
|
|
8
|
+
* Reference: [ltc_blit.fs](https://github.com/selfshadow/ltc_code/blob/master/webgl/shaders/ltc/ltc_blit.fs)
|
|
9
9
|
*
|
|
10
10
|
* This implementation of ACES is modified to accommodate a brighter viewing environment.
|
|
11
11
|
* The scale factor of 1/0.6 is subjective. See discussion in #19621.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Inspired by [Three.js FBO motion trails]
|
|
7
|
+
* Inspired by [Three.js FBO motion trails](https://codepen.io/brunoimbrizi/pen/MoRJaN?page=1&).
|
|
8
8
|
*
|
|
9
9
|
* @constant
|
|
10
10
|
* @type {ShaderMaterial~Shader}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Bleach bypass shader [http://en.wikipedia.org/wiki/Bleach_bypass] based on
|
|
9
|
-
* [Nvidia Shader library]
|
|
9
|
+
* [Nvidia Shader library](http://developer.download.nvidia.com/shaderlibrary/webpages/shader_library.html#post_bleach_bypass).
|
|
10
10
|
*
|
|
11
11
|
* @constant
|
|
12
12
|
* @type {ShaderMaterial~Shader}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Depth-of-field shader with bokeh ported from
|
|
8
|
-
* [GLSL shader by Martins Upitis]
|
|
8
|
+
* [GLSL shader by Martins Upitis](http://artmartinsh.blogspot.com/2010/02/glsl-lens-blur-filter-with-bokeh.html).
|
|
9
9
|
*
|
|
10
10
|
* @constant
|
|
11
11
|
* @type {ShaderMaterial~Shader}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Depth-of-field shader with bokeh ported from
|
|
12
|
-
* [GLSL shader by Martins Upitis]
|
|
12
|
+
* [GLSL shader by Martins Upitis](http://blenderartists.org/forum/showthread.php?237488-GLSL-depth-of-field-with-bokeh-v2-4-(update)).
|
|
13
13
|
*
|
|
14
14
|
* Requires #define RINGS and SAMPLES integers
|
|
15
15
|
*
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Focus shader based on [PaintEffect postprocess from ro.me]
|
|
7
|
+
* Focus shader based on [PaintEffect postprocess from ro.me](http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js).
|
|
8
8
|
*
|
|
9
9
|
* @constant
|
|
10
10
|
* @type {ShaderMaterial~Shader}
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
* GTAO shader. Use by {@link GTAOPass}.
|
|
16
16
|
*
|
|
17
17
|
* References:
|
|
18
|
-
* - [Practical Realtime Strategies for Accurate Indirect Occlusion]
|
|
19
|
-
* - [Horizon-Based Indirect Lighting (HBIL)]
|
|
18
|
+
* - [Practical Realtime Strategies for Accurate Indirect Occlusion](https://iryoku.com/downloads/Practical-Realtime-Strategies-for-Accurate-Indirect-Occlusion.pdf).
|
|
19
|
+
* - [Horizon-Based Indirect Lighting (HBIL)](https://github.com/Patapom/GodComplex/blob/master/Tests/TestHBIL/2018%20Mayaux%20-%20Horizon-Based%20Indirect%20Lighting%20(HBIL).pdf)
|
|
20
20
|
*
|
|
21
21
|
* @constant
|
|
22
22
|
* @type {ShaderMaterial~Shader}
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
* 6*6*6 = 216 samples.
|
|
23
23
|
*
|
|
24
24
|
* References:
|
|
25
|
-
* - [Sousa2008, Crysis Next Gen Effects, GDC2008]
|
|
25
|
+
* - [Sousa2008, Crysis Next Gen Effects, GDC2008](http://www.crytek.com/sites/default/files/GDC08_SousaT_CrysisEffects.ppt).
|
|
26
26
|
*
|
|
27
27
|
* @constant
|
|
28
28
|
* @type {ShaderMaterial~Shader}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Kaleidoscope Shader.
|
|
8
8
|
* Radial reflection around center point
|
|
9
9
|
* Ported from: {@link http://pixelshaders.com/editor/}
|
|
10
|
-
* by [Toby Schachman]
|
|
10
|
+
* by [Toby Schachman](http://tobyschachman.com/)
|
|
11
11
|
*
|
|
12
12
|
* sides: number of reflections
|
|
13
13
|
* angle: initial angle in radians
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
* Poisson Denoise Shader.
|
|
14
14
|
*
|
|
15
15
|
* References:
|
|
16
|
-
* - [Self-Supervised Poisson-Gaussian Denoising]
|
|
17
|
-
* - [Poisson2Sparse: Self-Supervised Poisson Denoising From a Single Image]
|
|
16
|
+
* - [Self-Supervised Poisson-Gaussian Denoising](https://openaccess.thecvf.com/content/WACV2021/papers/Khademi_Self-Supervised_Poisson-Gaussian_Denoising_WACV_2021_paper.pdf).
|
|
17
|
+
* - [Poisson2Sparse: Self-Supervised Poisson Denoising From a Single Image](https://arxiv.org/pdf/2206.01856.pdf)
|
|
18
18
|
*
|
|
19
19
|
* @constant
|
|
20
20
|
* @type {ShaderMaterial~Shader}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
* A collection of shaders used for SSR.
|
|
9
9
|
*
|
|
10
10
|
* References:
|
|
11
|
-
* - [3D Game Shaders For Beginners, Screen Space Reflection (SSR)]
|
|
11
|
+
* - [3D Game Shaders For Beginners, Screen Space Reflection (SSR)](https://lettier.github.io/3d-game-shaders-for-beginners/screen-space-reflection.html).
|
|
12
12
|
*
|
|
13
13
|
* @module SSRShader
|
|
14
14
|
* @three_import import * as SSRShader from 'three/addons/shaders/SSRShader.js';
|
|
@@ -22,7 +22,7 @@ const meshphong_frag_body = ShaderChunk[ 'meshphong_frag' ].slice( ShaderChunk[
|
|
|
22
22
|
/**
|
|
23
23
|
* Subsurface Scattering shader.
|
|
24
24
|
*
|
|
25
|
-
* Based on GDC 2011 – [Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look]
|
|
25
|
+
* Based on GDC 2011 – [Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look](https://colinbarrebrisebois.com/2011/03/07/gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look/)
|
|
26
26
|
*
|
|
27
27
|
* @constant
|
|
28
28
|
* @type {ShaderMaterial~Shader}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Triangle blur shader based on [glfx.js triangle blur shader]
|
|
11
|
+
* Triangle blur shader based on [glfx.js triangle blur shader](https://github.com/evanw/glfx.js).
|
|
12
12
|
*
|
|
13
13
|
* A basic blur filter, which convolves the image with a
|
|
14
14
|
* pyramid filter. The pyramid filter is separable and is applied as two
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Based on [PaintEffect postprocess from ro.me]
|
|
7
|
+
* Based on [PaintEffect postprocess from ro.me](http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js).
|
|
8
8
|
*
|
|
9
9
|
* @constant
|
|
10
10
|
* @type {ShaderMaterial~Shader}
|
|
@@ -681,6 +681,12 @@ ${ this.tab }} )`;
|
|
|
681
681
|
|
|
682
682
|
}
|
|
683
683
|
|
|
684
|
+
if ( node.needsToVar ) {
|
|
685
|
+
|
|
686
|
+
varStr = varStr + '.toVar()';
|
|
687
|
+
|
|
688
|
+
}
|
|
689
|
+
|
|
684
690
|
return varStr;
|
|
685
691
|
|
|
686
692
|
}
|
|
@@ -750,6 +756,7 @@ ${ this.tab }} )`;
|
|
|
750
756
|
const mutableParam = new VariableDeclaration( param.type, param.name, new Accessor( param.name + '_immutable' ), null, true );
|
|
751
757
|
mutableParam.parent = param.parent; // link to the original node
|
|
752
758
|
mutableParam.linker.assignments.push( mutableParam );
|
|
759
|
+
mutableParam.needsToVar = true; // force var declaration
|
|
753
760
|
|
|
754
761
|
node.body.unshift( mutableParam );
|
|
755
762
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RenderTarget, Vector2, QuadMesh, NodeMaterial, RendererUtils, TempNode, NodeUpdateType } from 'three/webgpu';
|
|
2
|
-
import { nodeObject, Fn, float, uv, texture, passTexture,
|
|
2
|
+
import { nodeObject, Fn, float, uv, texture, passTexture, sign, max, convertToTexture } from 'three/tsl';
|
|
3
3
|
|
|
4
4
|
const _size = /*@__PURE__*/ new Vector2();
|
|
5
|
-
const
|
|
5
|
+
const _quadMesh = /*@__PURE__*/ new QuadMesh();
|
|
6
6
|
|
|
7
7
|
let _rendererState;
|
|
8
8
|
|
|
@@ -24,9 +24,9 @@ class AfterImageNode extends TempNode {
|
|
|
24
24
|
* Constructs a new after image node.
|
|
25
25
|
*
|
|
26
26
|
* @param {TextureNode} textureNode - The texture node that represents the input of the effect.
|
|
27
|
-
* @param {
|
|
27
|
+
* @param {Node<float>} [damp=0.96] - The damping intensity. A higher value means a stronger after image effect.
|
|
28
28
|
*/
|
|
29
|
-
constructor( textureNode, damp = 0.96 ) {
|
|
29
|
+
constructor( textureNode, damp = float( 0.96 ) ) {
|
|
30
30
|
|
|
31
31
|
super( 'vec4' );
|
|
32
32
|
|
|
@@ -37,21 +37,14 @@ class AfterImageNode extends TempNode {
|
|
|
37
37
|
*/
|
|
38
38
|
this.textureNode = textureNode;
|
|
39
39
|
|
|
40
|
-
/**
|
|
41
|
-
* The texture represents the pervious frame.
|
|
42
|
-
*
|
|
43
|
-
* @type {TextureNode}
|
|
44
|
-
*/
|
|
45
|
-
this.textureNodeOld = texture( null );
|
|
46
|
-
|
|
47
40
|
/**
|
|
48
41
|
* How quickly the after-image fades. A higher value means the after-image
|
|
49
42
|
* persists longer, while a lower value means it fades faster. Should be in
|
|
50
43
|
* the range `[0, 1]`.
|
|
51
44
|
*
|
|
52
|
-
* @type {
|
|
45
|
+
* @type {Node<float>}
|
|
53
46
|
*/
|
|
54
|
-
this.damp =
|
|
47
|
+
this.damp = damp;
|
|
55
48
|
|
|
56
49
|
/**
|
|
57
50
|
* The render target used for compositing the effect.
|
|
@@ -79,6 +72,14 @@ class AfterImageNode extends TempNode {
|
|
|
79
72
|
*/
|
|
80
73
|
this._textureNode = passTexture( this, this._compRT.texture );
|
|
81
74
|
|
|
75
|
+
/**
|
|
76
|
+
* The texture represents the pervious frame.
|
|
77
|
+
*
|
|
78
|
+
* @private
|
|
79
|
+
* @type {TextureNode}
|
|
80
|
+
*/
|
|
81
|
+
this._textureNodeOld = texture( this._oldRT.texture );
|
|
82
|
+
|
|
82
83
|
/**
|
|
83
84
|
* The `updateBeforeType` is set to `NodeUpdateType.FRAME` since the node renders
|
|
84
85
|
* its effect once per frame in `updateBefore()`.
|
|
@@ -139,17 +140,20 @@ class AfterImageNode extends TempNode {
|
|
|
139
140
|
|
|
140
141
|
this.setSize( _size.x, _size.y );
|
|
141
142
|
|
|
142
|
-
|
|
143
|
+
// make sure texture nodes point to correct render targets
|
|
144
|
+
|
|
145
|
+
this._textureNode.value = this._compRT.texture;
|
|
146
|
+
this._textureNodeOld.value = this._oldRT.texture;
|
|
143
147
|
|
|
144
|
-
|
|
148
|
+
// composite
|
|
145
149
|
|
|
146
|
-
|
|
147
|
-
|
|
150
|
+
_quadMesh.material = this._materialComposed;
|
|
151
|
+
_quadMesh.name = 'AfterImage';
|
|
148
152
|
|
|
149
153
|
renderer.setRenderTarget( this._compRT );
|
|
150
|
-
|
|
154
|
+
_quadMesh.render( renderer );
|
|
151
155
|
|
|
152
|
-
//
|
|
156
|
+
// swap
|
|
153
157
|
|
|
154
158
|
const temp = this._oldRT;
|
|
155
159
|
this._oldRT = this._compRT;
|
|
@@ -157,8 +161,6 @@ class AfterImageNode extends TempNode {
|
|
|
157
161
|
|
|
158
162
|
//
|
|
159
163
|
|
|
160
|
-
textureNode.value = currentTexture;
|
|
161
|
-
|
|
162
164
|
RendererUtils.restoreRendererState( renderer, _rendererState );
|
|
163
165
|
|
|
164
166
|
}
|
|
@@ -172,7 +174,7 @@ class AfterImageNode extends TempNode {
|
|
|
172
174
|
setup( builder ) {
|
|
173
175
|
|
|
174
176
|
const textureNode = this.textureNode;
|
|
175
|
-
const textureNodeOld = this.
|
|
177
|
+
const textureNodeOld = this._textureNodeOld;
|
|
176
178
|
|
|
177
179
|
//
|
|
178
180
|
|
|
@@ -234,9 +236,9 @@ class AfterImageNode extends TempNode {
|
|
|
234
236
|
* @tsl
|
|
235
237
|
* @function
|
|
236
238
|
* @param {Node<vec4>} node - The node that represents the input of the effect.
|
|
237
|
-
* @param {number} [damp=0.96] - The damping intensity. A higher value means a stronger after image effect.
|
|
239
|
+
* @param {(Node<float>|number)} [damp=0.96] - The damping intensity. A higher value means a stronger after image effect.
|
|
238
240
|
* @returns {AfterImageNode}
|
|
239
241
|
*/
|
|
240
|
-
export const afterImage = ( node, damp ) => nodeObject( new AfterImageNode( convertToTexture( node ), damp ) );
|
|
242
|
+
export const afterImage = ( node, damp ) => nodeObject( new AfterImageNode( convertToTexture( node ), nodeObject( damp ) ) );
|
|
241
243
|
|
|
242
244
|
export default AfterImageNode;
|
|
@@ -69,7 +69,7 @@ class AnamorphicNode extends TempNode {
|
|
|
69
69
|
/**
|
|
70
70
|
* The resolution scale.
|
|
71
71
|
*
|
|
72
|
-
* @type {
|
|
72
|
+
* @type {number}
|
|
73
73
|
*/
|
|
74
74
|
this.resolutionScale = 1;
|
|
75
75
|
|
|
@@ -158,6 +158,7 @@ class AnamorphicNode extends TempNode {
|
|
|
158
158
|
const currentTexture = textureNode.value;
|
|
159
159
|
|
|
160
160
|
_quadMesh.material = this._material;
|
|
161
|
+
_quadMesh.name = 'Anamorphic';
|
|
161
162
|
|
|
162
163
|
this.setSize( map.image.width, map.image.height );
|
|
163
164
|
|
|
@@ -300,6 +300,7 @@ class BloomNode extends TempNode {
|
|
|
300
300
|
|
|
301
301
|
renderer.setRenderTarget( this._renderTargetBright );
|
|
302
302
|
_quadMesh.material = this._highPassFilterMaterial;
|
|
303
|
+
_quadMesh.name = 'Bloom [ High Pass ]';
|
|
303
304
|
_quadMesh.render( renderer );
|
|
304
305
|
|
|
305
306
|
// 2. Blur all the mips progressively
|
|
@@ -313,11 +314,13 @@ class BloomNode extends TempNode {
|
|
|
313
314
|
this._separableBlurMaterials[ i ].colorTexture.value = inputRenderTarget.texture;
|
|
314
315
|
this._separableBlurMaterials[ i ].direction.value = _BlurDirectionX;
|
|
315
316
|
renderer.setRenderTarget( this._renderTargetsHorizontal[ i ] );
|
|
317
|
+
_quadMesh.name = `Bloom [ Blur Horizontal - ${ i } ]`;
|
|
316
318
|
_quadMesh.render( renderer );
|
|
317
319
|
|
|
318
320
|
this._separableBlurMaterials[ i ].colorTexture.value = this._renderTargetsHorizontal[ i ].texture;
|
|
319
321
|
this._separableBlurMaterials[ i ].direction.value = _BlurDirectionY;
|
|
320
322
|
renderer.setRenderTarget( this._renderTargetsVertical[ i ] );
|
|
323
|
+
_quadMesh.name = `Bloom [ Blur Vertical - ${ i } ]`;
|
|
321
324
|
_quadMesh.render( renderer );
|
|
322
325
|
|
|
323
326
|
inputRenderTarget = this._renderTargetsVertical[ i ];
|
|
@@ -328,6 +331,7 @@ class BloomNode extends TempNode {
|
|
|
328
331
|
|
|
329
332
|
renderer.setRenderTarget( this._renderTargetsHorizontal[ 0 ] );
|
|
330
333
|
_quadMesh.material = this._compositeMaterial;
|
|
334
|
+
_quadMesh.name = 'Bloom [ Composite ]';
|
|
331
335
|
_quadMesh.render( renderer );
|
|
332
336
|
|
|
333
337
|
// restore
|
|
@@ -259,6 +259,7 @@ export default DenoiseNode;
|
|
|
259
259
|
/**
|
|
260
260
|
* Generates denoise samples based on the given parameters.
|
|
261
261
|
*
|
|
262
|
+
* @private
|
|
262
263
|
* @param {number} numSamples - The number of samples.
|
|
263
264
|
* @param {number} numRings - The number of rings.
|
|
264
265
|
* @param {number} radiusExponent - The radius exponent.
|
|
@@ -283,6 +284,7 @@ function generateDenoiseSamples( numSamples, numRings, radiusExponent ) {
|
|
|
283
284
|
/**
|
|
284
285
|
* Generates a default noise texture for the given size.
|
|
285
286
|
*
|
|
287
|
+
* @private
|
|
286
288
|
* @param {number} [size=64] - The texture size.
|
|
287
289
|
* @return {DataTexture} The generated noise texture.
|
|
288
290
|
*/
|
|
@@ -285,6 +285,7 @@ class DepthOfFieldNode extends TempNode {
|
|
|
285
285
|
|
|
286
286
|
_quadMesh.material = this._CoCMaterial;
|
|
287
287
|
renderer.setRenderTarget( this._CoCRT );
|
|
288
|
+
_quadMesh.name = 'DoF [ CoC ]';
|
|
288
289
|
_quadMesh.render( renderer );
|
|
289
290
|
|
|
290
291
|
// blur near field to avoid visible aliased edges when the near field
|
|
@@ -294,6 +295,7 @@ class DepthOfFieldNode extends TempNode {
|
|
|
294
295
|
|
|
295
296
|
_quadMesh.material = this._CoCBlurredMaterial;
|
|
296
297
|
renderer.setRenderTarget( this._CoCBlurredRT );
|
|
298
|
+
_quadMesh.name = 'DoF [ CoC Blur ]';
|
|
297
299
|
_quadMesh.render( renderer );
|
|
298
300
|
|
|
299
301
|
// blur64 near
|
|
@@ -302,12 +304,14 @@ class DepthOfFieldNode extends TempNode {
|
|
|
302
304
|
|
|
303
305
|
_quadMesh.material = this._blur64Material;
|
|
304
306
|
renderer.setRenderTarget( this._blur64RT );
|
|
307
|
+
_quadMesh.name = 'DoF [ Blur64 Near ]';
|
|
305
308
|
_quadMesh.render( renderer );
|
|
306
309
|
|
|
307
310
|
// blur16 near
|
|
308
311
|
|
|
309
312
|
_quadMesh.material = this._blur16Material;
|
|
310
313
|
renderer.setRenderTarget( this._blur16NearRT );
|
|
314
|
+
_quadMesh.name = 'DoF [ Blur16 Near ]';
|
|
311
315
|
_quadMesh.render( renderer );
|
|
312
316
|
|
|
313
317
|
// blur64 far
|
|
@@ -316,18 +320,21 @@ class DepthOfFieldNode extends TempNode {
|
|
|
316
320
|
|
|
317
321
|
_quadMesh.material = this._blur64Material;
|
|
318
322
|
renderer.setRenderTarget( this._blur64RT );
|
|
323
|
+
_quadMesh.name = 'DoF [ Blur64 Far ]';
|
|
319
324
|
_quadMesh.render( renderer );
|
|
320
325
|
|
|
321
326
|
// blur16 far
|
|
322
327
|
|
|
323
328
|
_quadMesh.material = this._blur16Material;
|
|
324
329
|
renderer.setRenderTarget( this._blur16FarRT );
|
|
330
|
+
_quadMesh.name = 'DoF [ Blur16 Far ]';
|
|
325
331
|
_quadMesh.render( renderer );
|
|
326
332
|
|
|
327
333
|
// composite
|
|
328
334
|
|
|
329
335
|
_quadMesh.material = this._compositeMaterial;
|
|
330
336
|
renderer.setRenderTarget( this._compositeRT );
|
|
337
|
+
_quadMesh.name = 'DoF [ Composite ]';
|
|
331
338
|
_quadMesh.render( renderer );
|
|
332
339
|
|
|
333
340
|
// restore
|