@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
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InspectorBase is the base class for all inspectors.
|
|
3
|
+
*
|
|
4
|
+
* @class InspectorBase
|
|
5
|
+
*/
|
|
6
|
+
class InspectorBase {
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new InspectorBase.
|
|
10
|
+
*/
|
|
11
|
+
constructor() {
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The renderer associated with this inspector.
|
|
15
|
+
*
|
|
16
|
+
* @type {WebGLRenderer}
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
this._renderer = null;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The current frame being processed.
|
|
23
|
+
*
|
|
24
|
+
* @type {Object}
|
|
25
|
+
*/
|
|
26
|
+
this.currentFrame = null;
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Returns the node frame for the current renderer.
|
|
32
|
+
*
|
|
33
|
+
* @return {Object} The node frame.
|
|
34
|
+
*/
|
|
35
|
+
get nodeFrame() {
|
|
36
|
+
|
|
37
|
+
return this._renderer._nodes.nodeFrame;
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Sets the renderer for this inspector.
|
|
43
|
+
*
|
|
44
|
+
* @param {WebGLRenderer} renderer - The renderer to associate with this inspector.
|
|
45
|
+
* @return {InspectorBase} This inspector instance.
|
|
46
|
+
*/
|
|
47
|
+
setRenderer( renderer ) {
|
|
48
|
+
|
|
49
|
+
this._renderer = renderer;
|
|
50
|
+
|
|
51
|
+
return this;
|
|
52
|
+
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Returns the renderer associated with this inspector.
|
|
57
|
+
*
|
|
58
|
+
* @return {WebGLRenderer} The associated renderer.
|
|
59
|
+
*/
|
|
60
|
+
getRenderer() {
|
|
61
|
+
|
|
62
|
+
return this._renderer;
|
|
63
|
+
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Initializes the inspector.
|
|
68
|
+
*/
|
|
69
|
+
init() { }
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Called when a frame begins.
|
|
73
|
+
*/
|
|
74
|
+
begin() { }
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Called when a frame ends.
|
|
78
|
+
*/
|
|
79
|
+
finish() { }
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Inspects a node.
|
|
83
|
+
*
|
|
84
|
+
* @param {Node} node - The node to inspect.
|
|
85
|
+
*/
|
|
86
|
+
inspect( /*node*/ ) { }
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* When a compute operation is performed.
|
|
90
|
+
*
|
|
91
|
+
* @param {ComputeNode} computeNode - The compute node being executed.
|
|
92
|
+
* @param {number|Array<number>} dispatchSizeOrCount - The dispatch size or count.
|
|
93
|
+
*/
|
|
94
|
+
computeAsync( /*computeNode, dispatchSizeOrCount*/ ) { }
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Called when a compute operation begins.
|
|
98
|
+
*
|
|
99
|
+
* @param {string} uid - A unique identifier for the render context.
|
|
100
|
+
* @param {ComputeNode} computeNode - The compute node being executed.
|
|
101
|
+
*/
|
|
102
|
+
beginCompute( /*uid, computeNode*/ ) { }
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Called when a compute operation ends.
|
|
106
|
+
*
|
|
107
|
+
* @param {string} uid - A unique identifier for the render context.
|
|
108
|
+
* @param {ComputeNode} computeNode - The compute node being executed.
|
|
109
|
+
*/
|
|
110
|
+
finishCompute( /*uid*/ ) { }
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Called when a render operation begins.
|
|
114
|
+
*
|
|
115
|
+
* @param {string} uid - A unique identifier for the render context.
|
|
116
|
+
* @param {Scene} scene - The scene being rendered.
|
|
117
|
+
* @param {Camera} camera - The camera being used for rendering.
|
|
118
|
+
* @param {?WebGLRenderTarget} renderTarget - The render target, if any.
|
|
119
|
+
*/
|
|
120
|
+
beginRender( /*uid, scene, camera, renderTarget*/ ) { }
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Called when an animation loop ends.
|
|
124
|
+
*
|
|
125
|
+
* @param {string} uid - A unique identifier for the render context.
|
|
126
|
+
*/
|
|
127
|
+
finishRender( /*uid*/ ) { }
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Called when a texture copy operation is performed.
|
|
131
|
+
*
|
|
132
|
+
* @param {Texture} srcTexture - The source texture.
|
|
133
|
+
* @param {Texture} dstTexture - The destination texture.
|
|
134
|
+
*/
|
|
135
|
+
copyTextureToTexture( /*srcTexture, dstTexture*/ ) { }
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Called when a framebuffer copy operation is performed.
|
|
139
|
+
*
|
|
140
|
+
* @param {Texture} framebufferTexture - The texture associated with the framebuffer.
|
|
141
|
+
*/
|
|
142
|
+
copyFramebufferToTexture( /*framebufferTexture*/ ) { }
|
|
143
|
+
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export default InspectorBase;
|
|
@@ -3,6 +3,7 @@ import { ColorManagement } from '../../math/ColorManagement.js';
|
|
|
3
3
|
import { vec4, renderOutput } from '../../nodes/TSL.js';
|
|
4
4
|
import { NoToneMapping } from '../../constants.js';
|
|
5
5
|
import QuadMesh from '../../renderers/common/QuadMesh.js';
|
|
6
|
+
import { warnOnce } from '../../utils.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* This module is responsible to manage the post processing setups in apps.
|
|
@@ -82,6 +83,7 @@ class PostProcessing {
|
|
|
82
83
|
* @type {QuadMesh}
|
|
83
84
|
*/
|
|
84
85
|
this._quadMesh = new QuadMesh( material );
|
|
86
|
+
this._quadMesh.name = 'Post-Processing';
|
|
85
87
|
|
|
86
88
|
/**
|
|
87
89
|
* The context of the post processing stack.
|
|
@@ -206,37 +208,16 @@ class PostProcessing {
|
|
|
206
208
|
* its animation loop (not the one from the renderer).
|
|
207
209
|
*
|
|
208
210
|
* @async
|
|
211
|
+
* @deprecated
|
|
209
212
|
* @return {Promise} A Promise that resolves when the render has been finished.
|
|
210
213
|
*/
|
|
211
214
|
async renderAsync() {
|
|
212
215
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
if ( this._context.onBeforePostProcessing !== null ) this._context.onBeforePostProcessing();
|
|
216
|
-
|
|
217
|
-
const renderer = this.renderer;
|
|
218
|
-
|
|
219
|
-
const toneMapping = renderer.toneMapping;
|
|
220
|
-
const outputColorSpace = renderer.outputColorSpace;
|
|
221
|
-
|
|
222
|
-
renderer.toneMapping = NoToneMapping;
|
|
223
|
-
renderer.outputColorSpace = ColorManagement.workingColorSpace;
|
|
224
|
-
|
|
225
|
-
//
|
|
226
|
-
|
|
227
|
-
const currentXR = renderer.xr.enabled;
|
|
228
|
-
renderer.xr.enabled = false;
|
|
229
|
-
|
|
230
|
-
await this._quadMesh.renderAsync( renderer );
|
|
231
|
-
|
|
232
|
-
renderer.xr.enabled = currentXR;
|
|
233
|
-
|
|
234
|
-
//
|
|
216
|
+
warnOnce( 'PostProcessing: "renderAsync()" has been deprecated. Use "render()" and "await renderer.init();" when creating the renderer.' ); // @deprecated r181
|
|
235
217
|
|
|
236
|
-
renderer.
|
|
237
|
-
renderer.outputColorSpace = outputColorSpace;
|
|
218
|
+
await this.renderer.init();
|
|
238
219
|
|
|
239
|
-
|
|
220
|
+
this.render();
|
|
240
221
|
|
|
241
222
|
}
|
|
242
223
|
|
|
@@ -2,6 +2,7 @@ import { BufferGeometry } from '../../core/BufferGeometry.js';
|
|
|
2
2
|
import { Float32BufferAttribute } from '../../core/BufferAttribute.js';
|
|
3
3
|
import { Mesh } from '../../objects/Mesh.js';
|
|
4
4
|
import { OrthographicCamera } from '../../cameras/OrthographicCamera.js';
|
|
5
|
+
import { warnOnce } from '../../utils.js';
|
|
5
6
|
|
|
6
7
|
const _camera = /*@__PURE__*/ new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 );
|
|
7
8
|
|
|
@@ -81,12 +82,17 @@ class QuadMesh extends Mesh {
|
|
|
81
82
|
* Async version of `render()`.
|
|
82
83
|
*
|
|
83
84
|
* @async
|
|
85
|
+
* @deprecated
|
|
84
86
|
* @param {Renderer} renderer - The renderer.
|
|
85
87
|
* @return {Promise} A Promise that resolves when the render has been finished.
|
|
86
88
|
*/
|
|
87
89
|
async renderAsync( renderer ) {
|
|
88
90
|
|
|
89
|
-
|
|
91
|
+
warnOnce( 'QuadMesh: "renderAsync()" has been deprecated. Use "render()" and "await renderer.init();" when creating the renderer.' ); // @deprecated r181
|
|
92
|
+
|
|
93
|
+
await renderer.init();
|
|
94
|
+
|
|
95
|
+
renderer.render( this, _camera );
|
|
90
96
|
|
|
91
97
|
}
|
|
92
98
|
|
|
@@ -72,7 +72,7 @@ function reversePainterSortStable( a, b ) {
|
|
|
72
72
|
*/
|
|
73
73
|
function needsDoublePass( material ) {
|
|
74
74
|
|
|
75
|
-
const hasTransmission = material.transmission > 0 || material.transmissionNode;
|
|
75
|
+
const hasTransmission = material.transmission > 0 || ( material.transmissionNode && material.transmissionNode.isNode );
|
|
76
76
|
|
|
77
77
|
return hasTransmission && material.side === DoubleSide && material.forceSinglePass === false;
|
|
78
78
|
|
|
@@ -283,7 +283,9 @@ class RenderList {
|
|
|
283
283
|
|
|
284
284
|
if ( object.occlusionTest === true ) this.occlusionQueryCount ++;
|
|
285
285
|
|
|
286
|
-
if ( material.transparent === true || material.transmission > 0
|
|
286
|
+
if ( material.transparent === true || material.transmission > 0 ||
|
|
287
|
+
( material.transmissionNode && material.transmissionNode.isNode ) ||
|
|
288
|
+
( material.backdropNode && material.backdropNode.isNode ) ) {
|
|
287
289
|
|
|
288
290
|
if ( needsDoublePass( material ) ) this.transparentDoublePass.push( renderItem );
|
|
289
291
|
|
|
@@ -313,7 +315,9 @@ class RenderList {
|
|
|
313
315
|
|
|
314
316
|
const renderItem = this.getNextRenderItem( object, geometry, material, groupOrder, z, group, clippingContext );
|
|
315
317
|
|
|
316
|
-
if ( material.transparent === true || material.transmission > 0
|
|
318
|
+
if ( material.transparent === true || material.transmission > 0 ||
|
|
319
|
+
( material.transmissionNode && material.transmissionNode.isNode ) ||
|
|
320
|
+
( material.backdropNode && material.backdropNode.isNode ) ) {
|
|
317
321
|
|
|
318
322
|
if ( needsDoublePass( material ) ) this.transparentDoublePass.unshift( renderItem );
|
|
319
323
|
|
|
@@ -770,7 +770,7 @@ class RenderObject {
|
|
|
770
770
|
|
|
771
771
|
}
|
|
772
772
|
|
|
773
|
-
if ( object.isInstancedMesh || object.count > 1 ) {
|
|
773
|
+
if ( object.isInstancedMesh || object.count > 1 || Array.isArray( object.morphTargetInfluences ) ) {
|
|
774
774
|
|
|
775
775
|
// TODO: https://github.com/mrdoob/three.js/pull/29066#issuecomment-2269400850
|
|
776
776
|
|
|
@@ -869,6 +869,8 @@ class RenderObject {
|
|
|
869
869
|
|
|
870
870
|
}
|
|
871
871
|
|
|
872
|
+
cacheKey = hash( cacheKey, this.camera.id );
|
|
873
|
+
|
|
872
874
|
return cacheKey;
|
|
873
875
|
|
|
874
876
|
}
|
|
@@ -185,7 +185,7 @@ class RenderObjects {
|
|
|
185
185
|
renderObject.onDispose = () => {
|
|
186
186
|
|
|
187
187
|
this.pipelines.delete( renderObject );
|
|
188
|
-
this.bindings.
|
|
188
|
+
this.bindings.deleteForRender( renderObject );
|
|
189
189
|
this.nodes.delete( renderObject );
|
|
190
190
|
|
|
191
191
|
chainMap.delete( renderObject.getChainArray() );
|