three-stdlib 2.5.11 → 2.6.3
Sign up to get free protection for your applications and to get access to all the features.
- package/{Nodes-acab3ca5.js → Nodes-427f68b0.js} +0 -0
- package/{Nodes-244507d0.js → Nodes-ec4e1143.js} +0 -0
- package/controls/TrackballControls.cjs.js +1 -1
- package/controls/TrackballControls.d.ts +5 -1
- package/controls/TrackballControls.js +38 -7
- package/index.cjs.js +1 -1
- package/index.js +1 -1
- package/loaders/HDRCubeTextureLoader.cjs.js +1 -1
- package/loaders/HDRCubeTextureLoader.js +1 -9
- package/loaders/NodeMaterialLoader.cjs.js +1 -1
- package/loaders/RGBELoader.cjs.js +1 -1
- package/loaders/RGBELoader.js +1 -16
- package/loaders/RGBMLoader.cjs.js +1 -1
- package/loaders/RGBMLoader.js +44 -6
- package/misc/WebGL.cjs.js +1 -1
- package/misc/WebGL.d.ts +5 -7
- package/misc/WebGL.js +67 -54
- package/nodes/core/NodeBuilder.cjs.js +1 -1
- package/nodes/core/NodeBuilder.js +2 -2
- package/nodes/inputs/CubeTextureNode.cjs.js +1 -1
- package/nodes/inputs/RTTNode.cjs.js +1 -1
- package/nodes/inputs/ReflectorNode.cjs.js +1 -1
- package/nodes/inputs/ScreenNode.cjs.js +1 -1
- package/nodes/inputs/TextureNode.cjs.js +1 -1
- package/nodes/materials/BasicNodeMaterial.cjs.js +1 -1
- package/nodes/materials/NodeMaterial.cjs.js +1 -1
- package/nodes/materials/SpriteNodeMaterial.cjs.js +1 -1
- package/nodes/postprocessing/NodePass.cjs.js +1 -1
- package/nodes/postprocessing/NodePostProcessing.cjs.js +1 -1
- package/nodes/utils/ColorSpaceNode.cjs.js +1 -1
- package/nodes/utils/ColorSpaceNode.js +2 -45
- package/package.json +1 -1
- package/shaders/GammaCorrectionShader.js +1 -2
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("../core/NodeBuilder.cjs.js"),i=require("../inputs/ColorNode.cjs.js"),s=require("../accessors/PositionNode.cjs.js"),r=require("./nodes/RawNode.cjs.js");function o(t,o){e.ShaderMaterial.call(this),this.vertex=t||new r.RawNode(new s.PositionNode(s.PositionNode.PROJECTION)),this.fragment=o||new r.RawNode(new i.ColorNode(16711680)),this.updaters=[]}require("../core/NodeUniform.cjs.js"),require("../core/NodeUtils.cjs.js"),require("../core/NodeLib.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/Node.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/StructNode.cjs.js"),require("../inputs/Vector2Node.cjs.js"),require("../core/InputNode.cjs.js"),require("../inputs/Vector3Node.cjs.js"),require("../inputs/Vector4Node.cjs.js"),require("../inputs/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../utils/ColorSpaceNode.cjs.js"),require("../
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("../core/NodeBuilder.cjs.js"),i=require("../inputs/ColorNode.cjs.js"),s=require("../accessors/PositionNode.cjs.js"),r=require("./nodes/RawNode.cjs.js");function o(t,o){e.ShaderMaterial.call(this),this.vertex=t||new r.RawNode(new s.PositionNode(s.PositionNode.PROJECTION)),this.fragment=o||new r.RawNode(new i.ColorNode(16711680)),this.updaters=[]}require("../core/NodeUniform.cjs.js"),require("../core/NodeUtils.cjs.js"),require("../core/NodeLib.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/Node.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/StructNode.cjs.js"),require("../inputs/Vector2Node.cjs.js"),require("../core/InputNode.cjs.js"),require("../inputs/Vector3Node.cjs.js"),require("../inputs/Vector4Node.cjs.js"),require("../inputs/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../utils/ColorSpaceNode.cjs.js"),require("../core/ExpressionNode.cjs.js"),require("../inputs/CubeTextureNode.cjs.js"),require("../accessors/ReflectNode.cjs.js"),require("../accessors/NormalNode.cjs.js"),require("../misc/TextureCubeNode.cjs.js"),require("../inputs/FloatNode.cjs.js"),require("../misc/TextureCubeUVNode.cjs.js"),require("../core/FunctionCallNode.cjs.js"),require("../math/OperatorNode.cjs.js"),require("../math/MathNode.cjs.js"),o.prototype=Object.create(e.ShaderMaterial.prototype),o.prototype.constructor=o,o.prototype.type="NodeMaterial",o.prototype.isNodeMaterial=!0,Object.defineProperties(o.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(e){!0===e&&this.version++,this.needsCompile=e},get:function(){return this.needsCompile}}}),o.prototype.onBeforeCompile=function(e,t){this.build({renderer:t}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=!0===this.extensions.derivatives,e.extensionFragDepth=!0===this.extensions.fragDepth,e.extensionDrawBuffers=!0===this.extensions.drawBuffers,e.extensionShaderTextureLOD=!0===this.extensions.shaderTextureLOD},o.prototype.customProgramCacheKey=function(){return this.getHash()},o.prototype.getHash=function(){var e="{";return e+='"vertex":'+this.vertex.getHash()+",",e+='"fragment":'+this.fragment.getHash(),e+="}"},o.prototype.updateFrame=function(e){for(let t=0;t<this.updaters.length;++t)e.updateNode(this.updaters[t])},o.prototype.build=function(i){var s=(i=i||{}).builder||new t.NodeBuilder;return s.setMaterial(this,i.renderer),s.build(this.vertex,this.fragment),this.vertexShader=s.getCode("vertex"),this.fragmentShader=s.getCode("fragment"),this.defines=s.defines,this.uniforms=s.uniforms,this.extensions=s.extensions,this.updaters=s.updaters,this.fog=s.requires.fog,this.lights=s.requires.lights,this.transparent=s.requires.transparent||this.blending>e.NormalBlending,this},o.prototype.copy=function(e){var t=this.uuid;for(let t in e)this[t]=e[t];return this.uuid=t,void 0!==e.userData&&(this.userData=JSON.parse(JSON.stringify(e.userData))),this},o.prototype.toJSON=function(t){if((void 0===t||"string"==typeof t)&&(t={nodes:{}}),t&&!t.materials&&(t.materials={}),!t.materials[this.uuid]){var i={};i.uuid=this.uuid,i.type=this.type,t.materials[i.uuid]=i,""!==this.name&&(i.name=this.name),void 0!==this.size&&(i.size=this.size),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==e.NormalBlending&&(i.blending=this.blending),!0===this.flatShading&&(i.flatShading=this.flatShading),this.side!==e.FrontSide&&(i.side=this.side),this.vertexColors!==e.NoColors&&(i.vertexColors=this.vertexColors),this.depthFunc!==e.LessEqualDepth&&(i.depthFunc=this.depthFunc),!1===this.depthTest&&(i.depthTest=this.depthTest),!1===this.depthWrite&&(i.depthWrite=this.depthWrite),1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),!0===this.wireframe&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=this.premultipliedAlpha),!0===this.morphTargets&&(i.morphTargets=!0),!0===this.skinning&&(i.skinning=!0),!1===this.visible&&(i.visible=!1),"{}"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.fog=this.fog,i.lights=this.lights,i.vertex=this.vertex.toJSON(t).uuid,i.fragment=this.fragment.toJSON(t).uuid}return t.material=this.uuid,t},exports.NodeMaterial=o;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./nodes/SpriteNode.cjs.js"),r=require("./NodeMaterial.cjs.js"),s=require("../core/NodeUtils.cjs.js");function o(){var s=new e.SpriteNode;r.NodeMaterial.call(this,s,s),this.type="SpriteNodeMaterial"}require("three"),require("../core/Node.cjs.js"),require("../inputs/ColorNode.cjs.js"),require("../core/InputNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeLib.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/StructNode.cjs.js"),require("../inputs/Vector2Node.cjs.js"),require("../inputs/Vector3Node.cjs.js"),require("../inputs/Vector4Node.cjs.js"),require("../inputs/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../utils/ColorSpaceNode.cjs.js"),require("../
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./nodes/SpriteNode.cjs.js"),r=require("./NodeMaterial.cjs.js"),s=require("../core/NodeUtils.cjs.js");function o(){var s=new e.SpriteNode;r.NodeMaterial.call(this,s,s),this.type="SpriteNodeMaterial"}require("three"),require("../core/Node.cjs.js"),require("../inputs/ColorNode.cjs.js"),require("../core/InputNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeLib.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/StructNode.cjs.js"),require("../inputs/Vector2Node.cjs.js"),require("../inputs/Vector3Node.cjs.js"),require("../inputs/Vector4Node.cjs.js"),require("../inputs/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../utils/ColorSpaceNode.cjs.js"),require("../core/ExpressionNode.cjs.js"),require("../inputs/CubeTextureNode.cjs.js"),require("../accessors/ReflectNode.cjs.js"),require("../accessors/PositionNode.cjs.js"),require("../accessors/NormalNode.cjs.js"),require("../misc/TextureCubeNode.cjs.js"),require("../inputs/FloatNode.cjs.js"),require("../misc/TextureCubeUVNode.cjs.js"),require("../core/FunctionCallNode.cjs.js"),require("../math/OperatorNode.cjs.js"),require("../math/MathNode.cjs.js"),require("./nodes/RawNode.cjs.js"),o.prototype=Object.create(r.NodeMaterial.prototype),o.prototype.constructor=o,s.NodeUtils.addShortcuts(o.prototype,"fragment",["color","alpha","mask","position","spherical"]),exports.SpriteNodeMaterial=o;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),s=require("../../postprocessing/ShaderPass.cjs.js"),r=require("../materials/NodeMaterial.cjs.js"),t=require("../inputs/ScreenNode.cjs.js");function i(){s.ShaderPass.call(this),this.name="",this.uuid=e.MathUtils.generateUUID(),this.userData={},this.textureID="renderTexture",this.input=new t.ScreenNode,this.material=new r.NodeMaterial,this.needsUpdate=!0}require("@babel/runtime/helpers/defineProperty"),require("../../postprocessing/Pass.cjs.js"),require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeUtils.cjs.js"),require("../core/NodeLib.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/Node.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/StructNode.cjs.js"),require("../inputs/Vector2Node.cjs.js"),require("../core/InputNode.cjs.js"),require("../inputs/Vector3Node.cjs.js"),require("../inputs/Vector4Node.cjs.js"),require("../inputs/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../utils/ColorSpaceNode.cjs.js"),require("../
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),s=require("../../postprocessing/ShaderPass.cjs.js"),r=require("../materials/NodeMaterial.cjs.js"),t=require("../inputs/ScreenNode.cjs.js");function i(){s.ShaderPass.call(this),this.name="",this.uuid=e.MathUtils.generateUUID(),this.userData={},this.textureID="renderTexture",this.input=new t.ScreenNode,this.material=new r.NodeMaterial,this.needsUpdate=!0}require("@babel/runtime/helpers/defineProperty"),require("../../postprocessing/Pass.cjs.js"),require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeUtils.cjs.js"),require("../core/NodeLib.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/Node.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/StructNode.cjs.js"),require("../inputs/Vector2Node.cjs.js"),require("../core/InputNode.cjs.js"),require("../inputs/Vector3Node.cjs.js"),require("../inputs/Vector4Node.cjs.js"),require("../inputs/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../utils/ColorSpaceNode.cjs.js"),require("../core/ExpressionNode.cjs.js"),require("../inputs/CubeTextureNode.cjs.js"),require("../accessors/ReflectNode.cjs.js"),require("../accessors/PositionNode.cjs.js"),require("../accessors/NormalNode.cjs.js"),require("../misc/TextureCubeNode.cjs.js"),require("../inputs/FloatNode.cjs.js"),require("../misc/TextureCubeUVNode.cjs.js"),require("../core/FunctionCallNode.cjs.js"),require("../math/OperatorNode.cjs.js"),require("../math/MathNode.cjs.js"),require("../inputs/ColorNode.cjs.js"),require("../materials/nodes/RawNode.cjs.js"),i.prototype=Object.create(s.ShaderPass.prototype),i.prototype.constructor=i,i.prototype.render=function(){this.needsUpdate&&(this.material.dispose(),this.material.fragment.value=this.input,this.needsUpdate=!1),this.uniforms=this.material.uniforms,s.ShaderPass.prototype.render.apply(this,arguments)},i.prototype.copy=function(e){return this.input=e.input,this},i.prototype.toJSON=function(e){if((void 0===e||"string"==typeof e)&&(e={nodes:{}}),e&&!e.passes&&(e.passes={}),!e.passes[this.uuid]){var s={};s.uuid=this.uuid,s.type="NodePass",e.passes[this.uuid]=s,""!==this.name&&(s.name=this.name),"{}"!==JSON.stringify(this.userData)&&(s.userData=this.userData),s.input=this.input.toJSON(e).uuid}return e.pass=this.uuid,e},exports.NodePass=i;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("../materials/NodeMaterial.cjs.js"),t=require("../inputs/ScreenNode.cjs.js");function s(s,i){if(void 0===i){var o={minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat},u=s.getDrawingBufferSize(new e.Vector2);i=new e.WebGLRenderTarget(u.width,u.height,o)}this.renderer=s,this.renderTarget=i,this.output=new t.ScreenNode,this.material=new r.NodeMaterial,this.camera=new e.OrthographicCamera(-1,1,1,-1,0,1),this.scene=new e.Scene,this.quad=new e.Mesh(new e.PlaneGeometry(2,2),this.material),this.quad.frustumCulled=!1,this.scene.add(this.quad),this.needsUpdate=!0}require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeUtils.cjs.js"),require("../core/NodeLib.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/Node.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/StructNode.cjs.js"),require("../inputs/Vector2Node.cjs.js"),require("../core/InputNode.cjs.js"),require("../inputs/Vector3Node.cjs.js"),require("../inputs/Vector4Node.cjs.js"),require("../inputs/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../utils/ColorSpaceNode.cjs.js"),require("../
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("../materials/NodeMaterial.cjs.js"),t=require("../inputs/ScreenNode.cjs.js");function s(s,i){if(void 0===i){var o={minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat},u=s.getDrawingBufferSize(new e.Vector2);i=new e.WebGLRenderTarget(u.width,u.height,o)}this.renderer=s,this.renderTarget=i,this.output=new t.ScreenNode,this.material=new r.NodeMaterial,this.camera=new e.OrthographicCamera(-1,1,1,-1,0,1),this.scene=new e.Scene,this.quad=new e.Mesh(new e.PlaneGeometry(2,2),this.material),this.quad.frustumCulled=!1,this.scene.add(this.quad),this.needsUpdate=!0}require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeUtils.cjs.js"),require("../core/NodeLib.cjs.js"),require("../core/FunctionNode.cjs.js"),require("../core/TempNode.cjs.js"),require("../core/Node.cjs.js"),require("../core/ConstNode.cjs.js"),require("../core/StructNode.cjs.js"),require("../inputs/Vector2Node.cjs.js"),require("../core/InputNode.cjs.js"),require("../inputs/Vector3Node.cjs.js"),require("../inputs/Vector4Node.cjs.js"),require("../inputs/TextureNode.cjs.js"),require("../accessors/UVNode.cjs.js"),require("../utils/ColorSpaceNode.cjs.js"),require("../core/ExpressionNode.cjs.js"),require("../inputs/CubeTextureNode.cjs.js"),require("../accessors/ReflectNode.cjs.js"),require("../accessors/PositionNode.cjs.js"),require("../accessors/NormalNode.cjs.js"),require("../misc/TextureCubeNode.cjs.js"),require("../inputs/FloatNode.cjs.js"),require("../misc/TextureCubeUVNode.cjs.js"),require("../core/FunctionCallNode.cjs.js"),require("../math/OperatorNode.cjs.js"),require("../math/MathNode.cjs.js"),require("../inputs/ColorNode.cjs.js"),require("../materials/nodes/RawNode.cjs.js"),s.prototype={constructor:s,render:function(e,r,t){this.needsUpdate&&(this.material.dispose(),this.material.fragment.value=this.output,this.material.build(),this.material.uniforms.renderTexture&&(this.material.uniforms.renderTexture.value=this.renderTarget.texture),this.needsUpdate=!1),t.setRenderer(this.renderer).setRenderTexture(this.renderTarget.texture),this.renderer.setRenderTarget(this.renderTarget),this.renderer.render(e,r),t.updateNode(this.material),this.renderer.setRenderTarget(null),this.renderer.render(this.scene,this.camera)},setPixelRatio:function(r){this.renderer.setPixelRatio(r);var t=this.renderer.getSize(new e.Vector2);this.setSize(t.width,t.height)},setSize:function(e,r){var t=this.renderer.getPixelRatio();this.renderTarget.setSize(e*t,r*t),this.renderer.setSize(e,r)},copy:function(e){return this.output=e.output,this},toJSON:function(e){if((void 0===e||"string"==typeof e)&&(e={nodes:{}}),e&&!e.post&&(e.post={}),!e.post[this.uuid]){var r={};r.uuid=this.uuid,r.type="NodePostProcessing",e.post[this.uuid]=r,""!==this.name&&(r.name=this.name),"{}"!==JSON.stringify(this.userData)&&(r.userData=this.userData),r.output=this.output.toJSON(e).uuid}return e.post=this.uuid,e}},exports.NodePostProcessing=s;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,o,t,n,r,i,u=require("three"),c=require("../core/TempNode.cjs.js"),a=require("../core/ConstNode.cjs.js"),v=require("../core/FunctionNode.cjs.js");function p(e,o){c.TempNode.call(this,"v4"),this.input=e,this.method=o||p.LINEAR_TO_LINEAR}require("../core/Node.cjs.js"),require("../core/NodeLib.cjs.js"),p.Nodes=(e=new v.FunctionNode(["vec4 LinearToLinear( in vec4 value ) {","\treturn value;","}"].join("\n")),o=new v.FunctionNode(["vec4 sRGBToLinear( in vec4 value ) {","\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join("\n")),t=new v.FunctionNode(["vec4 LinearTosRGB( in vec4 value ) {","\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join("\n")),n=new a.ConstNode("const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );"),r=new v.FunctionNode(["vec4 LinearToLogLuv( in vec4 value ) {","\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;","\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));","\tvec4 vResult;","\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;","\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;","\tvResult.w = fract(Le);","\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;","\treturn vResult;","}"].join("\n"),[n]),i=new a.ConstNode("const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );"),{LinearToLinear:e,sRGBToLinear:o,LinearTosRGB:t,cLogLuvM:n,LinearToLogLuv:r,cLogLuvInverseM:i,LogLuvToLinear:new v.FunctionNode(["vec4 LogLuvToLinear( in vec4 value ) {","\tfloat Le = value.z * 255.0 + value.w;","\tvec3 Xp_Y_XYZp;","\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);","\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;","\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;","\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;","\treturn vec4( max(vRGB, 0.0), 1.0 );","}"].join("\n"),[i])}),p.LINEAR_TO_LINEAR="LinearToLinear",p.SRGB_TO_LINEAR="sRGBToLinear",p.LINEAR_TO_SRGB="LinearTosRGB",p.RGBE_TO_LINEAR="RGBEToLinear",p.LINEAR_TO_RGBE="LinearToRGBE",p.LINEAR_TO_LOG_LUV="LinearToLogLuv",p.LOG_LUV_TO_LINEAR="LogLuvToLinear",p.getEncodingComponents=function(e){switch(e){case u.LinearEncoding:return["Linear"];case u.sRGBEncoding:return["sRGB"]}},p.prototype=Object.create(c.TempNode.prototype),p.prototype.constructor=p,p.prototype.nodeType="ColorSpace",p.prototype.hashProperties=["method"],p.prototype.generate=function(e,o){var t=this.input.build(e,"v4"),n=this.getType(e),r=p.Nodes[this.method],i=e.include(r);if(i===p.LINEAR_TO_LINEAR)return e.format(t,n,o);if(2===r.inputs.length){var u=this.factor.build(e,"f");return e.format(i+"( "+t+", "+u+" )",n,o)}return e.format(i+"( "+t+" )",n,o)},p.prototype.fromEncoding=function(e){var o=p.getEncodingComponents(e);this.method="LinearTo"+o[0],this.factor=o[1]},p.prototype.fromDecoding=function(e){var o=p.getEncodingComponents(e);this.method=o[0]+"ToLinear",this.factor=o[1]},p.prototype.copy=function(e){return c.TempNode.prototype.copy.call(this,e),this.input=e.input,this.method=e.method,this},p.prototype.toJSON=function(e){var o=this.getJSONNode(e);return o||((o=this.createJSONNode(e)).input=this.input.toJSON(e).uuid,o.method=this.method),o},exports.ColorSpaceNode=p;
|
@@ -1,9 +1,7 @@
|
|
1
|
-
import {
|
1
|
+
import { sRGBEncoding, LinearEncoding } from 'three';
|
2
2
|
import { TempNode } from '../core/TempNode.js';
|
3
3
|
import { ConstNode } from '../core/ConstNode.js';
|
4
|
-
import { FloatNode } from '../inputs/FloatNode.js';
|
5
4
|
import { FunctionNode } from '../core/FunctionNode.js';
|
6
|
-
import { ExpressionNode } from '../core/ExpressionNode.js';
|
7
5
|
|
8
6
|
function ColorSpaceNode(input, method) {
|
9
7
|
TempNode.call(this, 'v4');
|
@@ -12,21 +10,9 @@ function ColorSpaceNode(input, method) {
|
|
12
10
|
}
|
13
11
|
|
14
12
|
ColorSpaceNode.Nodes = function () {
|
15
|
-
// For a discussion of what this is, please read this: http://lousodrome.net/blog/light/2013/05/26/gamma-correct-and-hdr-rendering-in-a-32-bits-buffer/
|
16
13
|
var LinearToLinear = new FunctionNode(['vec4 LinearToLinear( in vec4 value ) {', ' return value;', '}'].join('\n'));
|
17
|
-
var GammaToLinear = new FunctionNode(['vec4 GammaToLinear( in vec4 value, in float gammaFactor ) {', ' return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );', '}'].join('\n'));
|
18
|
-
var LinearToGamma = new FunctionNode(['vec4 LinearToGamma( in vec4 value, in float gammaFactor ) {', ' return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );', '}'].join('\n'));
|
19
14
|
var sRGBToLinear = new FunctionNode(['vec4 sRGBToLinear( in vec4 value ) {', ' return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );', '}'].join('\n'));
|
20
|
-
var LinearTosRGB = new FunctionNode(['vec4 LinearTosRGB( in vec4 value ) {', ' return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );', '}'].join('\n'));
|
21
|
-
var RGBEToLinear = new FunctionNode(['vec4 RGBEToLinear( in vec4 value ) {', ' return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );', '}'].join('\n'));
|
22
|
-
var LinearToRGBE = new FunctionNode(['vec4 LinearToRGBE( in vec4 value ) {', ' float maxComponent = max( max( value.r, value.g ), value.b );', ' float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );', ' return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );', // return vec4( value.brg, ( 3.0 + 128.0 ) / 256.0 );
|
23
|
-
'}'].join('\n')); // reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html
|
24
|
-
|
25
|
-
var RGBMToLinear = new FunctionNode(['vec3 RGBMToLinear( in vec4 value, in float maxRange ) {', ' return vec4( value.xyz * value.w * maxRange, 1.0 );', '}'].join('\n'));
|
26
|
-
var LinearToRGBM = new FunctionNode(['vec3 LinearToRGBM( in vec4 value, in float maxRange ) {', ' float maxRGB = max( value.x, max( value.g, value.b ) );', ' float M = clamp( maxRGB / maxRange, 0.0, 1.0 );', ' M = ceil( M * 255.0 ) / 255.0;', ' return vec4( value.rgb / ( M * maxRange ), M );', '}'].join('\n')); // reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html
|
27
|
-
|
28
|
-
var RGBDToLinear = new FunctionNode(['vec3 RGBDToLinear( in vec4 value, in float maxRange ) {', ' return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );', '}'].join('\n'));
|
29
|
-
var LinearToRGBD = new FunctionNode(['vec3 LinearToRGBD( in vec4 value, in float maxRange ) {', ' float maxRGB = max( value.x, max( value.g, value.b ) );', ' float D = max( maxRange / maxRGB, 1.0 );', ' D = clamp( floor( D ) / 255.0, 0.0, 1.0 );', ' return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );', '}'].join('\n')); // LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html
|
15
|
+
var LinearTosRGB = new FunctionNode(['vec4 LinearTosRGB( in vec4 value ) {', ' return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );', '}'].join('\n')); // LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html
|
30
16
|
// M matrix, for encoding
|
31
17
|
|
32
18
|
var cLogLuvM = new ConstNode('const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );');
|
@@ -36,16 +22,8 @@ ColorSpaceNode.Nodes = function () {
|
|
36
22
|
var LogLuvToLinear = new FunctionNode(['vec4 LogLuvToLinear( in vec4 value ) {', ' float Le = value.z * 255.0 + value.w;', ' vec3 Xp_Y_XYZp;', ' Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);', ' Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;', ' Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;', ' vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;', ' return vec4( max(vRGB, 0.0), 1.0 );', '}'].join('\n'), [cLogLuvInverseM]);
|
37
23
|
return {
|
38
24
|
LinearToLinear: LinearToLinear,
|
39
|
-
GammaToLinear: GammaToLinear,
|
40
|
-
LinearToGamma: LinearToGamma,
|
41
25
|
sRGBToLinear: sRGBToLinear,
|
42
26
|
LinearTosRGB: LinearTosRGB,
|
43
|
-
RGBEToLinear: RGBEToLinear,
|
44
|
-
LinearToRGBE: LinearToRGBE,
|
45
|
-
RGBMToLinear: RGBMToLinear,
|
46
|
-
LinearToRGBM: LinearToRGBM,
|
47
|
-
RGBDToLinear: RGBDToLinear,
|
48
|
-
LinearToRGBD: LinearToRGBD,
|
49
27
|
cLogLuvM: cLogLuvM,
|
50
28
|
LinearToLogLuv: LinearToLogLuv,
|
51
29
|
cLogLuvInverseM: cLogLuvInverseM,
|
@@ -54,16 +32,10 @@ ColorSpaceNode.Nodes = function () {
|
|
54
32
|
}();
|
55
33
|
|
56
34
|
ColorSpaceNode.LINEAR_TO_LINEAR = 'LinearToLinear';
|
57
|
-
ColorSpaceNode.GAMMA_TO_LINEAR = 'GammaToLinear';
|
58
|
-
ColorSpaceNode.LINEAR_TO_GAMMA = 'LinearToGamma';
|
59
35
|
ColorSpaceNode.SRGB_TO_LINEAR = 'sRGBToLinear';
|
60
36
|
ColorSpaceNode.LINEAR_TO_SRGB = 'LinearTosRGB';
|
61
37
|
ColorSpaceNode.RGBE_TO_LINEAR = 'RGBEToLinear';
|
62
38
|
ColorSpaceNode.LINEAR_TO_RGBE = 'LinearToRGBE';
|
63
|
-
ColorSpaceNode.RGBM_TO_LINEAR = 'RGBMToLinear';
|
64
|
-
ColorSpaceNode.LINEAR_TO_RGBM = 'LinearToRGBM';
|
65
|
-
ColorSpaceNode.RGBD_TO_LINEAR = 'RGBDToLinear';
|
66
|
-
ColorSpaceNode.LINEAR_TO_RGBD = 'LinearToRGBD';
|
67
39
|
ColorSpaceNode.LINEAR_TO_LOG_LUV = 'LinearToLogLuv';
|
68
40
|
ColorSpaceNode.LOG_LUV_TO_LINEAR = 'LogLuvToLinear';
|
69
41
|
|
@@ -74,21 +46,6 @@ ColorSpaceNode.getEncodingComponents = function (encoding) {
|
|
74
46
|
|
75
47
|
case sRGBEncoding:
|
76
48
|
return ['sRGB'];
|
77
|
-
|
78
|
-
case RGBEEncoding:
|
79
|
-
return ['RGBE'];
|
80
|
-
|
81
|
-
case RGBM7Encoding:
|
82
|
-
return ['RGBM', new FloatNode(7.0).setReadonly(true)];
|
83
|
-
|
84
|
-
case RGBM16Encoding:
|
85
|
-
return ['RGBM', new FloatNode(16.0).setReadonly(true)];
|
86
|
-
|
87
|
-
case RGBDEncoding:
|
88
|
-
return ['RGBD', new FloatNode(256.0).setReadonly(true)];
|
89
|
-
|
90
|
-
case GammaEncoding:
|
91
|
-
return ['Gamma', new ExpressionNode('float( GAMMA_FACTOR )', 'f')];
|
92
49
|
}
|
93
50
|
};
|
94
51
|
|
package/package.json
CHANGED
@@ -9,8 +9,7 @@ const GammaCorrectionShader = {
|
|
9
9
|
}
|
10
10
|
},
|
11
11
|
vertexShader: ['varying vec2 vUv;', 'void main() {', ' vUv = uv;', ' gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );', '}'].join('\n'),
|
12
|
-
fragmentShader: ['uniform sampler2D tDiffuse;', 'varying vec2 vUv;', 'void main() {', ' vec4 tex = texture2D( tDiffuse, vUv );', ' gl_FragColor = LinearTosRGB( tex );',
|
13
|
-
'}'].join('\n')
|
12
|
+
fragmentShader: ['uniform sampler2D tDiffuse;', 'varying vec2 vUv;', 'void main() {', ' vec4 tex = texture2D( tDiffuse, vUv );', ' gl_FragColor = LinearTosRGB( tex );', '}'].join('\n')
|
14
13
|
};
|
15
14
|
|
16
15
|
export { GammaCorrectionShader };
|