three-stdlib 2.22.0 → 2.22.2
Sign up to get free protection for your applications and to get access to all the features.
- package/_polyfill/CompressedArrayTexture.cjs.js +1 -0
- package/_polyfill/CompressedArrayTexture.js +13 -0
- package/_polyfill/Data3DTexture.cjs.js +1 -0
- package/_polyfill/Data3DTexture.js +23 -0
- package/index.cjs.js +1 -1
- package/interactive/HTMLMesh.cjs.js +1 -1
- package/interactive/HTMLMesh.js +3 -2
- package/lights/LightProbeGenerator.cjs.js +1 -1
- package/lights/LightProbeGenerator.js +19 -20
- package/loaders/3MFLoader.cjs.js +1 -1
- package/loaders/3MFLoader.js +3 -2
- package/loaders/EXRLoader.cjs.js +1 -1
- package/loaders/EXRLoader.js +4 -4
- package/loaders/FBXLoader.cjs.js +1 -1
- package/loaders/FBXLoader.js +5 -5
- package/loaders/GLTFLoader.cjs.js +1 -1
- package/loaders/GLTFLoader.js +7 -6
- package/loaders/HDRCubeTextureLoader.cjs.js +1 -1
- package/loaders/HDRCubeTextureLoader.js +3 -8
- package/loaders/KTX2Loader.cjs.js +1 -1
- package/loaders/KTX2Loader.js +12 -16
- package/loaders/LUT3dlLoader.cjs.js +1 -1
- package/loaders/LUT3dlLoader.js +2 -1
- package/loaders/LUTCubeLoader.cjs.js +1 -1
- package/loaders/LUTCubeLoader.js +2 -1
- package/loaders/NodeMaterialLoader.cjs.js +1 -1
- package/loaders/RGBELoader.cjs.js +1 -1
- package/loaders/RGBELoader.js +3 -2
- package/loaders/VOXLoader.cjs.js +1 -1
- package/loaders/VOXLoader.js +2 -1
- package/misc/MD2Character.cjs.js +1 -1
- package/misc/MD2Character.js +2 -2
- package/misc/MD2CharacterComplex.cjs.js +1 -1
- package/misc/MD2CharacterComplex.js +2 -2
- package/nodes/Nodes.cjs.js +1 -1
- package/nodes/core/NodeBuilder.cjs.js +1 -1
- package/nodes/core/NodeBuilder.js +4 -4
- package/nodes/display/ColorSpaceNode.cjs.js +1 -1
- package/nodes/display/ColorSpaceNode.js +2 -3
- package/nodes/loaders/NodeLoader.cjs.js +1 -1
- package/nodes/loaders/NodeObjectLoader.cjs.js +1 -1
- package/objects/Reflector.cjs.js +1 -1
- package/objects/Reflector.js +1 -1
- package/objects/ReflectorForSSRPass.cjs.js +1 -1
- package/objects/ReflectorForSSRPass.js +1 -1
- package/objects/Refractor.cjs.js +1 -1
- package/objects/Refractor.js +1 -1
- package/objects/Water2.cjs.js +1 -1
- package/objects/Water2.js +2 -2
- package/package.json +1 -1
- package/postprocessing/SSRPass.cjs.js +1 -1
- package/postprocessing/SSRPass.js +8 -1
- package/renderers/webgpu/WebGPUTextures.cjs.js +1 -1
- package/renderers/webgpu/WebGPUTextures.js +6 -6
- /package/{Nodes-9aa16d74.js → Nodes-8d3adda1.js} +0 -0
- /package/{Nodes-4f766d71.js → Nodes-b3c0e6fc.js} +0 -0
package/misc/MD2Character.cjs.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("../loaders/MD2Loader.cjs.js");exports.MD2Character=function(){var i=this;function s(t,i){var s=new e.TextureLoader,a=[];for(let n=0;n<i.length;n++)a[n]=s.load(t+i[n],o),a[n].mapping=e.UVMapping,a[n].name=i[n],a[n].encoding=
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("../loaders/MD2Loader.cjs.js");exports.MD2Character=function(){var i=this;function s(t,i){var s=new e.TextureLoader,a=[];for(let n=0;n<i.length;n++)a[n]=s.load(t+i[n],o),a[n].mapping=e.UVMapping,a[n].name=i[n],"colorSpace"in a[n]?a[n].colorSpace="srgb":a[n].encoding=3001;return a}function a(t,i){var s=new e.MeshLambertMaterial({color:16755200,wireframe:!0,morphTargets:!0,morphNormals:!0}),a=new e.MeshLambertMaterial({color:16777215,wireframe:!1,map:i,morphTargets:!0,morphNormals:!0}),o=new e.Mesh(t,a);return o.rotation.y=-Math.PI/2,o.castShadow=!0,o.receiveShadow=!0,o.materialTexture=a,o.materialWireframe=s,o}function o(){i.loadCounter-=1,0===i.loadCounter&&i.onLoadComplete()}this.scale=1,this.animationFPS=6,this.root=new e.Object3D,this.meshBody=null,this.meshWeapon=null,this.skinsBody=[],this.skinsWeapon=[],this.weapons=[],this.activeAnimation=null,this.mixer=null,this.onLoadComplete=function(){},this.loadCounter=0,this.loadParts=function(n){this.loadCounter=2*n.weapons.length+n.skins.length+1;var r=[];for(let e=0;e<n.weapons.length;e++)r[e]=n.weapons[e][1];this.skinsBody=s(n.baseUrl+"skins/",n.skins),this.skinsWeapon=s(n.baseUrl+"skins/",r);var h=new t.MD2Loader;h.load(n.baseUrl+n.body,(function(t){var s=new e.Box3;s.setFromBufferAttribute(t.attributes.position),i.root.position.y=-i.scale*s.min.y;var n=a(t,i.skinsBody[0]);n.scale.set(i.scale,i.scale,i.scale),i.root.add(n),i.meshBody=n,i.meshBody.clipOffset=0,i.activeAnimationClipName=n.geometry.animations[0].name,i.mixer=new e.AnimationMixer(n),o()}));var m=function(e,t){return function(s){var n=a(s,i.skinsWeapon[e]);n.scale.set(i.scale,i.scale,i.scale),n.visible=!1,n.name=t,i.root.add(n),i.weapons[e]=n,i.meshWeapon=n,o()}};for(let e=0;e<n.weapons.length;e++)h.load(n.baseUrl+n.weapons[e][0],m(e,n.weapons[e][0]))},this.setPlaybackRate=function(e){this.mixer.timeScale=0!==e?1/e:0},this.setWireframe=function(e){e?(this.meshBody&&(this.meshBody.material=this.meshBody.materialWireframe),this.meshWeapon&&(this.meshWeapon.material=this.meshWeapon.materialWireframe)):(this.meshBody&&(this.meshBody.material=this.meshBody.materialTexture),this.meshWeapon&&(this.meshWeapon.material=this.meshWeapon.materialTexture))},this.setSkin=function(e){this.meshBody&&!1===this.meshBody.material.wireframe&&(this.meshBody.material.map=this.skinsBody[e])},this.setWeapon=function(e){for(let e=0;e<this.weapons.length;e++)this.weapons[e].visible=!1;var t=this.weapons[e];t&&(t.visible=!0,this.meshWeapon=t,i.syncWeaponAnimation())},this.setAnimation=function(e){if(this.meshBody){this.meshBody.activeAction&&(this.meshBody.activeAction.stop(),this.meshBody.activeAction=null);var t=this.mixer.clipAction(e,this.meshBody);t&&(this.meshBody.activeAction=t.play())}i.activeClipName=e,i.syncWeaponAnimation()},this.syncWeaponAnimation=function(){var e=i.activeClipName;if(i.meshWeapon){this.meshWeapon.activeAction&&(this.meshWeapon.activeAction.stop(),this.meshWeapon.activeAction=null);var t=this.mixer.clipAction(e,this.meshWeapon);t&&(this.meshWeapon.activeAction=t.syncWith(this.meshBody.activeAction).play())}},this.update=function(e){this.mixer&&this.mixer.update(e)}};
|
package/misc/MD2Character.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Object3D, Box3, AnimationMixer, TextureLoader, UVMapping,
|
1
|
+
import { Object3D, Box3, AnimationMixer, TextureLoader, UVMapping, MeshLambertMaterial, Mesh } from 'three';
|
2
2
|
import { MD2Loader } from '../loaders/MD2Loader.js';
|
3
3
|
|
4
4
|
var MD2Character = function () {
|
@@ -144,7 +144,7 @@ var MD2Character = function () {
|
|
144
144
|
textures[i] = textureLoader.load(baseUrl + textureUrls[i], checkLoadingComplete);
|
145
145
|
textures[i].mapping = UVMapping;
|
146
146
|
textures[i].name = textureUrls[i];
|
147
|
-
textures[i].encoding = sRGBEncoding
|
147
|
+
if ('colorSpace' in textures[i]) textures[i].colorSpace = 'srgb';else textures[i].encoding = 3001; // sRGBEncoding
|
148
148
|
}
|
149
149
|
|
150
150
|
return textures;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("../loaders/MD2Loader.cjs.js"),i=require("./MorphBlendMesh.cjs.js");exports.MD2CharacterComplex=function(){var s=this;function a(t,i){var s=new e.TextureLoader,a=[];for(let o=0;o<i.length;o++)a[o]=s.load(t+i[o],h),a[o].mapping=e.UVMapping,a[o].name=i[o],a[o].encoding=
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("../loaders/MD2Loader.cjs.js"),i=require("./MorphBlendMesh.cjs.js");exports.MD2CharacterComplex=function(){var s=this;function a(t,i){var s=new e.TextureLoader,a=[];for(let o=0;o<i.length;o++)a[o]=s.load(t+i[o],h),a[o].mapping=e.UVMapping,a[o].name=i[o],"colorSpace"in a[o]?a[o].colorSpace="srgb":a[o].encoding=3001;return a}function o(t,a){var o=new e.MeshLambertMaterial({color:16755200,wireframe:!0,morphTargets:!0,morphNormals:!0}),h=new e.MeshLambertMaterial({color:16777215,wireframe:!1,map:a,morphTargets:!0,morphNormals:!0}),n=new i.MorphBlendMesh(t,h);return n.rotation.y=-Math.PI/2,n.materialTexture=h,n.materialWireframe=o,n.autoCreateAnimations(s.animationFPS),n}function h(){s.loadCounter-=1,0===s.loadCounter&&s.onLoadComplete()}function n(e){return 1===e?1:1-Math.pow(2,-10*e)}this.scale=1,this.animationFPS=6,this.transitionFrames=15,this.maxSpeed=275,this.maxReverseSpeed=-275,this.frontAcceleration=600,this.backAcceleration=600,this.frontDecceleration=600,this.angularSpeed=2.5,this.root=new e.Object3D,this.meshBody=null,this.meshWeapon=null,this.controls=null,this.skinsBody=[],this.skinsWeapon=[],this.weapons=[],this.currentSkin=void 0,this.onLoadComplete=function(){},this.meshes=[],this.animations={},this.loadCounter=0,this.speed=0,this.bodyOrientation=0,this.walkSpeed=this.maxSpeed,this.crouchSpeed=.5*this.maxSpeed,this.activeAnimation=null,this.oldAnimation=null,this.enableShadows=function(e){for(let t=0;t<this.meshes.length;t++)this.meshes[t].castShadow=e,this.meshes[t].receiveShadow=e},this.setVisible=function(e){for(let t=0;t<this.meshes.length;t++)this.meshes[t].visible=e,this.meshes[t].visible=e},this.shareParts=function(e){this.animations=e.animations,this.walkSpeed=e.walkSpeed,this.crouchSpeed=e.crouchSpeed,this.skinsBody=e.skinsBody,this.skinsWeapon=e.skinsWeapon;var t=o(e.meshBody.geometry,this.skinsBody[0]);t.scale.set(this.scale,this.scale,this.scale),this.root.position.y=e.root.position.y,this.root.add(t),this.meshBody=t,this.meshes.push(t);for(let t=0;t<e.weapons.length;t++){var i=o(e.weapons[t].geometry,this.skinsWeapon[t]);i.scale.set(this.scale,this.scale,this.scale),i.visible=!1,i.name=e.weapons[t].name,this.root.add(i),this.weapons[t]=i,this.meshWeapon=i,this.meshes.push(i)}},this.loadParts=function(i){this.animations=i.animations,this.walkSpeed=i.walkSpeed,this.crouchSpeed=i.crouchSpeed,this.loadCounter=2*i.weapons.length+i.skins.length+1;var n=[];for(let e=0;e<i.weapons.length;e++)n[e]=i.weapons[e][1];this.skinsBody=a(i.baseUrl+"skins/",i.skins),this.skinsWeapon=a(i.baseUrl+"skins/",n);var r=new t.MD2Loader;r.load(i.baseUrl+i.body,(function(t){var i=new e.Box3;i.setFromBufferAttribute(t.attributes.position),s.root.position.y=-s.scale*i.min.y;var a=o(t,s.skinsBody[0]);a.scale.set(s.scale,s.scale,s.scale),s.root.add(a),s.meshBody=a,s.meshes.push(a),h()}));var m=function(e,t){return function(i){var a=o(i,s.skinsWeapon[e]);a.scale.set(s.scale,s.scale,s.scale),a.visible=!1,a.name=t,s.root.add(a),s.weapons[e]=a,s.meshWeapon=a,s.meshes.push(a),h()}};for(let e=0;e<i.weapons.length;e++)r.load(i.baseUrl+i.weapons[e][0],m(e,i.weapons[e][0]))},this.setPlaybackRate=function(e){this.meshBody&&(this.meshBody.duration=this.meshBody.baseDuration/e),this.meshWeapon&&(this.meshWeapon.duration=this.meshWeapon.baseDuration/e)},this.setWireframe=function(e){e?(this.meshBody&&(this.meshBody.material=this.meshBody.materialWireframe),this.meshWeapon&&(this.meshWeapon.material=this.meshWeapon.materialWireframe)):(this.meshBody&&(this.meshBody.material=this.meshBody.materialTexture),this.meshWeapon&&(this.meshWeapon.material=this.meshWeapon.materialTexture))},this.setSkin=function(e){this.meshBody&&!1===this.meshBody.material.wireframe&&(this.meshBody.material.map=this.skinsBody[e],this.currentSkin=e)},this.setWeapon=function(e){for(let e=0;e<this.weapons.length;e++)this.weapons[e].visible=!1;var t=this.weapons[e];t&&(t.visible=!0,this.meshWeapon=t,this.activeAnimation&&(t.playAnimation(this.activeAnimation),this.meshWeapon.setAnimationTime(this.activeAnimation,this.meshBody.getAnimationTime(this.activeAnimation))))},this.setAnimation=function(e){e!==this.activeAnimation&&e&&(this.meshBody&&(this.meshBody.setAnimationWeight(e,0),this.meshBody.playAnimation(e),this.oldAnimation=this.activeAnimation,this.activeAnimation=e,this.blendCounter=this.transitionFrames),this.meshWeapon&&(this.meshWeapon.setAnimationWeight(e,0),this.meshWeapon.playAnimation(e)))},this.update=function(e){this.controls&&this.updateMovementModel(e),this.animations&&(this.updateBehaviors(),this.updateAnimations(e))},this.updateAnimations=function(e){var t=1;this.blendCounter>0&&(t=(this.transitionFrames-this.blendCounter)/this.transitionFrames,this.blendCounter-=1),this.meshBody&&(this.meshBody.update(e),this.meshBody.setAnimationWeight(this.activeAnimation,t),this.meshBody.setAnimationWeight(this.oldAnimation,1-t)),this.meshWeapon&&(this.meshWeapon.update(e),this.meshWeapon.setAnimationWeight(this.activeAnimation,t),this.meshWeapon.setAnimationWeight(this.oldAnimation,1-t))},this.updateBehaviors=function(){var e,t,i=this.controls,s=this.animations;i.crouch?(e=s.crouchMove,t=s.crouchIdle):(e=s.move,t=s.idle),i.jump&&(e=s.jump,t=s.jump),i.attack&&(i.crouch?(e=s.crouchAttack,t=s.crouchAttack):(e=s.attack,t=s.attack)),(i.moveForward||i.moveBackward||i.moveLeft||i.moveRight)&&this.activeAnimation!==e&&this.setAnimation(e),Math.abs(this.speed)<.2*this.maxSpeed&&!(i.moveLeft||i.moveRight||i.moveForward||i.moveBackward)&&this.activeAnimation!==t&&this.setAnimation(t),i.moveForward&&(this.meshBody&&(this.meshBody.setAnimationDirectionForward(this.activeAnimation),this.meshBody.setAnimationDirectionForward(this.oldAnimation)),this.meshWeapon&&(this.meshWeapon.setAnimationDirectionForward(this.activeAnimation),this.meshWeapon.setAnimationDirectionForward(this.oldAnimation))),i.moveBackward&&(this.meshBody&&(this.meshBody.setAnimationDirectionBackward(this.activeAnimation),this.meshBody.setAnimationDirectionBackward(this.oldAnimation)),this.meshWeapon&&(this.meshWeapon.setAnimationDirectionBackward(this.activeAnimation),this.meshWeapon.setAnimationDirectionBackward(this.oldAnimation)))},this.updateMovementModel=function(t){var i=this.controls;i.crouch?this.maxSpeed=this.crouchSpeed:this.maxSpeed=this.walkSpeed,this.maxReverseSpeed=-this.maxSpeed,i.moveForward&&(this.speed=e.MathUtils.clamp(this.speed+t*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),i.moveBackward&&(this.speed=e.MathUtils.clamp(this.speed-t*this.backAcceleration,this.maxReverseSpeed,this.maxSpeed));if(i.moveLeft&&(this.bodyOrientation+=t*this.angularSpeed,this.speed=e.MathUtils.clamp(this.speed+1*t*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),i.moveRight&&(this.bodyOrientation-=t*this.angularSpeed,this.speed=e.MathUtils.clamp(this.speed+1*t*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),!i.moveForward&&!i.moveBackward)if(this.speed>0){var s=n(this.speed/this.maxSpeed);this.speed=e.MathUtils.clamp(this.speed-s*t*this.frontDecceleration,0,this.maxSpeed)}else{s=n(this.speed/this.maxReverseSpeed);this.speed=e.MathUtils.clamp(this.speed+s*t*this.backAcceleration,this.maxReverseSpeed,0)}var a=this.speed*t;this.root.position.x+=Math.sin(this.bodyOrientation)*a,this.root.position.z+=Math.cos(this.bodyOrientation)*a,this.root.rotation.y=this.bodyOrientation}};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Object3D, Box3, MathUtils, TextureLoader, UVMapping,
|
1
|
+
import { Object3D, Box3, MathUtils, TextureLoader, UVMapping, MeshLambertMaterial } from 'three';
|
2
2
|
import { MD2Loader } from '../loaders/MD2Loader.js';
|
3
3
|
import { MorphBlendMesh } from './MorphBlendMesh.js';
|
4
4
|
|
@@ -335,7 +335,7 @@ var MD2CharacterComplex = function () {
|
|
335
335
|
textures[i] = textureLoader.load(baseUrl + textureUrls[i], checkLoadingComplete);
|
336
336
|
textures[i].mapping = UVMapping;
|
337
337
|
textures[i].name = textureUrls[i];
|
338
|
-
textures[i].encoding = sRGBEncoding
|
338
|
+
if ('colorSpace' in textures[i]) textures[i].colorSpace = 'srgb';else textures[i].encoding = 3001; // sRGBEncoding
|
339
339
|
}
|
340
340
|
|
341
341
|
return textures;
|
package/nodes/Nodes.cjs.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./core/ArrayUniformNode.cjs.js"),r=require("./core/AttributeNode.cjs.js"),o=require("./core/BypassNode.cjs.js"),s=require("./core/CodeNode.cjs.js"),t=require("./core/ConstNode.cjs.js"),i=require("./core/ContextNode.cjs.js"),p=require("./core/ExpressionNode.cjs.js"),a=require("./core/FunctionCallNode.cjs.js"),d=require("./core/FunctionNode.cjs.js"),c=require("./core/Node.cjs.js"),x=require("./core/NodeAttribute.cjs.js"),n=require("./core/NodeBuilder.cjs.js"),N=require("./core/NodeCode.cjs.js"),u=require("./core/NodeFrame.cjs.js"),j=require("./core/NodeFunctionInput.cjs.js"),l=require("./core/NodeKeywords.cjs.js"),m=require("./core/NodeUniform.cjs.js"),q=require("./core/NodeVar.cjs.js"),h=require("./core/NodeVary.cjs.js"),f=require("./core/PropertyNode.cjs.js"),g=require("./core/TempNode.cjs.js"),b=require("./core/UniformNode.cjs.js"),v=require("./core/VarNode.cjs.js"),M=require("./core/VaryNode.cjs.js"),y=require("./accessors/BufferNode.cjs.js"),C=require("./accessors/CameraNode.cjs.js"),T=require("./accessors/CubeTextureNode.cjs.js"),V=require("./accessors/MaterialNode.cjs.js"),L=require("./accessors/MaterialReferenceNode.cjs.js"),S=require("./accessors/ModelNode.cjs.js"),F=require("./accessors/ModelViewProjectionNode.cjs.js"),w=require("./accessors/NormalNode.cjs.js"),P=require("./accessors/Object3DNode.cjs.js"),_=require("./accessors/PointUVNode.cjs.js"),D=require("./accessors/PositionNode.cjs.js"),U=require("./accessors/ReferenceNode.cjs.js"),R=require("./accessors/ReflectNode.cjs.js"),B=require("./accessors/SkinningNode.cjs.js"),O=require("./accessors/TextureNode.cjs.js"),G=require("./accessors/UVNode.cjs.js"),A=require("./display/ColorSpaceNode.cjs.js"),E=require("./display/NormalMapNode.cjs.js"),I=require("./math/MathNode.cjs.js"),X=require("./math/OperatorNode.cjs.js"),k=require("./math/CondNode.cjs.js"),W=require("./lights/LightContextNode.cjs.js"),z=require("./lights/LightNode.cjs.js"),J=require("./lights/LightsNode.cjs.js"),K=require("./utils/ArrayElementNode.cjs.js"),Y=require("./utils/ConvertNode.cjs.js"),H=require("./utils/JoinNode.cjs.js"),Q=require("./utils/SplitNode.cjs.js"),Z=require("./utils/SpriteSheetUVNode.cjs.js"),$=require("./utils/MatcapUVNode.cjs.js"),ee=require("./utils/OscNode.cjs.js"),re=require("./utils/TimerNode.cjs.js"),oe=require("../Nodes-
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./core/ArrayUniformNode.cjs.js"),r=require("./core/AttributeNode.cjs.js"),o=require("./core/BypassNode.cjs.js"),s=require("./core/CodeNode.cjs.js"),t=require("./core/ConstNode.cjs.js"),i=require("./core/ContextNode.cjs.js"),p=require("./core/ExpressionNode.cjs.js"),a=require("./core/FunctionCallNode.cjs.js"),d=require("./core/FunctionNode.cjs.js"),c=require("./core/Node.cjs.js"),x=require("./core/NodeAttribute.cjs.js"),n=require("./core/NodeBuilder.cjs.js"),N=require("./core/NodeCode.cjs.js"),u=require("./core/NodeFrame.cjs.js"),j=require("./core/NodeFunctionInput.cjs.js"),l=require("./core/NodeKeywords.cjs.js"),m=require("./core/NodeUniform.cjs.js"),q=require("./core/NodeVar.cjs.js"),h=require("./core/NodeVary.cjs.js"),f=require("./core/PropertyNode.cjs.js"),g=require("./core/TempNode.cjs.js"),b=require("./core/UniformNode.cjs.js"),v=require("./core/VarNode.cjs.js"),M=require("./core/VaryNode.cjs.js"),y=require("./accessors/BufferNode.cjs.js"),C=require("./accessors/CameraNode.cjs.js"),T=require("./accessors/CubeTextureNode.cjs.js"),V=require("./accessors/MaterialNode.cjs.js"),L=require("./accessors/MaterialReferenceNode.cjs.js"),S=require("./accessors/ModelNode.cjs.js"),F=require("./accessors/ModelViewProjectionNode.cjs.js"),w=require("./accessors/NormalNode.cjs.js"),P=require("./accessors/Object3DNode.cjs.js"),_=require("./accessors/PointUVNode.cjs.js"),D=require("./accessors/PositionNode.cjs.js"),U=require("./accessors/ReferenceNode.cjs.js"),R=require("./accessors/ReflectNode.cjs.js"),B=require("./accessors/SkinningNode.cjs.js"),O=require("./accessors/TextureNode.cjs.js"),G=require("./accessors/UVNode.cjs.js"),A=require("./display/ColorSpaceNode.cjs.js"),E=require("./display/NormalMapNode.cjs.js"),I=require("./math/MathNode.cjs.js"),X=require("./math/OperatorNode.cjs.js"),k=require("./math/CondNode.cjs.js"),W=require("./lights/LightContextNode.cjs.js"),z=require("./lights/LightNode.cjs.js"),J=require("./lights/LightsNode.cjs.js"),K=require("./utils/ArrayElementNode.cjs.js"),Y=require("./utils/ConvertNode.cjs.js"),H=require("./utils/JoinNode.cjs.js"),Q=require("./utils/SplitNode.cjs.js"),Z=require("./utils/SpriteSheetUVNode.cjs.js"),$=require("./utils/MatcapUVNode.cjs.js"),ee=require("./utils/OscNode.cjs.js"),re=require("./utils/TimerNode.cjs.js"),oe=require("../Nodes-8d3adda1.js"),se=require("./loaders/NodeMaterialLoader.cjs.js"),te=require("./procedural/CheckerNode.cjs.js"),ie=require("./fog/FogNode.cjs.js"),pe=require("./fog/FogRangeNode.cjs.js"),ae=require("./core/constants.cjs.js"),de=require("./functions/BSDFs.cjs.js"),ce=require("./ShaderNode.cjs.js"),xe=require("./materials/LineBasicNodeMaterial.cjs.js"),ne=require("./materials/MeshBasicNodeMaterial.cjs.js"),Ne=require("./materials/MeshStandardNodeMaterial.cjs.js"),ue=require("./materials/PointsNodeMaterial.cjs.js");require("./core/InputNode.cjs.js"),require("./core/NodeUtils.cjs.js"),require("three"),require("@babel/runtime/helpers/defineProperty"),require("./materials/NodeMaterial.cjs.js"),exports.ArrayUniformNode=e,exports.AttributeNode=r,exports.BypassNode=o,exports.CodeNode=s,exports.ConstNode=t,exports.ContextNode=i,exports.ExpressionNode=p,exports.FunctionCallNode=a,exports.FunctionNode=d,exports.Node=c,exports.NodeAttribute=x,exports.NodeBuilder=n.default,exports.NodeCode=N,exports.NodeFrame=u,exports.NodeFunctionInput=j,exports.NodeKeywords=l,exports.NodeUniform=m,exports.NodeVar=q,exports.NodeVary=h,exports.PropertyNode=f,exports.TempNode=g,exports.UniformNode=b,exports.VarNode=v,exports.VaryNode=M,exports.BufferNode=y,exports.CameraNode=C,exports.CubeTextureNode=T,exports.MaterialNode=V,exports.MaterialReferenceNode=L,exports.ModelNode=S,exports.ModelViewProjectionNode=F,exports.NormalNode=w,exports.Object3DNode=P,exports.PointUVNode=_,exports.PositionNode=D,exports.ReferenceNode=U,exports.ReflectNode=R,exports.SkinningNode=B,exports.TextureNode=O,exports.UVNode=G,exports.ColorSpaceNode=A.default,exports.NormalMapNode=E,exports.MathNode=I,exports.OperatorNode=X,exports.CondNode=k,exports.LightContextNode=W,exports.LightNode=z,exports.LightsNode=J,exports.ArrayElementNode=K,exports.ConvertNode=Y,exports.JoinNode=H,exports.SplitNode=Q,exports.SpriteSheetUVNode=Z,exports.MatcapUVNode=$,exports.OscNode=ee,exports.TimerNode=re,exports.NodeLoader=oe.NodeLoader,exports.NodeObjectLoader=oe.NodeObjectLoader,exports.fromType=oe.fromType,exports.NodeMaterialLoader=se,exports.CheckerNode=te,exports.FogNode=ie,exports.FogRangeNode=pe,exports.NodeShaderStage=ae.NodeShaderStage,exports.NodeType=ae.NodeType,exports.NodeUpdateType=ae.NodeUpdateType,exports.BRDF_GGX=de.BRDF_GGX,exports.BRDF_Lambert=de.BRDF_Lambert,exports.D_GGX=de.D_GGX,exports.F_Schlick=de.F_Schlick,exports.PhysicalLightingModel=de.PhysicalLightingModel,exports.RE_Direct_Physical=de.RE_Direct_Physical,exports.V_GGX_SmithCorrelated=de.V_GGX_SmithCorrelated,exports.getDistanceAttenuation=de.getDistanceAttenuation,exports.EPSILON=ce.EPSILON,exports.INFINITY=ce.INFINITY,exports.ShaderNode=ce.ShaderNode,exports.abs=ce.abs,exports.acos=ce.acos,exports.add=ce.add,exports.addTo=ce.addTo,exports.alphaTest=ce.alphaTest,exports.and=ce.and,exports.asin=ce.asin,exports.assign=ce.assign,exports.atan=ce.atan,exports.attribute=ce.attribute,exports.bitAnd=ce.bitAnd,exports.bitOr=ce.bitOr,exports.bitXor=ce.bitXor,exports.bmat3=ce.bmat3,exports.bmat4=ce.bmat4,exports.bool=ce.bool,exports.buffer=ce.buffer,exports.bvec2=ce.bvec2,exports.bvec3=ce.bvec3,exports.bvec4=ce.bvec4,exports.cameraPosition=ce.cameraPosition,exports.ceil=ce.ceil,exports.clamp=ce.clamp,exports.color=ce.color,exports.cond=ce.cond,exports.cos=ce.cos,exports.cross=ce.cross,exports.dFdx=ce.dFdx,exports.dFdy=ce.dFdy,exports.degrees=ce.degrees,exports.diffuseColor=ce.diffuseColor,exports.distance=ce.distance,exports.div=ce.div,exports.dot=ce.dot,exports.element=ce.element,exports.equal=ce.equal,exports.exp=ce.exp,exports.exp2=ce.exp2,exports.faceforward=ce.faceforward,exports.float=ce.float,exports.floor=ce.floor,exports.fract=ce.fract,exports.greaterThan=ce.greaterThan,exports.greaterThanEqual=ce.greaterThanEqual,exports.imat3=ce.imat3,exports.imat4=ce.imat4,exports.int=ce.int,exports.inversesqrt=ce.inversesqrt,exports.invert=ce.invert,exports.ivec2=ce.ivec2,exports.ivec3=ce.ivec3,exports.ivec4=ce.ivec4,exports.join=ce.join,exports.label=ce.label,exports.length=ce.length,exports.lessThan=ce.lessThan,exports.lessThanEqual=ce.lessThanEqual,exports.log=ce.log,exports.log2=ce.log2,exports.mat3=ce.mat3,exports.mat4=ce.mat4,exports.max=ce.max,exports.metalness=ce.metalness,exports.min=ce.min,exports.mix=ce.mix,exports.mod=ce.mod,exports.mul=ce.mul,exports.negate=ce.negate,exports.nodeObject=ce.nodeObject,exports.normalGeometry=ce.normalGeometry,exports.normalLocal=ce.normalLocal,exports.normalView=ce.normalView,exports.normalWorld=ce.normalWorld,exports.normalize=ce.normalize,exports.or=ce.or,exports.positionLocal=ce.positionLocal,exports.positionView=ce.positionView,exports.positionViewDirection=ce.positionViewDirection,exports.positionWorld=ce.positionWorld,exports.pow=ce.pow,exports.pow2=ce.pow2,exports.pow3=ce.pow3,exports.pow4=ce.pow4,exports.radians=ce.radians,exports.reflect=ce.reflect,exports.refract=ce.refract,exports.remainder=ce.remainder,exports.roughness=ce.roughness,exports.round=ce.round,exports.sampler=ce.sampler,exports.saturate=ce.saturate,exports.shiftLeft=ce.shiftLeft,exports.shiftRight=ce.shiftRight,exports.sign=ce.sign,exports.sin=ce.sin,exports.smoothstep=ce.smoothstep,exports.specularColor=ce.specularColor,exports.sqrt=ce.sqrt,exports.step=ce.step,exports.sub=ce.sub,exports.tan=ce.tan,exports.temp=ce.temp,exports.texture=ce.texture,exports.transformDirection=ce.transformDirection,exports.transformedNormalView=ce.transformedNormalView,exports.uint=ce.uint,exports.umat3=ce.umat3,exports.umat4=ce.umat4,exports.uniform=ce.uniform,exports.uv=ce.uv,exports.uvec2=ce.uvec2,exports.uvec3=ce.uvec3,exports.uvec4=ce.uvec4,exports.vec2=ce.vec2,exports.vec3=ce.vec3,exports.vec4=ce.vec4,exports.viewMatrix=ce.viewMatrix,exports.xor=ce.xor,exports.LineBasicNodeMaterial=xe,exports.MeshBasicNodeMaterial=ne,exports.MeshStandardNodeMaterial=Ne,exports.PointsNodeMaterial=ue;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./NodeUniform.cjs.js"),t=require("./NodeAttribute.cjs.js"),r=require("./NodeVary.cjs.js"),s=require("./NodeVar.cjs.js"),o=require("./NodeCode.cjs.js"),n=require("./NodeKeywords.cjs.js"),i=require("./constants.cjs.js"),a=require("three");const h=["fragment","vertex"],d=e=>(e=Number(e))+(e%1?"":".0");exports.default=class{constructor(e,t,r){this.object=e,this.material=e.material,this.renderer=t,this.parser=r,this.nodes=[],this.updateNodes=[],this.hashNodes={},this.vertexShader=null,this.fragmentShader=null,this.flowNodes={vertex:[],fragment:[]},this.flowCode={vertex:"",fragment:""},this.uniforms={vertex:[],fragment:[],index:0},this.codes={vertex:[],fragment:[]},this.attributes=[],this.varys=[],this.vars={vertex:[],fragment:[]},this.flow={code:""},this.stack=[],this.context={keywords:new n,material:e.material},this.nodesData=new WeakMap,this.flowsData=new WeakMap,this.shaderStage=null,this.node=null}addStack(e){this.stack.push(e)}removeStack(e){if(this.stack.pop()!==e)throw new Error("NodeBuilder: Invalid node stack!")}setHashNode(e,t){this.hashNodes[t]=e}addNode(e){if(-1===this.nodes.indexOf(e)){e.getUpdateType(this)!==i.NodeUpdateType.None&&this.updateNodes.push(e),this.nodes.push(e),this.setHashNode(e,e.getHash(this))}}getMethod(e){return e}getNodeFromHash(e){return this.hashNodes[e]}addFlow(e,t){return this.flowNodes[e].push(t),t}setContext(e){this.context=e}getContext(){return this.context}getTexture(){console.warn("Abstract function.")}getTextureBias(){console.warn("Abstract function.")}getCubeTexture(){console.warn("Abstract function.")}getCubeTextureBias(){console.warn("Abstract function.")}getConst(e,t){if("float"===e)return d(t);if("int"===e)return`${Math.round(t)}`;if("uint"===e)return t>=0?`${Math.round(t)}u`:"0u";if("bool"===e)return t?"true":"false";if("color"===e)return`${this.getType("vec3")}( ${d(t.r)}, ${d(t.g)}, ${d(t.b)} )`;const r=this.getTypeLength(e),s=this.getComponentType(e),o=e=>this.getConst(s,e);if(2===r)return`${this.getType(e)}( ${o(t.x)}, ${o(t.y)} )`;if(3===r)return`${this.getType(e)}( ${o(t.x)}, ${o(t.y)}, ${o(t.z)} )`;if(4===r)return`${this.getType(e)}( ${o(t.x)}, ${o(t.y)}, ${o(t.z)}, ${o(t.w)} )`;throw new Error(`NodeBuilder: Type '${e}' not found in generate constant attempt.`)}getType(e){return e}generateMethod(e){return e}getAttribute(e,r){const s=this.attributes;for(const t of s)if(t.name===e)return t;const o=new t(e,r);return s.push(o),o}getPropertyName(e){return e.name}isVector(e){return/vec\d/.test(e)}isMatrix(e){return/mat\d/.test(e)}isReference(e){return"void"===e||"property"===e||"sampler"===e}isShaderStage(e){return this.shaderStage===e}getTextureEncodingFromMap(e){let t;return t=e&&e.isTexture?e.encoding:e&&e.isWebGLRenderTarget?e.texture.encoding:
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./NodeUniform.cjs.js"),t=require("./NodeAttribute.cjs.js"),r=require("./NodeVary.cjs.js"),s=require("./NodeVar.cjs.js"),o=require("./NodeCode.cjs.js"),n=require("./NodeKeywords.cjs.js"),i=require("./constants.cjs.js"),a=require("three");const h=["fragment","vertex"],d=e=>(e=Number(e))+(e%1?"":".0");exports.default=class{constructor(e,t,r){this.object=e,this.material=e.material,this.renderer=t,this.parser=r,this.nodes=[],this.updateNodes=[],this.hashNodes={},this.vertexShader=null,this.fragmentShader=null,this.flowNodes={vertex:[],fragment:[]},this.flowCode={vertex:"",fragment:""},this.uniforms={vertex:[],fragment:[],index:0},this.codes={vertex:[],fragment:[]},this.attributes=[],this.varys=[],this.vars={vertex:[],fragment:[]},this.flow={code:""},this.stack=[],this.context={keywords:new n,material:e.material},this.nodesData=new WeakMap,this.flowsData=new WeakMap,this.shaderStage=null,this.node=null}addStack(e){this.stack.push(e)}removeStack(e){if(this.stack.pop()!==e)throw new Error("NodeBuilder: Invalid node stack!")}setHashNode(e,t){this.hashNodes[t]=e}addNode(e){if(-1===this.nodes.indexOf(e)){e.getUpdateType(this)!==i.NodeUpdateType.None&&this.updateNodes.push(e),this.nodes.push(e),this.setHashNode(e,e.getHash(this))}}getMethod(e){return e}getNodeFromHash(e){return this.hashNodes[e]}addFlow(e,t){return this.flowNodes[e].push(t),t}setContext(e){this.context=e}getContext(){return this.context}getTexture(){console.warn("Abstract function.")}getTextureBias(){console.warn("Abstract function.")}getCubeTexture(){console.warn("Abstract function.")}getCubeTextureBias(){console.warn("Abstract function.")}getConst(e,t){if("float"===e)return d(t);if("int"===e)return`${Math.round(t)}`;if("uint"===e)return t>=0?`${Math.round(t)}u`:"0u";if("bool"===e)return t?"true":"false";if("color"===e)return`${this.getType("vec3")}( ${d(t.r)}, ${d(t.g)}, ${d(t.b)} )`;const r=this.getTypeLength(e),s=this.getComponentType(e),o=e=>this.getConst(s,e);if(2===r)return`${this.getType(e)}( ${o(t.x)}, ${o(t.y)} )`;if(3===r)return`${this.getType(e)}( ${o(t.x)}, ${o(t.y)}, ${o(t.z)} )`;if(4===r)return`${this.getType(e)}( ${o(t.x)}, ${o(t.y)}, ${o(t.z)}, ${o(t.w)} )`;throw new Error(`NodeBuilder: Type '${e}' not found in generate constant attempt.`)}getType(e){return e}generateMethod(e){return e}getAttribute(e,r){const s=this.attributes;for(const t of s)if(t.name===e)return t;const o=new t(e,r);return s.push(o),o}getPropertyName(e){return e.name}isVector(e){return/vec\d/.test(e)}isMatrix(e){return/mat\d/.test(e)}isReference(e){return"void"===e||"property"===e||"sampler"===e}isShaderStage(e){return this.shaderStage===e}getTextureEncodingFromMap(e){let t;return t=e&&e.isTexture?"colorSpace"in e?"srgb"===e.colorSpace?3001:3e3:e.encoding:e&&e.isWebGLRenderTarget?"colorSpace"in e.texture?"srgb"===e.texture.colorSpace?3001:3e3:e.texture.encoding:3e3,t}getComponentType(e){e=this.getVectorType(e);const t=/(b|i|u|)(vec|mat)([2-4])/.exec(e);return null===t?null:"b"===t[1]?"bool":"i"===t[1]?"int":"u"===t[1]?"uint":"float"}getVectorType(e){return"color"===e?"vec3":"texture"===e?"vec4":e}getTypeFromLength(e){return 1===e?"float":2===e?"vec2":3===e?"vec3":4===e?"vec4":0}getTypeLength(e){const t=this.getVectorType(e),r=/vec([2-4])/.exec(t);return null!==r?Number(r[1]):"float"===t||"bool"===t||"int"===t||"uint"===t?1:0}getVectorFromMatrix(e){return e.replace("mat","vec")}getDataFromNode(e,t=this.shaderStage){let r=this.nodesData.get(e);return void 0===r&&(r={vertex:{},fragment:{}},this.nodesData.set(e,r)),null!==t?r[t]:r}getUniformFromNode(t,r,s){const o=this.getDataFromNode(t,r);let n=o.uniform;if(void 0===n){const i=this.uniforms.index++;n=new e("nodeUniform"+i,s,t),this.uniforms[r].push(n),o.uniform=n}return n}getVarFromNode(e,t,r=this.shaderStage){const o=this.getDataFromNode(e,r);let n=o.variable;if(void 0===n){const e=this.vars[r],i=e.length;n=new s("nodeVar"+i,t),e.push(n),o.variable=n}return n}getVaryFromNode(e,t){const s=this.getDataFromNode(e,null);let o=s.vary;if(void 0===o){const e=this.varys,n=e.length;o=new r("nodeVary"+n,t),e.push(o),s.vary=o}return o}getCodeFromNode(e,t,r=this.shaderStage){const s=this.getDataFromNode(e);let n=s.code;if(void 0===n){const e=this.codes[r],i=e.length;n=new o("nodeCode"+i,t),e.push(n),s.code=n}return n}addFlowCode(e){this.flow.code+=e}getFlowData(e,t){return this.flowsData.get(t)}flowNode(e){this.node=e;const t=e.getNodeType(this),r=this.flowChildNode(e,t);return this.flowsData.set(e,r),this.node=null,r}flowChildNode(e,t=null){const r=this.flow,s={code:""};return this.flow=s,s.result=e.build(this,t),this.flow=r,s}flowNodeFromShaderStage(e,t,r=null,s=null){const o=this.shaderStage;this.setShaderStage(e);const n=this.flowChildNode(t,r);return null!==s&&(n.code+=`${s} = ${n.result};\n\t`),this.flowCode[e]=this.flowCode[e]+n.code,this.setShaderStage(o),n}getAttributes(){console.warn("Abstract function.")}getVarys(){console.warn("Abstract function.")}getVars(e){let t="";const r=this.vars[e];for(let e=0;e<r.length;e++){const s=r[e];t+=`${s.type} ${s.name}; `}return t}getUniforms(){console.warn("Abstract function.")}getCodes(e){const t=this.codes[e];let r="";for(const e of t)r+=e.code+"\n";return r}getHash(){return this.vertexShader+this.fragmentShader}getShaderStage(){return this.shaderStage}setShaderStage(e){this.shaderStage=e}buildCode(){console.warn("Abstract function.")}build(){for(const e of h){this.setShaderStage(e);const t=this.flowNodes[e];for(const e of t)e.analyze(this)}this.context.vertex&&this.context.vertex.isNode&&this.flowNodeFromShaderStage("vertex",this.context.vertex);for(const e of h){this.setShaderStage(e);const t=this.flowNodes[e];for(const r of t)this.flowNode(r,e)}return this.setShaderStage(null),this.buildCode(),this}format(e,t,r){if((t=this.getVectorType(t))===(r=this.getVectorType(r))||null===r||this.isReference(r))return e;const s=this.getTypeLength(t),o=this.getTypeLength(r);if(0===s){const s=this.getVectorFromMatrix(t);return this.format(`( ${e} * ${this.getType(s)}( 1.0 ) )`,s,r)}return 0===o?e:s===o?`${this.getType(r)}( ${e} )`:s>o?this.format(`${e}.${"xyz".slice(0,o)}`,this.getTypeFromLength(o),r):4===o?`${this.getType(r)}( ${this.format(e,t,"vec3")}, 1.0 )`:2===s?`${this.getType(r)}( ${this.format(e,t,"vec2")}, 0.0 )`:`${this.getType(r)}( ${e} )`}getSignature(){return`// Three.js r${a.REVISION} - NodeMaterial System\n`}},exports.shaderStages=h,exports.vector=["x","y","z","w"];
|
@@ -5,7 +5,7 @@ import NodeVar from './NodeVar.js';
|
|
5
5
|
import NodeCode from './NodeCode.js';
|
6
6
|
import NodeKeywords from './NodeKeywords.js';
|
7
7
|
import { NodeUpdateType } from './constants.js';
|
8
|
-
import { REVISION
|
8
|
+
import { REVISION } from 'three';
|
9
9
|
|
10
10
|
const shaderStages = ['fragment', 'vertex'];
|
11
11
|
const vector = ['x', 'y', 'z', 'w'];
|
@@ -210,11 +210,11 @@ class NodeBuilder {
|
|
210
210
|
let encoding;
|
211
211
|
|
212
212
|
if (map && map.isTexture) {
|
213
|
-
encoding = map.encoding;
|
213
|
+
if ('colorSpace' in map) encoding = map.colorSpace === 'srgb' ? 3001 : 3000;else encoding = map.encoding;
|
214
214
|
} else if (map && map.isWebGLRenderTarget) {
|
215
|
-
encoding = map.texture.encoding;
|
215
|
+
if ('colorSpace' in map.texture) encoding = map.texture.colorSpace === 'srgb' ? 3001 : 3000;else encoding = map.texture.encoding;
|
216
216
|
} else {
|
217
|
-
encoding = LinearEncoding
|
217
|
+
encoding = 3000; // LinearEncoding
|
218
218
|
}
|
219
219
|
|
220
220
|
return encoding;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("../core/Node.cjs.js"),s=require("../ShaderNode.cjs.js")
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("../core/Node.cjs.js"),s=require("../ShaderNode.cjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../core/constants.cjs.js"),require("../core/NodeUtils.cjs.js"),require("three"),require("../core/PropertyNode.cjs.js"),require("../core/VarNode.cjs.js"),require("../core/AttributeNode.cjs.js"),require("../core/VaryNode.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/InputNode.cjs.js"),require("../core/UniformNode.cjs.js"),require("../accessors/BufferNode.cjs.js"),require("../accessors/PositionNode.cjs.js"),require("../accessors/ModelNode.cjs.js"),require("../accessors/Object3DNode.cjs.js"),require("../math/MathNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/ExpressionNode.cjs.js"),require("../utils/JoinNode.cjs.js"),require("../utils/SplitNode.cjs.js"),require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeAttribute.cjs.js"),require("../core/NodeVary.cjs.js"),require("../core/NodeVar.cjs.js"),require("../core/NodeCode.cjs.js"),require("../core/NodeKeywords.cjs.js"),require("../math/OperatorNode.cjs.js"),require("../accessors/NormalNode.cjs.js"),require("../accessors/CameraNode.cjs.js"),require("../accessors/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../math/CondNode.cjs.js"),require("../core/ContextNode.cjs.js"),require("../utils/ArrayElementNode.cjs.js"),require("../utils/ConvertNode.cjs.js");var c=o(e);const i=new s.ShaderNode((e=>e.value)),j=new s.ShaderNode((e=>{const{value:r}=e,o=r.rgb,c=s.sub(s.mul(s.pow(r.rgb,s.vec3(.41666)),1.055),s.vec3(.055)),i=s.mul(o,12.92),j=s.vec3(s.lessThanEqual(o,s.vec3(.0031308))),u=s.mix(c,i,j);return s.join(u.r,u.g,u.b,r.a)})),u={LinearToLinear:i,LinearTosRGB:j};class t extends r{constructor(e,r){super("vec4"),this.method=e,this.node=r}fromEncoding(e){let r=null;return 3e3===e?r="Linear":3001===e&&(r="sRGB"),this.method="LinearTo"+r,this}generate(e){const r=this.getNodeType(e),s=this.method,o=this.node;if(s!==t.LINEAR_TO_LINEAR){return(0,u[s])({value:o}).build(e,r)}return o.build(e,r)}}c.default(t,"LINEAR_TO_LINEAR","LinearToLinear"),c.default(t,"LINEAR_TO_SRGB","LinearTosRGB"),exports.LinearToLinear=i,exports.LinearTosRGB=j,exports.default=t;
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
2
2
|
import Node from '../core/Node.js';
|
3
3
|
import { ShaderNode, sub, mul, pow, vec3, lessThanEqual, mix, join } from '../ShaderNode.js';
|
4
|
-
import { LinearEncoding, sRGBEncoding } from 'three';
|
5
4
|
|
6
5
|
const LinearToLinear = new ShaderNode(inputs => {
|
7
6
|
return inputs.value;
|
@@ -32,9 +31,9 @@ class ColorSpaceNode extends Node {
|
|
32
31
|
fromEncoding(encoding) {
|
33
32
|
let method = null;
|
34
33
|
|
35
|
-
if (encoding ===
|
34
|
+
if (encoding === 3000) {
|
36
35
|
method = 'Linear';
|
37
|
-
} else if (encoding ===
|
36
|
+
} else if (encoding === 3001) {
|
38
37
|
method = 'sRGB';
|
39
38
|
}
|
40
39
|
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";var e=require("../../Nodes-
|
1
|
+
"use strict";var e=require("../../Nodes-8d3adda1.js");require("three"),require("../core/ArrayUniformNode.cjs.js"),require("../core/UniformNode.cjs.js"),require("../core/InputNode.cjs.js"),require("../core/Node.cjs.js"),require("../core/constants.cjs.js"),require("../core/NodeUtils.cjs.js"),require("../core/AttributeNode.cjs.js"),require("../core/VaryNode.cjs.js"),require("../core/BypassNode.cjs.js"),require("../core/CodeNode.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/ContextNode.cjs.js"),require("../core/ExpressionNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/FunctionCallNode.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/NodeAttribute.cjs.js"),require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeVary.cjs.js"),require("../core/NodeVar.cjs.js"),require("../core/NodeCode.cjs.js"),require("../core/NodeKeywords.cjs.js"),require("../core/NodeFrame.cjs.js"),require("../core/NodeFunctionInput.cjs.js"),require("../core/PropertyNode.cjs.js"),require("../core/VarNode.cjs.js"),require("../accessors/BufferNode.cjs.js"),require("../accessors/CameraNode.cjs.js"),require("@babel/runtime/helpers/defineProperty"),require("../accessors/Object3DNode.cjs.js"),require("../accessors/CubeTextureNode.cjs.js"),require("../accessors/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../accessors/ReflectNode.cjs.js"),require("../ShaderNode.cjs.js"),require("../accessors/PositionNode.cjs.js"),require("../accessors/ModelNode.cjs.js"),require("../math/MathNode.cjs.js"),require("../utils/JoinNode.cjs.js"),require("../utils/SplitNode.cjs.js"),require("../math/OperatorNode.cjs.js"),require("../accessors/NormalNode.cjs.js"),require("../math/CondNode.cjs.js"),require("../utils/ArrayElementNode.cjs.js"),require("../utils/ConvertNode.cjs.js"),require("../accessors/MaterialNode.cjs.js"),require("../accessors/MaterialReferenceNode.cjs.js"),require("../accessors/ReferenceNode.cjs.js"),require("../accessors/ModelViewProjectionNode.cjs.js"),require("../accessors/PointUVNode.cjs.js"),require("../accessors/SkinningNode.cjs.js"),require("../display/ColorSpaceNode.cjs.js"),require("../display/NormalMapNode.cjs.js"),require("../lights/LightContextNode.cjs.js"),require("../functions/BSDFs.cjs.js"),require("../lights/LightNode.cjs.js"),require("../lights/LightsNode.cjs.js"),require("../utils/SpriteSheetUVNode.cjs.js"),require("../utils/MatcapUVNode.cjs.js"),require("../utils/OscNode.cjs.js"),require("../utils/TimerNode.cjs.js"),require("./NodeMaterialLoader.cjs.js"),require("../procedural/CheckerNode.cjs.js"),require("../fog/FogNode.cjs.js"),require("../fog/FogRangeNode.cjs.js"),require("../materials/LineBasicNodeMaterial.cjs.js"),require("../materials/NodeMaterial.cjs.js"),require("../materials/MeshBasicNodeMaterial.cjs.js"),require("../materials/MeshStandardNodeMaterial.cjs.js"),require("../materials/PointsNodeMaterial.cjs.js"),module.exports=e.NodeLoader;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";var e=require("../../Nodes-
|
1
|
+
"use strict";var e=require("../../Nodes-8d3adda1.js");require("./NodeMaterialLoader.cjs.js"),require("three"),require("../core/ArrayUniformNode.cjs.js"),require("../core/UniformNode.cjs.js"),require("../core/InputNode.cjs.js"),require("../core/Node.cjs.js"),require("../core/constants.cjs.js"),require("../core/NodeUtils.cjs.js"),require("../core/AttributeNode.cjs.js"),require("../core/VaryNode.cjs.js"),require("../core/BypassNode.cjs.js"),require("../core/CodeNode.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/ContextNode.cjs.js"),require("../core/ExpressionNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/FunctionCallNode.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/NodeAttribute.cjs.js"),require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeVary.cjs.js"),require("../core/NodeVar.cjs.js"),require("../core/NodeCode.cjs.js"),require("../core/NodeKeywords.cjs.js"),require("../core/NodeFrame.cjs.js"),require("../core/NodeFunctionInput.cjs.js"),require("../core/PropertyNode.cjs.js"),require("../core/VarNode.cjs.js"),require("../accessors/BufferNode.cjs.js"),require("../accessors/CameraNode.cjs.js"),require("@babel/runtime/helpers/defineProperty"),require("../accessors/Object3DNode.cjs.js"),require("../accessors/CubeTextureNode.cjs.js"),require("../accessors/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../accessors/ReflectNode.cjs.js"),require("../ShaderNode.cjs.js"),require("../accessors/PositionNode.cjs.js"),require("../accessors/ModelNode.cjs.js"),require("../math/MathNode.cjs.js"),require("../utils/JoinNode.cjs.js"),require("../utils/SplitNode.cjs.js"),require("../math/OperatorNode.cjs.js"),require("../accessors/NormalNode.cjs.js"),require("../math/CondNode.cjs.js"),require("../utils/ArrayElementNode.cjs.js"),require("../utils/ConvertNode.cjs.js"),require("../accessors/MaterialNode.cjs.js"),require("../accessors/MaterialReferenceNode.cjs.js"),require("../accessors/ReferenceNode.cjs.js"),require("../accessors/ModelViewProjectionNode.cjs.js"),require("../accessors/PointUVNode.cjs.js"),require("../accessors/SkinningNode.cjs.js"),require("../display/ColorSpaceNode.cjs.js"),require("../display/NormalMapNode.cjs.js"),require("../lights/LightContextNode.cjs.js"),require("../functions/BSDFs.cjs.js"),require("../lights/LightNode.cjs.js"),require("../lights/LightsNode.cjs.js"),require("../utils/SpriteSheetUVNode.cjs.js"),require("../utils/MatcapUVNode.cjs.js"),require("../utils/OscNode.cjs.js"),require("../utils/TimerNode.cjs.js"),require("../procedural/CheckerNode.cjs.js"),require("../fog/FogNode.cjs.js"),require("../fog/FogRangeNode.cjs.js"),require("../materials/LineBasicNodeMaterial.cjs.js"),require("../materials/NodeMaterial.cjs.js"),require("../materials/MeshBasicNodeMaterial.cjs.js"),require("../materials/MeshStandardNodeMaterial.cjs.js"),require("../materials/PointsNodeMaterial.cjs.js"),module.exports=e.NodeObjectLoader;
|
package/objects/Reflector.cjs.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Mesh{constructor(r,n={}){super(r),this.type="Reflector";const
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Mesh{constructor(r,n={}){super(r),this.type="Reflector";const o=this,a=void 0!==n.color?new e.Color(n.color):new e.Color(8355711),l=n.textureWidth||512,i=n.textureHeight||512,s=n.clipBias||0,d=n.shader||t.ReflectorShader,c=new e.Plane,u=new e.Vector3,p=new e.Vector3,x=new e.Vector3,m=new e.Matrix4,v=new e.Vector3(0,0,-1),f=new e.Vector4,b=new e.Vector3,g=new e.Vector3,h=new e.Vector4,M=new e.Matrix4,y=new e.PerspectiveCamera,w=new e.WebGLRenderTarget(l,i),R=new e.ShaderMaterial({uniforms:e.UniformsUtils.clone(d.uniforms),fragmentShader:d.fragmentShader,vertexShader:d.vertexShader});R.uniforms.tDiffuse.value=w.texture,R.uniforms.color.value=a,R.uniforms.textureMatrix.value=M,this.material=R,this.onBeforeRender=function(e,t,r){if(p.setFromMatrixPosition(o.matrixWorld),x.setFromMatrixPosition(r.matrixWorld),m.extractRotation(o.matrixWorld),u.set(0,0,1),u.applyMatrix4(m),b.subVectors(p,x),b.dot(u)>0)return;b.reflect(u).negate(),b.add(p),m.extractRotation(r.matrixWorld),v.set(0,0,-1),v.applyMatrix4(m),v.add(x),g.subVectors(p,v),g.reflect(u).negate(),g.add(p),y.position.copy(b),y.up.set(0,1,0),y.up.applyMatrix4(m),y.up.reflect(u),y.lookAt(g),y.far=r.far,y.updateMatrixWorld(),y.projectionMatrix.copy(r.projectionMatrix),M.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),M.multiply(y.projectionMatrix),M.multiply(y.matrixWorldInverse),M.multiply(o.matrixWorld),c.setFromNormalAndCoplanarPoint(u,p),c.applyMatrix4(y.matrixWorldInverse),f.set(c.normal.x,c.normal.y,c.normal.z,c.constant);const n=y.projectionMatrix;h.x=(Math.sign(f.x)+n.elements[8])/n.elements[0],h.y=(Math.sign(f.y)+n.elements[9])/n.elements[5],h.z=-1,h.w=(1+n.elements[10])/n.elements[14],f.multiplyScalar(2/f.dot(h)),n.elements[2]=f.x,n.elements[6]=f.y,n.elements[10]=f.z+1-s,n.elements[14]=f.w,"colorSpace"in w.texture?w.texture.colorSpace=e.outputColorSpace:w.texture.encoding=e.outputEncoding,o.visible=!1;const a=e.getRenderTarget(),l=e.xr.enabled,i=e.shadowMap.autoUpdate;e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,e.setRenderTarget(w),e.state.buffers.depth.setMask(!0),!1===e.autoClear&&e.clear(),e.render(t,y),e.xr.enabled=l,e.shadowMap.autoUpdate=i,e.setRenderTarget(a);const d=r.viewport;void 0!==d&&e.state.viewport(d),o.visible=!0},this.getRenderTarget=function(){return w},this.dispose=function(){w.dispose(),o.material.dispose()}}}t.prototype.isReflector=!0,t.ReflectorShader={uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:"\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\t#include <common>\n\t\t#include <logdepthbuf_pars_vertex>\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t#include <logdepthbuf_vertex>\n\n\t\t}",fragmentShader:"\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\t\tvarying vec4 vUv;\n\n\t\t#include <logdepthbuf_pars_fragment>\n\n\t\tfloat blendOverlay( float base, float blend ) {\n\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\n\t\t}\n\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <logdepthbuf_fragment>\n\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\n\t\t}"},exports.Reflector=t;
|
package/objects/Reflector.js
CHANGED
@@ -84,7 +84,7 @@ class Reflector extends Mesh {
|
|
84
84
|
projectionMatrix.elements[10] = clipPlane.z + 1.0 - clipBias;
|
85
85
|
projectionMatrix.elements[14] = clipPlane.w; // Render
|
86
86
|
|
87
|
-
renderTarget.texture.encoding = renderer.outputEncoding;
|
87
|
+
if ('colorSpace' in renderTarget.texture) renderTarget.texture.colorSpace = renderer.outputColorSpace;else renderTarget.texture.encoding = renderer.outputEncoding;
|
88
88
|
scope.visible = false;
|
89
89
|
const currentRenderTarget = renderer.getRenderTarget();
|
90
90
|
const currentXrEnabled = renderer.xr.enabled;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");class e extends t.Mesh{constructor(r,a={}){super(r),this.type="ReflectorForSSRPass";const n=this,
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");class e extends t.Mesh{constructor(r,a={}){super(r),this.type="ReflectorForSSRPass";const n=this,o=void 0!==a.color?new t.Color(a.color):new t.Color(8355711),i=a.textureWidth||512,l=a.textureHeight||512,s=a.clipBias||0,u=a.shader||e.ReflectorShader,c=!0===a.useDepthTexture,d=new t.Vector3(0,1,0),v=new t.Vector3,f=new t.Vector3;n.needsUpdate=!1,n.maxDistance=e.ReflectorShader.uniforms.maxDistance.value,n.opacity=e.ReflectorShader.uniforms.opacity.value,n.color=o,n.resolution=a.resolution||new t.Vector2(window.innerWidth,window.innerHeight),n._distanceAttenuation=e.ReflectorShader.defines.DISTANCE_ATTENUATION,Object.defineProperty(n,"distanceAttenuation",{get:()=>n._distanceAttenuation,set(t){n._distanceAttenuation!==t&&(n._distanceAttenuation=t,n.material.defines.DISTANCE_ATTENUATION=t,n.material.needsUpdate=!0)}}),n._fresnel=e.ReflectorShader.defines.FRESNEL,Object.defineProperty(n,"fresnel",{get:()=>n._fresnel,set(t){n._fresnel!==t&&(n._fresnel=t,n.material.defines.FRESNEL=t,n.material.needsUpdate=!0)}});const p=new t.Vector3,m=new t.Vector3,x=new t.Vector3,h=new t.Matrix4,w=new t.Vector3(0,0,-1),g=new t.Vector3,M=new t.Vector3,b=new t.Matrix4,y=new t.PerspectiveCamera;let C;c&&(C=new t.DepthTexture,C.type=t.UnsignedShortType,C.minFilter=t.NearestFilter,C.magFilter=t.NearestFilter);const P={depthTexture:c?C:null},D=new t.WebGLRenderTarget(i,l,P),S=new t.ShaderMaterial({transparent:c,defines:Object.assign({},e.ReflectorShader.defines,{useDepthTexture:c}),uniforms:t.UniformsUtils.clone(u.uniforms),fragmentShader:u.fragmentShader,vertexShader:u.vertexShader});S.uniforms.tDiffuse.value=D.texture,S.uniforms.color.value=n.color,S.uniforms.textureMatrix.value=b,c&&(S.uniforms.tDepth.value=D.depthTexture),this.material=S;const T=[new t.Plane(new t.Vector3(0,1,0),s)];this.doRender=function(t,e,r){if(S.uniforms.maxDistance.value=n.maxDistance,S.uniforms.color.value=n.color,S.uniforms.opacity.value=n.opacity,v.copy(r.position).normalize(),f.copy(v).reflect(d),S.uniforms.fresnelCoe.value=(v.dot(f)+1)/2,m.setFromMatrixPosition(n.matrixWorld),x.setFromMatrixPosition(r.matrixWorld),h.extractRotation(n.matrixWorld),p.set(0,0,1),p.applyMatrix4(h),g.subVectors(m,x),g.dot(p)>0)return;g.reflect(p).negate(),g.add(m),h.extractRotation(r.matrixWorld),w.set(0,0,-1),w.applyMatrix4(h),w.add(x),M.subVectors(m,w),M.reflect(p).negate(),M.add(m),y.position.copy(g),y.up.set(0,1,0),y.up.applyMatrix4(h),y.up.reflect(p),y.lookAt(M),y.far=r.far,y.updateMatrixWorld(),y.projectionMatrix.copy(r.projectionMatrix),S.uniforms.virtualCameraNear.value=r.near,S.uniforms.virtualCameraFar.value=r.far,S.uniforms.virtualCameraMatrixWorld.value=y.matrixWorld,S.uniforms.virtualCameraProjectionMatrix.value=r.projectionMatrix,S.uniforms.virtualCameraProjectionMatrixInverse.value=r.projectionMatrixInverse,S.uniforms.resolution.value=n.resolution,b.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),b.multiply(y.projectionMatrix),b.multiply(y.matrixWorldInverse),b.multiply(n.matrixWorld),"colorSpace"in D.texture?D.texture.colorSpace=t.outputColorSpace:D.texture.encoding=t.outputEncoding;const a=t.getRenderTarget(),o=t.xr.enabled,i=t.shadowMap.autoUpdate,l=t.clippingPlanes;t.xr.enabled=!1,t.shadowMap.autoUpdate=!1,t.clippingPlanes=T,t.setRenderTarget(D),t.state.buffers.depth.setMask(!0),!1===t.autoClear&&t.clear(),t.render(e,y),t.xr.enabled=o,t.shadowMap.autoUpdate=i,t.clippingPlanes=l,t.setRenderTarget(a);const s=r.viewport;void 0!==s&&t.state.viewport(s)},this.getRenderTarget=function(){return D}}}e.prototype.isReflectorForSSRPass=!0,e.ReflectorShader={defines:{DISTANCE_ATTENUATION:!0,FRESNEL:!0},uniforms:{color:{value:null},tDiffuse:{value:null},tDepth:{value:null},textureMatrix:{value:new t.Matrix4},maxDistance:{value:180},opacity:{value:.5},fresnelCoe:{value:null},virtualCameraNear:{value:null},virtualCameraFar:{value:null},virtualCameraProjectionMatrix:{value:new t.Matrix4},virtualCameraMatrixWorld:{value:new t.Matrix4},virtualCameraProjectionMatrixInverse:{value:new t.Matrix4},resolution:{value:new t.Vector2}},vertexShader:"\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\t\tuniform float maxDistance;\n\t\tuniform float opacity;\n\t\tuniform float fresnelCoe;\n\t\tuniform float virtualCameraNear;\n\t\tuniform float virtualCameraFar;\n\t\tuniform mat4 virtualCameraProjectionMatrix;\n\t\tuniform mat4 virtualCameraProjectionMatrixInverse;\n\t\tuniform mat4 virtualCameraMatrixWorld;\n\t\tuniform vec2 resolution;\n\t\tvarying vec4 vUv;\n\t\t#include <packing>\n\t\tfloat blendOverlay( float base, float blend ) {\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\t\t}\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\treturn perspectiveDepthToViewZ( depth, virtualCameraNear, virtualCameraFar );\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( virtualCameraProjectionMatrixInverse * clipPosition ).xyz;//view\n\t\t}\n\t\tvoid main() {\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\t#ifdef useDepthTexture\n\t\t\t\tvec2 uv=(gl_FragCoord.xy-.5)/resolution.xy;\n\t\t\t\tuv.x=1.-uv.x;\n\t\t\t\tfloat depth = texture2DProj( tDepth, vUv ).r;\n\t\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\t\tfloat clipW = virtualCameraProjectionMatrix[2][3] * viewZ+virtualCameraProjectionMatrix[3][3];\n\t\t\t\tvec3 viewPosition=getViewPosition( uv, depth, clipW );\n\t\t\t\tvec3 worldPosition=(virtualCameraMatrixWorld*vec4(viewPosition,1)).xyz;\n\t\t\t\tif(worldPosition.y>maxDistance) discard;\n\t\t\t\tfloat op=opacity;\n\t\t\t\t#ifdef DISTANCE_ATTENUATION\n\t\t\t\t\tfloat ratio=1.-(worldPosition.y/maxDistance);\n\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t#endif\n\t\t\t\t#ifdef FRESNEL\n\t\t\t\t\top*=fresnelCoe;\n\t\t\t\t#endif\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), op );\n\t\t\t#else\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\t\t\t#endif\n\t\t}\n\t"},exports.ReflectorForSSRPass=e;
|
@@ -137,7 +137,7 @@ class ReflectorForSSRPass extends Mesh {
|
|
137
137
|
textureMatrix.multiply(virtualCamera.matrixWorldInverse);
|
138
138
|
textureMatrix.multiply(scope.matrixWorld); // Render
|
139
139
|
|
140
|
-
renderTarget.texture.encoding = renderer.outputEncoding; // scope.visible = false;
|
140
|
+
if ('colorSpace' in renderTarget.texture) renderTarget.texture.colorSpace = renderer.outputColorSpace;else renderTarget.texture.encoding = renderer.outputEncoding; // scope.visible = false;
|
141
141
|
|
142
142
|
const currentRenderTarget = renderer.getRenderTarget();
|
143
143
|
const currentXrEnabled = renderer.xr.enabled;
|
package/objects/Refractor.cjs.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Mesh{constructor(r,n={}){super(r),this.type="Refractor";const o=this,a=void 0!==n.color?new e.Color(n.color):new e.Color(8355711),i=n.textureWidth||512,l=n.textureHeight||512,s=n.clipBias||0,c=n.shader||t.RefractorShader,u=new e.PerspectiveCamera;u.matrixAutoUpdate=!1,u.userData.refractor=!0;const d=new e.Plane,m=new e.Matrix4,
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class t extends e.Mesh{constructor(r,n={}){super(r),this.type="Refractor";const o=this,a=void 0!==n.color?new e.Color(n.color):new e.Color(8355711),i=n.textureWidth||512,l=n.textureHeight||512,s=n.clipBias||0,c=n.shader||t.RefractorShader,u=new e.PerspectiveCamera;u.matrixAutoUpdate=!1,u.userData.refractor=!0;const d=new e.Plane,m=new e.Matrix4,x=new e.WebGLRenderTarget(i,l);this.material=new e.ShaderMaterial({uniforms:e.UniformsUtils.clone(c.uniforms),vertexShader:c.vertexShader,fragmentShader:c.fragmentShader,transparent:!0}),this.material.uniforms.color.value=a,this.material.uniforms.tDiffuse.value=x.texture,this.material.uniforms.textureMatrix.value=m;const p=function(){const t=new e.Vector3,r=new e.Vector3,n=new e.Matrix4,a=new e.Vector3,i=new e.Vector3;return function(e){return t.setFromMatrixPosition(o.matrixWorld),r.setFromMatrixPosition(e.matrixWorld),a.subVectors(t,r),n.extractRotation(o.matrixWorld),i.set(0,0,1),i.applyMatrix4(n),a.dot(i)<0}}(),v=function(){const t=new e.Vector3,r=new e.Vector3,n=new e.Quaternion,a=new e.Vector3;return function(){o.matrixWorld.decompose(r,n,a),t.set(0,0,1).applyQuaternion(n).normalize(),t.negate(),d.setFromNormalAndCoplanarPoint(t,r)}}(),f=function(){const t=new e.Plane,r=new e.Vector4,n=new e.Vector4;return function(e){u.matrixWorld.copy(e.matrixWorld),u.matrixWorldInverse.copy(u.matrixWorld).invert(),u.projectionMatrix.copy(e.projectionMatrix),u.far=e.far,t.copy(d),t.applyMatrix4(u.matrixWorldInverse),r.set(t.normal.x,t.normal.y,t.normal.z,t.constant);const o=u.projectionMatrix;n.x=(Math.sign(r.x)+o.elements[8])/o.elements[0],n.y=(Math.sign(r.y)+o.elements[9])/o.elements[5],n.z=-1,n.w=(1+o.elements[10])/o.elements[14],r.multiplyScalar(2/r.dot(n)),o.elements[2]=r.x,o.elements[6]=r.y,o.elements[10]=r.z+1-s,o.elements[14]=r.w}}();this.onBeforeRender=function(e,t,r){"colorSpace"in x.texture?x.texture.colorSpace=e.outputColorSpace:x.texture.encoding=e.outputEncoding,!0!==r.userData.refractor&&!0!=!p(r)&&(v(),function(e){m.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),m.multiply(e.projectionMatrix),m.multiply(e.matrixWorldInverse),m.multiply(o.matrixWorld)}(r),f(r),function(e,t,r){o.visible=!1;const n=e.getRenderTarget(),a=e.xr.enabled,i=e.shadowMap.autoUpdate;e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,e.setRenderTarget(x),!1===e.autoClear&&e.clear(),e.render(t,u),e.xr.enabled=a,e.shadowMap.autoUpdate=i,e.setRenderTarget(n);const l=r.viewport;void 0!==l&&e.state.viewport(l),o.visible=!0}(e,t,r))},this.getRenderTarget=function(){return x},this.dispose=function(){x.dispose(),o.material.dispose()}}}t.prototype.isRefractor=!0,t.RefractorShader={uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:"\n\n\t\tuniform mat4 textureMatrix;\n\n\t\tvarying vec4 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec4 vUv;\n\n\t\tfloat blendOverlay( float base, float blend ) {\n\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\n\t\t}\n\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\n\t\t}"},exports.Refractor=t;
|
package/objects/Refractor.js
CHANGED
@@ -137,7 +137,7 @@ class Refractor extends Mesh {
|
|
137
137
|
|
138
138
|
this.onBeforeRender = function (renderer, scene, camera) {
|
139
139
|
// Render
|
140
|
-
renderTarget.texture.encoding = renderer.outputEncoding; // ensure refractors are rendered only once per frame
|
140
|
+
if ('colorSpace' in renderTarget.texture) renderTarget.texture.colorSpace = renderer.outputColorSpace;else renderTarget.texture.encoding = renderer.outputEncoding; // ensure refractors are rendered only once per frame
|
141
141
|
|
142
142
|
if (camera.userData.refractor === true) return; // avoid rendering when the refractor is viewed from behind
|
143
143
|
|
package/objects/Water2.cjs.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three"),e=require("./Reflector.cjs.js"),r=require("./Refractor.cjs.js");class o extends t.Mesh{constructor(n,a={}){super(n),this.type="Water";const l=this,i=void 0!==a.color?new t.Color(a.color):new t.Color(16777215),f=a.textureWidth||512,c=a.textureHeight||512,u=a.clipBias||0,v=a.flowDirection||new t.Vector2(1,0),m=a.flowSpeed||.03,s=a.reflectivity||.02,p=a.scale||1,d=a.shader||o.WaterShader,x=void 0!==a.encoding?a.encoding:
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three"),e=require("./Reflector.cjs.js"),r=require("./Refractor.cjs.js");class o extends t.Mesh{constructor(n,a={}){super(n),this.type="Water";const l=this,i=void 0!==a.color?new t.Color(a.color):new t.Color(16777215),f=a.textureWidth||512,c=a.textureHeight||512,u=a.clipBias||0,v=a.flowDirection||new t.Vector2(1,0),m=a.flowSpeed||.03,s=a.reflectivity||.02,p=a.scale||1,d=a.shader||o.WaterShader,x=void 0!==a.encoding?a.encoding:3e3,g=new t.TextureLoader,h=a.flowMap||void 0,w=a.normalMap0||g.load("textures/water/Water_1_M_Normal.jpg"),y=a.normalMap1||g.load("textures/water/Water_2_M_Normal.jpg"),M=.15,_=.075,R=new t.Matrix4,C=new t.Clock;if(void 0===e.Reflector)return void console.error("THREE.Water: Required component Reflector not found.");if(void 0===r.Refractor)return void console.error("THREE.Water: Required component Refractor not found.");const W=new e.Reflector(n,{textureWidth:f,textureHeight:c,clipBias:u,encoding:x}),D=new r.Refractor(n,{textureWidth:f,textureHeight:c,clipBias:u,encoding:x});W.matrixAutoUpdate=!1,D.matrixAutoUpdate=!1,this.material=new t.ShaderMaterial({uniforms:t.UniformsUtils.merge([t.UniformsLib.fog,d.uniforms]),vertexShader:d.vertexShader,fragmentShader:d.fragmentShader,transparent:!0,fog:!0}),void 0!==h?(this.material.defines.USE_FLOWMAP="",this.material.uniforms.tFlowMap={type:"t",value:h}):this.material.uniforms.flowDirection={type:"v2",value:v},w.wrapS=w.wrapT=t.RepeatWrapping,y.wrapS=y.wrapT=t.RepeatWrapping,this.material.uniforms.tReflectionMap.value=W.getRenderTarget().texture,this.material.uniforms.tRefractionMap.value=D.getRenderTarget().texture,this.material.uniforms.tNormalMap0.value=w,this.material.uniforms.tNormalMap1.value=y,this.material.uniforms.color.value=i,this.material.uniforms.reflectivity.value=s,this.material.uniforms.textureMatrix.value=R,this.material.uniforms.config.value.x=0,this.material.uniforms.config.value.y=_,this.material.uniforms.config.value.z=_,this.material.uniforms.config.value.w=p,this.onBeforeRender=function(t,e,r){!function(t){R.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),R.multiply(t.projectionMatrix),R.multiply(t.matrixWorldInverse),R.multiply(l.matrixWorld)}(r),function(){const t=C.getDelta(),e=l.material.uniforms.config;e.value.x+=m*t,e.value.y=e.value.x+_,e.value.x>=M?(e.value.x=0,e.value.y=_):e.value.y>=M&&(e.value.y=e.value.y-M)}(),l.visible=!1,W.matrixWorld.copy(l.matrixWorld),D.matrixWorld.copy(l.matrixWorld),W.onBeforeRender(t,e,r),D.onBeforeRender(t,e,r),l.visible=!0}}}o.prototype.isWater=!0,o.WaterShader={uniforms:{color:{type:"c",value:null},reflectivity:{type:"f",value:0},tReflectionMap:{type:"t",value:null},tRefractionMap:{type:"t",value:null},tNormalMap0:{type:"t",value:null},tNormalMap1:{type:"t",value:null},textureMatrix:{type:"m4",value:null},config:{type:"v4",value:new t.Vector4}},vertexShader:"\n\n\t\t#include <common>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\n\t\tuniform mat4 textureMatrix;\n\n\t\tvarying vec4 vCoord;\n\t\tvarying vec2 vUv;\n\t\tvarying vec3 vToEye;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tvCoord = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\t\t\tvToEye = cameraPosition - worldPosition.xyz;\n\n\t\t\tvec4 mvPosition = viewMatrix * worldPosition; // used in fog_vertex\n\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}",fragmentShader:"\n\n\t\t#include <common>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\n\t\tuniform sampler2D tReflectionMap;\n\t\tuniform sampler2D tRefractionMap;\n\t\tuniform sampler2D tNormalMap0;\n\t\tuniform sampler2D tNormalMap1;\n\n\t\t#ifdef USE_FLOWMAP\n\t\t\tuniform sampler2D tFlowMap;\n\t\t#else\n\t\t\tuniform vec2 flowDirection;\n\t\t#endif\n\n\t\tuniform vec3 color;\n\t\tuniform float reflectivity;\n\t\tuniform vec4 config;\n\n\t\tvarying vec4 vCoord;\n\t\tvarying vec2 vUv;\n\t\tvarying vec3 vToEye;\n\n\t\tvoid main() {\n\n\t\t\t#include <logdepthbuf_fragment>\n\n\t\t\tfloat flowMapOffset0 = config.x;\n\t\t\tfloat flowMapOffset1 = config.y;\n\t\t\tfloat halfCycle = config.z;\n\t\t\tfloat scale = config.w;\n\n\t\t\tvec3 toEye = normalize( vToEye );\n\n\t\t\t// determine flow direction\n\t\t\tvec2 flow;\n\t\t\t#ifdef USE_FLOWMAP\n\t\t\t\tflow = texture2D( tFlowMap, vUv ).rg * 2.0 - 1.0;\n\t\t\t#else\n\t\t\t\tflow = flowDirection;\n\t\t\t#endif\n\t\t\tflow.x *= - 1.0;\n\n\t\t\t// sample normal maps (distort uvs with flowdata)\n\t\t\tvec4 normalColor0 = texture2D( tNormalMap0, ( vUv * scale ) + flow * flowMapOffset0 );\n\t\t\tvec4 normalColor1 = texture2D( tNormalMap1, ( vUv * scale ) + flow * flowMapOffset1 );\n\n\t\t\t// linear interpolate to get the final normal color\n\t\t\tfloat flowLerp = abs( halfCycle - flowMapOffset0 ) / halfCycle;\n\t\t\tvec4 normalColor = mix( normalColor0, normalColor1, flowLerp );\n\n\t\t\t// calculate normal vector\n\t\t\tvec3 normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n\n\t\t\t// calculate the fresnel term to blend reflection and refraction maps\n\t\t\tfloat theta = max( dot( toEye, normal ), 0.0 );\n\t\t\tfloat reflectance = reflectivity + ( 1.0 - reflectivity ) * pow( ( 1.0 - theta ), 5.0 );\n\n\t\t\t// calculate final uv coords\n\t\t\tvec3 coord = vCoord.xyz / vCoord.w;\n\t\t\tvec2 uv = coord.xy + coord.z * normal.xz * 0.05;\n\n\t\t\tvec4 reflectColor = texture2D( tReflectionMap, vec2( 1.0 - uv.x, uv.y ) );\n\t\t\tvec4 refractColor = texture2D( tRefractionMap, uv );\n\n\t\t\t// multiply water color with the mix of both textures\n\t\t\tgl_FragColor = vec4( color, 1.0 ) * mix( refractColor, reflectColor, reflectance );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <encodings_fragment>\n\t\t\t#include <fog_fragment>\n\n\t\t}"},exports.Water2=o;
|
package/objects/Water2.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Mesh, Color, Vector2,
|
1
|
+
import { Mesh, Color, Vector2, TextureLoader, Matrix4, Clock, ShaderMaterial, UniformsUtils, UniformsLib, RepeatWrapping, Vector4 } from 'three';
|
2
2
|
import { Reflector } from './Reflector.js';
|
3
3
|
import { Refractor } from './Refractor.js';
|
4
4
|
|
@@ -23,7 +23,7 @@ class Water2 extends Mesh {
|
|
23
23
|
const reflectivity = options.reflectivity || 0.02;
|
24
24
|
const scale = options.scale || 1;
|
25
25
|
const shader = options.shader || Water2.WaterShader;
|
26
|
-
const encoding = options.encoding !== undefined ? options.encoding :
|
26
|
+
const encoding = options.encoding !== undefined ? options.encoding : 3000;
|
27
27
|
const textureLoader = new TextureLoader();
|
28
28
|
const flowMap = options.flowMap || undefined;
|
29
29
|
const normalMap0 = options.normalMap0 || textureLoader.load('textures/water/Water_1_M_Normal.jpg');
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./Pass.cjs.js"),r=require("../shaders/SSRShader.cjs.js"),i=require("../shaders/CopyShader.cjs.js");require("@babel/runtime/helpers/defineProperty");var s=function({renderer:s,scene:a,camera:n,width:l,height:h,selects:o,encoding:d,isPerspectiveCamera:u=!0,isBouncing:c=!1,morphTargets:f=!1,groundReflector:g}){this.width=void 0!==l?l:512,this.height=void 0!==h?h:512,this.clear=!0,this.renderer=s,this.scene=a,this.camera=n,this.groundReflector=g,this.opacity=r.SSRShader.uniforms.opacity.value,this.output=0,this.maxDistance=r.SSRShader.uniforms.maxDistance.value,this.surfDist=r.SSRShader.uniforms.surfDist.value,this.encoding=d,this.tempColor=new e.Color,this._selects=o,this.isSelective=Array.isArray(this._selects),Object.defineProperty(this,"selects",{get(){return this._selects},set(e){this._selects!==e&&(this._selects=e,Array.isArray(e)?(this.isSelective=!0,this.ssrMaterial.defines.isSelective=!0,this.ssrMaterial.needsUpdate=!0):(this.isSelective=!1,this.ssrMaterial.defines.isSelective=!1,this.ssrMaterial.needsUpdate=!0))}}),this._isBouncing=c,Object.defineProperty(this,"isBouncing",{get(){return this._isBouncing},set(e){this._isBouncing!==e&&(this._isBouncing=e,this.ssrMaterial.uniforms.tDiffuse.value=e?this.prevRenderTarget.texture:this.beautyRenderTarget.texture)}}),this.isBlur=!0,this._isDistanceAttenuation=r.SSRShader.defines.isDistanceAttenuation,Object.defineProperty(this,"isDistanceAttenuation",{get(){return this._isDistanceAttenuation},set(e){this._isDistanceAttenuation!==e&&(this._isDistanceAttenuation=e,this.ssrMaterial.defines.isDistanceAttenuation=e,this.ssrMaterial.needsUpdate=!0)}}),this._isFresnel=r.SSRShader.defines.isFresnel,Object.defineProperty(this,"isFresnel",{get(){return this._isFresnel},set(e){this._isFresnel!==e&&(this._isFresnel=e,this.ssrMaterial.defines.isFresnel=e,this.ssrMaterial.needsUpdate=!0)}}),this._isInfiniteThick=r.SSRShader.defines.isInfiniteThick,Object.defineProperty(this,"isInfiniteThick",{get(){return this._isInfiniteThick},set(e){this._isInfiniteThick!==e&&(this._isInfiniteThick=e,this.ssrMaterial.defines.isInfiniteThick=e,this.ssrMaterial.needsUpdate=!0)}}),this.thickTolerance=r.SSRShader.uniforms.thickTolerance.value;var m=new e.DepthTexture;m.type=e.UnsignedShortType,m.minFilter=e.NearestFilter,m.maxFilter=e.NearestFilter,this.beautyRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat,depthTexture:m,depthBuffer:!0}),this.prevRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat}),this.normalRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.NearestFilter,magFilter:e.NearestFilter,format:e.RGBAFormat,type:e.HalfFloatType}),this.metalnessRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.NearestFilter,magFilter:e.NearestFilter,format:e.RGBAFormat}),this.ssrRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat}),this.blurRenderTarget=this.ssrRenderTarget.clone(),this.blurRenderTarget2=this.ssrRenderTarget.clone(),void 0===r.SSRShader&&console.error("THREE.SSRPass: The pass relies on SSRShader."),this.ssrMaterial=new e.ShaderMaterial({defines:Object.assign({MAX_STEP:Math.sqrt(window.innerWidth*window.innerWidth+window.innerHeight*window.innerHeight)},r.SSRShader.defines),uniforms:e.UniformsUtils.clone(r.SSRShader.uniforms),vertexShader:r.SSRShader.vertexShader,fragmentShader:r.SSRShader.fragmentShader,blending:e.NoBlending}),u||(this.ssrMaterial.defines.isPerspectiveCamera=u,this.ssrMaterial.needsUpdate=!0),this.ssrMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssrMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssrMaterial.defines.isSelective=this.isSelective,this.ssrMaterial.needsUpdate=!0,this.ssrMaterial.uniforms.tMetalness.value=this.metalnessRenderTarget.texture,this.ssrMaterial.uniforms.tDepth.value=this.beautyRenderTarget.depthTexture,this.ssrMaterial.uniforms.cameraNear.value=this.camera.near,this.ssrMaterial.uniforms.cameraFar.value=this.camera.far,this.ssrMaterial.uniforms.surfDist.value=this.surfDist,this.ssrMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssrMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssrMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new e.MeshNormalMaterial({morphTargets:f}),this.normalMaterial.blending=e.NoBlending,this.metalnessOnMaterial=new e.MeshBasicMaterial({color:"white"}),this.metalnessOffMaterial=new e.MeshBasicMaterial({color:"black"}),this.blurMaterial=new e.ShaderMaterial({defines:Object.assign({},r.SSRBlurShader.defines),uniforms:e.UniformsUtils.clone(r.SSRBlurShader.uniforms),vertexShader:r.SSRBlurShader.vertexShader,fragmentShader:r.SSRBlurShader.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.blurMaterial2=new e.ShaderMaterial({defines:Object.assign({},r.SSRBlurShader.defines),uniforms:e.UniformsUtils.clone(r.SSRBlurShader.uniforms),vertexShader:r.SSRBlurShader.vertexShader,fragmentShader:r.SSRBlurShader.fragmentShader}),this.blurMaterial2.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.blurMaterial2.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new e.ShaderMaterial({defines:Object.assign({},r.SSRDepthShader.defines),uniforms:e.UniformsUtils.clone(r.SSRDepthShader.uniforms),vertexShader:r.SSRDepthShader.vertexShader,fragmentShader:r.SSRDepthShader.fragmentShader,blending:e.NoBlending}),this.depthRenderMaterial.uniforms.tDepth.value=this.beautyRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new e.ShaderMaterial({uniforms:e.UniformsUtils.clone(i.CopyShader.uniforms),vertexShader:i.CopyShader.vertexShader,fragmentShader:i.CopyShader.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendEquation:e.AddEquation,blendSrcAlpha:e.SrcAlphaFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,blendEquationAlpha:e.AddEquation}),this.fsQuad=new t.FullScreenQuad(null),this.originalClearColor=new e.Color};s.prototype=Object.assign(Object.create(t.Pass.prototype),{constructor:s,dispose:function(){this.beautyRenderTarget.dispose(),this.prevRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.metalnessRenderTarget.dispose(),this.ssrRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.blurRenderTarget2.dispose(),this.normalMaterial.dispose(),this.metalnessOnMaterial.dispose(),this.metalnessOffMaterial.dispose(),this.blurMaterial.dispose(),this.blurMaterial2.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()},render:function(t,r){switch(this.encoding&&(this.beautyRenderTarget.texture.encoding=this.encoding),t.setRenderTarget(this.beautyRenderTarget),t.clear(),this.groundReflector&&(this.groundReflector.doRender(this.renderer,this.scene,this.camera),this.groundReflector.visible=!0),t.render(this.scene,this.camera),this.groundReflector&&(this.groundReflector.visible=!1),this.renderOverride(t,this.normalMaterial,this.normalRenderTarget,0,0),this.isSelective&&this.renderMetalness(t,this.metalnessOnMaterial,this.metalnessRenderTarget,0,0),this.ssrMaterial.uniforms.opacity.value=this.opacity,this.ssrMaterial.uniforms.maxDistance.value=this.maxDistance,this.ssrMaterial.uniforms.surfDist.value=this.surfDist,this.ssrMaterial.uniforms.thickTolerance.value=this.thickTolerance,this.renderPass(t,this.ssrMaterial,this.ssrRenderTarget),this.isBlur&&(this.renderPass(t,this.blurMaterial,this.blurRenderTarget),this.renderPass(t,this.blurMaterial2,this.blurRenderTarget2)),this.output){case s.OUTPUT.Default:this.isBouncing?(this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.prevRenderTarget),this.isBlur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=e.NormalBlending,this.renderPass(t,this.copyMaterial,this.prevRenderTarget),this.copyMaterial.uniforms.tDiffuse.value=this.prevRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r)):(this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r),this.isBlur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=e.NormalBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r));break;case s.OUTPUT.SSR:this.isBlur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r),this.isBouncing&&(this.isBlur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.prevRenderTarget),this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=e.NormalBlending,this.renderPass(t,this.copyMaterial,this.prevRenderTarget));break;case s.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r);break;case s.OUTPUT.Depth:this.renderPass(t,this.depthRenderMaterial,this.renderToScreen?null:r);break;case s.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r);break;case s.OUTPUT.Metalness:this.copyMaterial.uniforms.tDiffuse.value=this.metalnessRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r);break;default:console.warn("THREE.SSRPass: Unknown output type.")}},renderPass:function(e,t,r,i,s){this.originalClearColor.copy(e.getClearColor(this.tempColor));var a=e.getClearAlpha(this.tempColor),n=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,null!=i&&(e.setClearColor(i),e.setClearAlpha(s||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=n,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)},renderOverride:function(e,t,r,i,s){this.originalClearColor.copy(e.getClearColor(this.tempColor));var a=e.getClearAlpha(this.tempColor),n=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,i=t.clearColor||i,s=t.clearAlpha||s,null!=i&&(e.setClearColor(i),e.setClearAlpha(s||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=n,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)},renderMetalness:function(e,t,r,i,s){this.originalClearColor.copy(e.getClearColor(this.tempColor));var a=e.getClearAlpha(this.tempColor),n=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,i=t.clearColor||i,s=t.clearAlpha||s,null!=i&&(e.setClearColor(i),e.setClearAlpha(s||0),e.clear()),this.scene.traverseVisible((e=>{e._SSRPassMaterialBack=e.material,this._selects.includes(e)?e.material=this.metalnessOnMaterial:e.material=this.metalnessOffMaterial})),e.render(this.scene,this.camera),this.scene.traverseVisible((e=>{e.material=e._SSRPassMaterialBack})),e.autoClear=n,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)},setSize:function(e,t){this.width=e,this.height=t,this.ssrMaterial.defines.MAX_STEP=Math.sqrt(e*e+t*t),this.ssrMaterial.needsUpdate=!0,this.beautyRenderTarget.setSize(e,t),this.prevRenderTarget.setSize(e,t),this.ssrRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.metalnessRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.blurRenderTarget2.setSize(e,t),this.ssrMaterial.uniforms.resolution.value.set(e,t),this.ssrMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssrMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t),this.blurMaterial2.uniforms.resolution.value.set(e,t)}}),s.OUTPUT={Default:0,SSR:1,Beauty:3,Depth:4,Normal:5,Metalness:7},exports.SSRPass=s;
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./Pass.cjs.js"),r=require("../shaders/SSRShader.cjs.js"),i=require("../shaders/CopyShader.cjs.js");require("@babel/runtime/helpers/defineProperty");var s=function({renderer:s,scene:a,camera:n,width:l,height:h,selects:o,encoding:d,isPerspectiveCamera:u=!0,isBouncing:c=!1,morphTargets:f=!1,groundReflector:g}){this.width=void 0!==l?l:512,this.height=void 0!==h?h:512,this.clear=!0,this.renderer=s,this.scene=a,this.camera=n,this.groundReflector=g,this.opacity=r.SSRShader.uniforms.opacity.value,this.output=0,this.maxDistance=r.SSRShader.uniforms.maxDistance.value,this.surfDist=r.SSRShader.uniforms.surfDist.value,this.encoding=d,this.tempColor=new e.Color,this._selects=o,this.isSelective=Array.isArray(this._selects),Object.defineProperty(this,"selects",{get(){return this._selects},set(e){this._selects!==e&&(this._selects=e,Array.isArray(e)?(this.isSelective=!0,this.ssrMaterial.defines.isSelective=!0,this.ssrMaterial.needsUpdate=!0):(this.isSelective=!1,this.ssrMaterial.defines.isSelective=!1,this.ssrMaterial.needsUpdate=!0))}}),this._isBouncing=c,Object.defineProperty(this,"isBouncing",{get(){return this._isBouncing},set(e){this._isBouncing!==e&&(this._isBouncing=e,this.ssrMaterial.uniforms.tDiffuse.value=e?this.prevRenderTarget.texture:this.beautyRenderTarget.texture)}}),this.isBlur=!0,this._isDistanceAttenuation=r.SSRShader.defines.isDistanceAttenuation,Object.defineProperty(this,"isDistanceAttenuation",{get(){return this._isDistanceAttenuation},set(e){this._isDistanceAttenuation!==e&&(this._isDistanceAttenuation=e,this.ssrMaterial.defines.isDistanceAttenuation=e,this.ssrMaterial.needsUpdate=!0)}}),this._isFresnel=r.SSRShader.defines.isFresnel,Object.defineProperty(this,"isFresnel",{get(){return this._isFresnel},set(e){this._isFresnel!==e&&(this._isFresnel=e,this.ssrMaterial.defines.isFresnel=e,this.ssrMaterial.needsUpdate=!0)}}),this._isInfiniteThick=r.SSRShader.defines.isInfiniteThick,Object.defineProperty(this,"isInfiniteThick",{get(){return this._isInfiniteThick},set(e){this._isInfiniteThick!==e&&(this._isInfiniteThick=e,this.ssrMaterial.defines.isInfiniteThick=e,this.ssrMaterial.needsUpdate=!0)}}),this.thickTolerance=r.SSRShader.uniforms.thickTolerance.value;var p=new e.DepthTexture;p.type=e.UnsignedShortType,p.minFilter=e.NearestFilter,p.maxFilter=e.NearestFilter,this.beautyRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat,depthTexture:p,depthBuffer:!0}),this.prevRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat}),this.normalRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.NearestFilter,magFilter:e.NearestFilter,format:e.RGBAFormat,type:e.HalfFloatType}),this.metalnessRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.NearestFilter,magFilter:e.NearestFilter,format:e.RGBAFormat}),this.ssrRenderTarget=new e.WebGLRenderTarget(this.width,this.height,{minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat}),this.blurRenderTarget=this.ssrRenderTarget.clone(),this.blurRenderTarget2=this.ssrRenderTarget.clone(),void 0===r.SSRShader&&console.error("THREE.SSRPass: The pass relies on SSRShader."),this.ssrMaterial=new e.ShaderMaterial({defines:Object.assign({MAX_STEP:Math.sqrt(window.innerWidth*window.innerWidth+window.innerHeight*window.innerHeight)},r.SSRShader.defines),uniforms:e.UniformsUtils.clone(r.SSRShader.uniforms),vertexShader:r.SSRShader.vertexShader,fragmentShader:r.SSRShader.fragmentShader,blending:e.NoBlending}),u||(this.ssrMaterial.defines.isPerspectiveCamera=u,this.ssrMaterial.needsUpdate=!0),this.ssrMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssrMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssrMaterial.defines.isSelective=this.isSelective,this.ssrMaterial.needsUpdate=!0,this.ssrMaterial.uniforms.tMetalness.value=this.metalnessRenderTarget.texture,this.ssrMaterial.uniforms.tDepth.value=this.beautyRenderTarget.depthTexture,this.ssrMaterial.uniforms.cameraNear.value=this.camera.near,this.ssrMaterial.uniforms.cameraFar.value=this.camera.far,this.ssrMaterial.uniforms.surfDist.value=this.surfDist,this.ssrMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssrMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssrMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new e.MeshNormalMaterial({morphTargets:f}),this.normalMaterial.blending=e.NoBlending,this.metalnessOnMaterial=new e.MeshBasicMaterial({color:"white"}),this.metalnessOffMaterial=new e.MeshBasicMaterial({color:"black"}),this.blurMaterial=new e.ShaderMaterial({defines:Object.assign({},r.SSRBlurShader.defines),uniforms:e.UniformsUtils.clone(r.SSRBlurShader.uniforms),vertexShader:r.SSRBlurShader.vertexShader,fragmentShader:r.SSRBlurShader.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.blurMaterial2=new e.ShaderMaterial({defines:Object.assign({},r.SSRBlurShader.defines),uniforms:e.UniformsUtils.clone(r.SSRBlurShader.uniforms),vertexShader:r.SSRBlurShader.vertexShader,fragmentShader:r.SSRBlurShader.fragmentShader}),this.blurMaterial2.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.blurMaterial2.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new e.ShaderMaterial({defines:Object.assign({},r.SSRDepthShader.defines),uniforms:e.UniformsUtils.clone(r.SSRDepthShader.uniforms),vertexShader:r.SSRDepthShader.vertexShader,fragmentShader:r.SSRDepthShader.fragmentShader,blending:e.NoBlending}),this.depthRenderMaterial.uniforms.tDepth.value=this.beautyRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new e.ShaderMaterial({uniforms:e.UniformsUtils.clone(i.CopyShader.uniforms),vertexShader:i.CopyShader.vertexShader,fragmentShader:i.CopyShader.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendEquation:e.AddEquation,blendSrcAlpha:e.SrcAlphaFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,blendEquationAlpha:e.AddEquation}),this.fsQuad=new t.FullScreenQuad(null),this.originalClearColor=new e.Color};s.prototype=Object.assign(Object.create(t.Pass.prototype),{constructor:s,dispose:function(){this.beautyRenderTarget.dispose(),this.prevRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.metalnessRenderTarget.dispose(),this.ssrRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.blurRenderTarget2.dispose(),this.normalMaterial.dispose(),this.metalnessOnMaterial.dispose(),this.metalnessOffMaterial.dispose(),this.blurMaterial.dispose(),this.blurMaterial2.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()},render:function(t,r){switch(this.encoding&&("colorSpace"in this.beautyRenderTarget.texture?this.beautyRenderTarget.texture.colorSpace=3001===this.encoding?"srgb":"srgb-linear":this.beautyRenderTarget.texture.encoding=this.encoding),t.setRenderTarget(this.beautyRenderTarget),t.clear(),this.groundReflector&&(this.groundReflector.doRender(this.renderer,this.scene,this.camera),this.groundReflector.visible=!0),t.render(this.scene,this.camera),this.groundReflector&&(this.groundReflector.visible=!1),this.renderOverride(t,this.normalMaterial,this.normalRenderTarget,0,0),this.isSelective&&this.renderMetalness(t,this.metalnessOnMaterial,this.metalnessRenderTarget,0,0),this.ssrMaterial.uniforms.opacity.value=this.opacity,this.ssrMaterial.uniforms.maxDistance.value=this.maxDistance,this.ssrMaterial.uniforms.surfDist.value=this.surfDist,this.ssrMaterial.uniforms.thickTolerance.value=this.thickTolerance,this.renderPass(t,this.ssrMaterial,this.ssrRenderTarget),this.isBlur&&(this.renderPass(t,this.blurMaterial,this.blurRenderTarget),this.renderPass(t,this.blurMaterial2,this.blurRenderTarget2)),this.output){case s.OUTPUT.Default:this.isBouncing?(this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.prevRenderTarget),this.isBlur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=e.NormalBlending,this.renderPass(t,this.copyMaterial,this.prevRenderTarget),this.copyMaterial.uniforms.tDiffuse.value=this.prevRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r)):(this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r),this.isBlur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=e.NormalBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r));break;case s.OUTPUT.SSR:this.isBlur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r),this.isBouncing&&(this.isBlur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.prevRenderTarget),this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=e.NormalBlending,this.renderPass(t,this.copyMaterial,this.prevRenderTarget));break;case s.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r);break;case s.OUTPUT.Depth:this.renderPass(t,this.depthRenderMaterial,this.renderToScreen?null:r);break;case s.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r);break;case s.OUTPUT.Metalness:this.copyMaterial.uniforms.tDiffuse.value=this.metalnessRenderTarget.texture,this.copyMaterial.blending=e.NoBlending,this.renderPass(t,this.copyMaterial,this.renderToScreen?null:r);break;default:console.warn("THREE.SSRPass: Unknown output type.")}},renderPass:function(e,t,r,i,s){this.originalClearColor.copy(e.getClearColor(this.tempColor));var a=e.getClearAlpha(this.tempColor),n=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,null!=i&&(e.setClearColor(i),e.setClearAlpha(s||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=n,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)},renderOverride:function(e,t,r,i,s){this.originalClearColor.copy(e.getClearColor(this.tempColor));var a=e.getClearAlpha(this.tempColor),n=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,i=t.clearColor||i,s=t.clearAlpha||s,null!=i&&(e.setClearColor(i),e.setClearAlpha(s||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=n,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)},renderMetalness:function(e,t,r,i,s){this.originalClearColor.copy(e.getClearColor(this.tempColor));var a=e.getClearAlpha(this.tempColor),n=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,i=t.clearColor||i,s=t.clearAlpha||s,null!=i&&(e.setClearColor(i),e.setClearAlpha(s||0),e.clear()),this.scene.traverseVisible((e=>{e._SSRPassMaterialBack=e.material,this._selects.includes(e)?e.material=this.metalnessOnMaterial:e.material=this.metalnessOffMaterial})),e.render(this.scene,this.camera),this.scene.traverseVisible((e=>{e.material=e._SSRPassMaterialBack})),e.autoClear=n,e.setClearColor(this.originalClearColor),e.setClearAlpha(a)},setSize:function(e,t){this.width=e,this.height=t,this.ssrMaterial.defines.MAX_STEP=Math.sqrt(e*e+t*t),this.ssrMaterial.needsUpdate=!0,this.beautyRenderTarget.setSize(e,t),this.prevRenderTarget.setSize(e,t),this.ssrRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.metalnessRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.blurRenderTarget2.setSize(e,t),this.ssrMaterial.uniforms.resolution.value.set(e,t),this.ssrMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssrMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t),this.blurMaterial2.uniforms.resolution.value.set(e,t)}}),s.OUTPUT={Default:0,SSR:1,Beauty:3,Depth:4,Normal:5,Metalness:7},exports.SSRPass=s;
|
@@ -294,7 +294,14 @@ SSRPass.prototype = Object.assign(Object.create(Pass.prototype), {
|
|
294
294
|
/*, readBuffer, deltaTime, maskActive */
|
295
295
|
) {
|
296
296
|
// render beauty and depth
|
297
|
-
if (this.encoding)
|
297
|
+
if (this.encoding) {
|
298
|
+
if ('colorSpace' in this.beautyRenderTarget.texture) {
|
299
|
+
this.beautyRenderTarget.texture.colorSpace = this.encoding === 3001 ? 'srgb' : 'srgb-linear';
|
300
|
+
} else {
|
301
|
+
this.beautyRenderTarget.texture.encoding = this.encoding;
|
302
|
+
}
|
303
|
+
}
|
304
|
+
|
298
305
|
renderer.setRenderTarget(this.beautyRenderTarget);
|
299
306
|
renderer.clear();
|
300
307
|
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";var e=require("./constants.cjs.js"),t=require("three"),r=require("./WebGPUTextureUtils.cjs.js");function i(e){const t=e.target,r=this.properties,i=r.get(t);t.removeEventListener("dispose",i.disposeCallback),i.colorTextureGPU.destroy(),r.remove(t.texture),this.info.memory.textures--,!0===t.depthBuffer&&(i.depthTextureGPU.destroy(),this.info.memory.textures--,null!==t.depthTexture&&r.remove(t.depthTexture)),r.remove(t)}function a(e){const t=e.target,r=this.properties.get(t);r.textureGPU.destroy(),t.removeEventListener("dispose",r.disposeCallback),this.properties.remove(t),this.info.memory.textures--}module.exports=class{constructor(e,t,r,i){this.device=e,this.properties=t,this.info=r,this.glslang=i,this.defaultTexture=null,this.defaultCubeTexture=null,this.defaultSampler=null,this.samplerCache=new Map,this.utils=null}getDefaultSampler(){return null===this.defaultSampler&&(this.defaultSampler=this.device.createSampler({})),this.defaultSampler}getDefaultTexture(){if(null===this.defaultTexture){const e=new t.Texture;e.minFilter=t.NearestFilter,e.magFilter=t.NearestFilter,this.defaultTexture=this._createTexture(e)}return this.defaultTexture}getDefaultCubeTexture(){if(null===this.defaultCubeTexture){const e=new t.CubeTexture;e.minFilter=t.NearestFilter,e.magFilter=t.NearestFilter,this.defaultCubeTexture=this._createTexture(e)}return this.defaultCubeTexture}getTextureGPU(e){return this.properties.get(e).textureGPU}getSampler(e){return this.properties.get(e).samplerGPU}updateTexture(e){let t=!1;const r=this.properties.get(e);if(e.version>0&&r.version!==e.version){const i=e.image;if(void 0===i)console.warn("THREE.WebGPURenderer: Texture marked for update but image is undefined.");else if(!1===i.complete)console.warn("THREE.WebGPURenderer: Texture marked for update but image is incomplete.");else{if(void 0===r.initialized){r.initialized=!0;const t=a.bind(this);r.disposeCallback=t,e.addEventListener("dispose",t),this.info.memory.textures++}void 0!==r.textureGPU&&r.textureGPU.destroy(),r.textureGPU=this._createTexture(e),r.version=e.version,t=!0}}return!1===r.initializedRTT&&(r.initializedRTT=!0,t=!0),t}updateSampler(e){const t=[];t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy);const r=t.join();let i=this.samplerCache.get(r);void 0===i&&(i=this.device.createSampler({addressModeU:this._convertAddressMode(e.wrapS),addressModeV:this._convertAddressMode(e.wrapT),addressModeW:this._convertAddressMode(e.wrapR),magFilter:this._convertFilterMode(e.magFilter),minFilter:this._convertFilterMode(e.minFilter),mipmapFilter:this._convertFilterMode(e.minFilter),maxAnisotropy:e.anisotropy}),this.samplerCache.set(r,i));this.properties.get(e).samplerGPU=i}initRenderTarget(t){const r=this.properties,a=r.get(t);if(void 0===a.initialized){const o=this.device,s=t.width,u=t.height,n=this._getFormat(t.texture),m=o.createTexture({size:{width:s,height:u,depthOrArrayLayers:1},format:n,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.SAMPLED});this.info.memory.textures++,a.colorTextureGPU=m,a.colorTextureFormat=n;const
|
1
|
+
"use strict";var e=require("./constants.cjs.js"),t=require("three"),r=require("./WebGPUTextureUtils.cjs.js");function i(e){const t=e.target,r=this.properties,i=r.get(t);t.removeEventListener("dispose",i.disposeCallback),i.colorTextureGPU.destroy(),r.remove(t.texture),this.info.memory.textures--,!0===t.depthBuffer&&(i.depthTextureGPU.destroy(),this.info.memory.textures--,null!==t.depthTexture&&r.remove(t.depthTexture)),r.remove(t)}function a(e){const t=e.target,r=this.properties.get(t);r.textureGPU.destroy(),t.removeEventListener("dispose",r.disposeCallback),this.properties.remove(t),this.info.memory.textures--}module.exports=class{constructor(e,t,r,i){this.device=e,this.properties=t,this.info=r,this.glslang=i,this.defaultTexture=null,this.defaultCubeTexture=null,this.defaultSampler=null,this.samplerCache=new Map,this.utils=null}getDefaultSampler(){return null===this.defaultSampler&&(this.defaultSampler=this.device.createSampler({})),this.defaultSampler}getDefaultTexture(){if(null===this.defaultTexture){const e=new t.Texture;e.minFilter=t.NearestFilter,e.magFilter=t.NearestFilter,this.defaultTexture=this._createTexture(e)}return this.defaultTexture}getDefaultCubeTexture(){if(null===this.defaultCubeTexture){const e=new t.CubeTexture;e.minFilter=t.NearestFilter,e.magFilter=t.NearestFilter,this.defaultCubeTexture=this._createTexture(e)}return this.defaultCubeTexture}getTextureGPU(e){return this.properties.get(e).textureGPU}getSampler(e){return this.properties.get(e).samplerGPU}updateTexture(e){let t=!1;const r=this.properties.get(e);if(e.version>0&&r.version!==e.version){const i=e.image;if(void 0===i)console.warn("THREE.WebGPURenderer: Texture marked for update but image is undefined.");else if(!1===i.complete)console.warn("THREE.WebGPURenderer: Texture marked for update but image is incomplete.");else{if(void 0===r.initialized){r.initialized=!0;const t=a.bind(this);r.disposeCallback=t,e.addEventListener("dispose",t),this.info.memory.textures++}void 0!==r.textureGPU&&r.textureGPU.destroy(),r.textureGPU=this._createTexture(e),r.version=e.version,t=!0}}return!1===r.initializedRTT&&(r.initializedRTT=!0,t=!0),t}updateSampler(e){const t=[];t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy);const r=t.join();let i=this.samplerCache.get(r);void 0===i&&(i=this.device.createSampler({addressModeU:this._convertAddressMode(e.wrapS),addressModeV:this._convertAddressMode(e.wrapT),addressModeW:this._convertAddressMode(e.wrapR),magFilter:this._convertFilterMode(e.magFilter),minFilter:this._convertFilterMode(e.minFilter),mipmapFilter:this._convertFilterMode(e.minFilter),maxAnisotropy:e.anisotropy}),this.samplerCache.set(r,i));this.properties.get(e).samplerGPU=i}initRenderTarget(t){const r=this.properties,a=r.get(t);if(void 0===a.initialized){const o=this.device,s=t.width,u=t.height,n=this._getFormat(t.texture),m=o.createTexture({size:{width:s,height:u,depthOrArrayLayers:1},format:n,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.SAMPLED});this.info.memory.textures++,a.colorTextureGPU=m,a.colorTextureFormat=n;const l=r.get(t.texture);if(l.textureGPU=m,l.initializedRTT=!1,!0===t.depthBuffer){const i=e.GPUTextureFormat.Depth24PlusStencil8,n=o.createTexture({size:{width:s,height:u,depthOrArrayLayers:1},format:i,usage:GPUTextureUsage.RENDER_ATTACHMENT});if(this.info.memory.textures++,a.depthTextureGPU=n,a.depthTextureFormat=i,null!==t.depthTexture){const e=r.get(t.depthTexture);e.textureGPU=n,e.initializedRTT=!1}}const h=i.bind(this);a.disposeCallback=h,t.addEventListener("dispose",h),a.initialized=!0}}dispose(){this.samplerCache.clear()}_convertAddressMode(r){let i=e.GPUAddressMode.ClampToEdge;return r===t.RepeatWrapping?i=e.GPUAddressMode.Repeat:r===t.MirroredRepeatWrapping&&(i=e.GPUAddressMode.MirrorRepeat),i}_convertFilterMode(r){let i=e.GPUFilterMode.Linear;return r!==t.NearestFilter&&r!==t.NearestMipmapNearestFilter&&r!==t.NearestMipmapLinearFilter||(i=e.GPUFilterMode.Nearest),i}_createTexture(e){const t=this.device,r=e.image,{width:i,height:a,depth:o}=this._getSize(e),s=this._needsMipmaps(e),u=this._getDimension(e),n=this._getMipLevelCount(e,i,a,s),m=this._getFormat(e);let l=GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST;!0===s&&(l|=GPUTextureUsage.RENDER_ATTACHMENT);const h={size:{width:i,height:a,depthOrArrayLayers:o},mipLevelCount:n,sampleCount:1,dimension:u,format:m,usage:l},d=t.createTexture(h);return e.isDataTexture||e.isDataTexture2DArray||e.isDataTexture3D?(this._copyBufferToTexture(r,m,d),!0===s&&this._generateMipmaps(d,h)):e.isCompressedTexture?this._copyCompressedBufferToTexture(e.mipmaps,m,d):e.isCubeTexture?this._copyCubeMapToTexture(r,e,d):void 0!==r&&this._getImageBitmap(r,e).then((e=>{this._copyImageBitmapToTexture(e,d),!0===s&&this._generateMipmaps(d,h)})),d}_copyBufferToTexture(e,t,r){const i=e.data,a=this._getBytesPerTexel(t),o=256*Math.ceil(e.width*a/256);this.device.queue.writeTexture({texture:r,mipLevel:0},i,{offset:0,bytesPerRow:o},{width:e.width,height:e.height,depthOrArrayLayers:void 0!==e.depth?e.depth:1})}_copyCubeMapToTexture(e,t,r){for(let i=0;i<e.length;i++){const a=e[i];this._getImageBitmap(a,t).then((e=>{this._copyImageBitmapToTexture(e,r,{x:0,y:0,z:i})}))}}_copyImageBitmapToTexture(e,t,r={x:0,y:0,z:0}){this.device.queue.copyImageBitmapToTexture({imageBitmap:e},{texture:t,mipLevel:0,origin:r},{width:e.width,height:e.height,depthOrArrayLayers:1})}_copyCompressedBufferToTexture(e,t,r){const i=this._getBlockData(t);for(let t=0;t<e.length;t++){const a=e[t],o=a.width,s=a.height,u=Math.ceil(o/i.width)*i.byteLength;this.device.queue.writeTexture({texture:r,mipLevel:t},a.data,{offset:0,bytesPerRow:u},{width:Math.ceil(o/i.width)*i.width,height:Math.ceil(s/i.width)*i.width,depthOrArrayLayers:1})}}_generateMipmaps(e,t){null===this.utils&&(this.utils=new r(this.device,this.glslang)),this.utils.generateMipmaps(e,t)}_getBlockData(t){return t===e.GPUTextureFormat.BC1RGBAUnorm||t===e.GPUTextureFormat.BC1RGBAUnormSRGB?{byteLength:8,width:4,height:4}:t===e.GPUTextureFormat.BC2RGBAUnorm||t===e.GPUTextureFormat.BC2RGBAUnormSRGB||t===e.GPUTextureFormat.BC3RGBAUnorm||t===e.GPUTextureFormat.BC3RGBAUnormSRGB?{byteLength:16,width:4,height:4}:t===e.GPUTextureFormat.BC4RUnorm||t===e.GPUTextureFormat.BC4RSNorm?{byteLength:8,width:4,height:4}:t===e.GPUTextureFormat.BC5RGUnorm||t===e.GPUTextureFormat.BC5RGSnorm||t===e.GPUTextureFormat.BC6HRGBUFloat||t===e.GPUTextureFormat.BC6HRGBFloat||t===e.GPUTextureFormat.BC7RGBAUnorm||t===e.GPUTextureFormat.BC7RGBAUnormSRGB?{byteLength:16,width:4,height:4}:void 0}_getBytesPerTexel(t){return t===e.GPUTextureFormat.R8Unorm?1:t===e.GPUTextureFormat.R16Float||t===e.GPUTextureFormat.RG8Unorm?2:t===e.GPUTextureFormat.RG16Float||t===e.GPUTextureFormat.R32Float||t===e.GPUTextureFormat.RGBA8Unorm||t===e.GPUTextureFormat.RGBA8UnormSRGB?4:t===e.GPUTextureFormat.RG32Float||t===e.GPUTextureFormat.RGBA16Float?8:t===e.GPUTextureFormat.RGBA32Float?16:void 0}_getDimension(t){let r;return r=t.isDataTexture3D?e.GPUTextureDimension.ThreeD:e.GPUTextureDimension.TwoD,r}_getFormat(r){const i=r.format,a=r.type,o="colorSpace"in r?"srgb"===r.colorSpace:3001===r.encoding;let s;switch(i){case t.RGBA_S3TC_DXT1_Format:s=o?e.GPUTextureFormat.BC1RGBAUnormSRGB:e.GPUTextureFormat.BC1RGBAUnorm;break;case t.RGBA_S3TC_DXT3_Format:s=o?e.GPUTextureFormat.BC2RGBAUnormSRGB:e.GPUTextureFormat.BC2RGBAUnorm;break;case t.RGBA_S3TC_DXT5_Format:s=o?e.GPUTextureFormat.BC3RGBAUnormSRGB:e.GPUTextureFormat.BC3RGBAUnorm;break;case t.RGBAFormat:switch(a){case t.UnsignedByteType:s=o?e.GPUTextureFormat.RGBA8UnormSRGB:e.GPUTextureFormat.RGBA8Unorm;break;case t.HalfFloatType:s=e.GPUTextureFormat.RGBA16Float;break;case t.FloatType:s=e.GPUTextureFormat.RGBA32Float;break;default:console.error("WebGPURenderer: Unsupported texture type with RGBAFormat.",a)}break;case t.RedFormat:switch(a){case t.UnsignedByteType:s=e.GPUTextureFormat.R8Unorm;break;case t.HalfFloatType:s=e.GPUTextureFormat.R16Float;break;case t.FloatType:s=e.GPUTextureFormat.R32Float;break;default:console.error("WebGPURenderer: Unsupported texture type with RedFormat.",a)}break;case t.RGFormat:switch(a){case t.UnsignedByteType:s=e.GPUTextureFormat.RG8Unorm;break;case t.HalfFloatType:s=e.GPUTextureFormat.RG16Float;break;case t.FloatType:s=e.GPUTextureFormat.RG32Float;break;default:console.error("WebGPURenderer: Unsupported texture type with RGFormat.",a)}break;default:console.error("WebGPURenderer: Unsupported texture format.",i)}return s}_getImageBitmap(e,t){const r=e.width,i=e.height;if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement){const a={};return a.imageOrientation=!0===t.flipY?"flipY":"none",a.premultiplyAlpha=!0===t.premultiplyAlpha?"premultiply":"default",createImageBitmap(e,0,0,r,i,a)}return Promise.resolve(e)}_getMipLevelCount(e,t,r,i){let a;return a=e.isCompressedTexture?e.mipmaps.length:!0===i?Math.floor(Math.log2(Math.max(t,r)))+1:1,a}_getSize(e){const t=e.image;let r,i,a;return e.isCubeTexture?(r=t.length>0?t[0].width:1,i=t.length>0?t[0].height:1,a=6):void 0!==t?(r=t.width,i=t.height,a=void 0!==t.depth?t.depth:1):r=i=a=1,{width:r,height:i,depth:a}}_needsMipmaps(e){return!0!==e.isCompressedTexture&&!0===e.generateMipmaps&&e.minFilter!==t.NearestFilter&&e.minFilter!==t.LinearFilter}};
|