@pixiv/three-vrm 3.0.0-beta.1 → 3.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  /*! (c) 2019-2024 pixiv Inc. - https://github.com/pixiv/three-vrm/blob/release/LICENSE */
2
- "use strict";var z=Object.create;var M=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var Z=(e,t)=>{for(var i in t)M(e,i,{get:t[i],enumerable:!0})},W=(e,t,i,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of j(t))!K.call(e,l)&&l!==i&&M(e,l,{get:()=>t[l],enumerable:!(a=B(t,l))||a.enumerable});return e};var h=(e,t,i)=>(i=e!=null?z(q(e)):{},W(t||!e||!e.__esModule?M(i,"default",{value:e,enumerable:!0}):i,e)),$=e=>W(M({},"__esModule",{value:!0}),e);var _e={};Z(_e,{MToonAnimatedUVNode:()=>D,MToonLightingModel:()=>k,MToonNodeMaterial:()=>Ce});module.exports=$(_e);var I=h(require("three"),1),n=h(require("three/addons/nodes/Nodes.js"),1),r=h(require("three/addons/nodes/Nodes.js"),1),s=h(require("three/addons/nodes/Nodes.js"),1),d=h(require("three/addons/nodes/Nodes.js"),1),m=h(require("three"),1),o=h(require("three/addons/nodes/Nodes.js"),1),c=h(require("three/addons/nodes/Nodes.js"),1);var O=parseInt(I.REVISION,10);O<161&&console.warn(`MToonNodeMaterial requires Three.js r161 or higher (You are using r${O}). This would not work correctly.`);var G=r.materialReference("color","color"),J=r.materialReference("map","texture"),Q=r.materialReference("normalMap","texture"),ee=r.materialReference("normalScale","vec2"),te=r.materialReference("emissive","color"),ie=r.materialReference("emissiveIntensity","float"),oe=r.materialReference("emissiveMap","texture"),re=r.materialReference("shadeColorFactor","color"),ae=r.materialReference("shadingShiftFactor","float"),U=r.materialReference("shadeMultiplyTexture","texture"),se=r.materialReference("shadeMultiplyTextureScale","float"),le=r.materialReference("shadingToonyFactor","float"),ne=r.materialReference("rimLightingMixFactor","float"),de=r.materialReference("rimMultiplyTexture","texture"),me=r.materialReference("matcapFactor","color"),ue=r.materialReference("matcapTexture","texture"),he=r.materialReference("parametricRimColorFactor","color"),ce=r.materialReference("parametricRimLiftFactor","float"),pe=r.materialReference("parametricRimFresnelPowerFactor","float"),Ne=r.materialReference("outlineWidthMultiplyTexture","texture"),fe=r.materialReference("outlineWidthFactor","float"),b=r.materialReference("outlineColorFactor","color"),ve=r.materialReference("outlineLightingMixFactor","float"),ge=r.materialReference("uvAnimationMaskTexture","texture"),Me=r.materialReference("uvAnimationScrollXOffset","float"),xe=r.materialReference("uvAnimationScrollYOffset","float"),Re=r.materialReference("uvAnimationRotationPhase","float"),D=class extends n.TempNode{constructor(e){super("vec2"),this.hasMaskTexture=e}setup(){let e=1;this.hasMaskTexture&&(e=n.vec4(ge).context({getUV:()=>n.uv()}).r);let t=n.uv(),i=Re.mul(e),a=n.cos(i),l=n.sin(i);t=t.sub(n.vec2(.5,.5)),t=t.mul(n.mat2(a,l,l.negate(),a)),t=t.add(n.vec2(.5,.5));let u=n.vec2(Me,xe).mul(e);return t=t.add(u),t.temp("AnimatedUV")}},H=d.nodeImmutable(d.PropertyNode,"vec3").temp("ShadeColor"),Y=d.nodeImmutable(d.PropertyNode,"float").temp("ShadingShift"),X=d.nodeImmutable(d.PropertyNode,"float").temp("ShadingToony"),x=d.nodeImmutable(d.PropertyNode,"float").temp("RimLightingMix"),R=d.nodeImmutable(d.PropertyNode,"vec3").temp("RimMultiply"),T=d.nodeImmutable(d.PropertyNode,"vec3").temp("matcap"),S=d.nodeImmutable(d.PropertyNode,"vec3").temp("ParametricRim"),Te=s.tslFn(({a:e,b:t,t:i})=>{let a=i.sub(e),l=t.sub(e);return a.div(l).clamp()}),Se=s.tslFn(({dotNL:e})=>{let i=s.float(1).sub(X),a=e.add(Y);return a=Te({a:i.negate(),b:i,t:a}),a=a.mul(1),a}),Fe=s.tslFn(({shading:e,lightColor:t})=>{let i=s.mix(H,s.diffuseColor,e);return t.mul(s.BRDF_Lambert({diffuseColor:i}))}),k=class extends s.LightingModel{constructor(){super()}direct({lightDirection:e,lightColor:t,reflectedLight:i}){let a=s.transformedNormalView.dot(e).clamp(-1,1),l=Se({dotNL:a});i.directDiffuse.assign(i.directDiffuse.add(Fe({shading:l,lightColor:t}))),i.directSpecular.assign(i.directSpecular.add(S.add(T).mul(R).mul(s.mix(s.vec3(0),s.BRDF_Lambert({diffuseColor:t}),x))))}indirectDiffuse({irradiance:e,reflectedLight:t}){t.indirectDiffuse.assign(t.indirectDiffuse.add(e.mul(s.BRDF_Lambert({diffuseColor:s.diffuseColor}))))}indirectSpecular({reflectedLight:e}){e.indirectSpecular.assign(e.indirectSpecular.add(S.add(T).mul(R).mul(s.mix(s.vec3(1),s.vec3(0),x))))}},v={None:"none",WorldCoordinates:"worldCoordinates",ScreenCoordinates:"screenCoordinates"},ye=c.tslFn(({parametricRimLift:e,parametricRimFresnelPower:t,parametricRimColor:i})=>{let a=c.modelViewPosition.normalize(),l=c.transformedNormalView.dot(a.negate());return c.float(1).sub(l).add(e).clamp().pow(t).mul(i)}),Ce=class extends o.NodeMaterial{customProgramCacheKey(){let e=super.customProgramCacheKey();return e+=`isOutline:${this.isOutline},`,e}get isMToonNodeMaterial(){return!0}constructor(e={}){super(),e.transparentWithZWrite&&(e.depthWrite=!0),delete e.transparentWithZWrite,delete e.giEqualizationFactor,delete e.v0CompatShade,delete e.debugMode,this.emissiveNode=null,this.lights=!0,this.color=new m.Color(1,1,1),this.map=null,this.emissive=new m.Color(0,0,0),this.emissiveIntensity=1,this.emissiveMap=null,this.normalMap=null,this.normalScale=new m.Vector2(1,1),this.shadeColorFactor=new m.Color(0,0,0),this.shadeMultiplyTexture=null,this.shadingShiftFactor=0,this.shadingShiftTexture=null,this.shadingShiftTextureScale=1,this.shadingToonyFactor=.9,this.rimLightingMixFactor=1,this.rimMultiplyTexture=null,this.matcapFactor=new m.Color(1,1,1),this.matcapTexture=null,this.parametricRimColorFactor=new m.Color(0,0,0),this.parametricRimLiftFactor=0,this.parametricRimFresnelPowerFactor=5,this.outlineWidthMode=v.None,this.outlineWidthMultiplyTexture=null,this.outlineWidthFactor=0,this.outlineColorFactor=new m.Color(0,0,0),this.outlineLightingMixFactor=1,this.uvAnimationScrollXSpeedFactor=0,this.uvAnimationScrollYSpeedFactor=0,this.uvAnimationRotationSpeedFactor=0,this.uvAnimationMaskTexture=null,this.shadeColorNode=null,this.shadingShiftNode=null,this.shadingToonyNode=null,this.rimLightingMixNode=null,this.rimMultiplyNode=null,this.matcapNode=null,this.parametricRimColorNode=null,this.parametricRimLiftNode=null,this.parametricRimFresnelPowerNode=null,this.uvAnimationScrollXOffset=0,this.uvAnimationScrollYOffset=0,this.uvAnimationRotationPhase=0,this.isOutline=!1,this._animatedUVNode=null,this.setValues(e)}setupLightingModel(){return new k}setup(e){var t;this._animatedUVNode=new D((t=this.uvAnimationMaskTexture&&this.uvAnimationMaskTexture.isTexture===!0)!=null?t:!1),super.setup(e)}setupDiffuseColor(e){let t=null;if(this.colorNode==null){if(t=G,this.map&&this.map.isTexture===!0){let i=J.context({getUV:()=>this._animatedUVNode});t=t.mul(i)}this.colorNode=t}this.vertexColors===!0&&e.geometry.hasAttribute("color")&&(console.warn("MToonNodeMaterial: MToon ignores vertex colors. Consider using a model without vertex colors instead."),this.vertexColors=!1),super.setupDiffuseColor(e),parseInt(m.REVISION,10)<166&&this.transparent===!1&&this.blending===m.NormalBlending&&this.alphaToCoverage===!1&&o.diffuseColor.a.assign(1),this.colorNode===t&&(this.colorNode=null)}setupVariants({stack:e}){e.assign(H,this._setupShadeColorNode()),e.assign(Y,this._setupShadingShiftNode()),e.assign(X,this._setupShadingToonyNode()),e.assign(x,this._setupRimLightingMixNode()),e.assign(R,this._setupRimMultiplyNode()),e.assign(T,this._setupMatcapNode()),e.assign(S,this._setupParametricRimNode())}setupNormal(e){let t=this.normalNode;if(this.normalNode==null){if(this.normalNode=o.materialNormal,this.normalMap&&this.normalMap.isTexture===!0){let i=Q.context({getUV:()=>this._animatedUVNode});this.normalNode=i.normalMap(ee)}this.isOutline&&(this.normalNode=this.normalNode.negate())}super.setupNormal(e),this.normalNode=t}setupLighting(e){let t=null;if(this.emissiveNode==null){if(t=te.mul(ie),this.emissiveMap&&this.emissiveMap.isTexture===!0){let a=oe.context({getUV:()=>this._animatedUVNode});t=t.mul(a)}this.emissiveNode=t}let i=super.setupLighting(e);return this.emissiveNode===t&&(this.emissiveNode=null),i}setupOutput(e,t){return this.isOutline&&this.outlineWidthMode!==v.None&&(t=o.vec4(o.mix(b,t.xyz.mul(b),ve),t.w)),super.setupOutput(e,t)}setupPosition(e){var t,i;let a=this.positionNode;if(this.isOutline&&this.outlineWidthMode!==v.None){(t=this.positionNode)!=null||(this.positionNode=o.positionLocal);let u=o.normalLocal.normalize(),p=fe;if(this.outlineWidthMultiplyTexture&&this.outlineWidthMultiplyTexture.isTexture===!0){let N=Ne.context({getUV:()=>this._animatedUVNode});p=p.mul(N)}let g=o.length(o.modelNormalMatrix.mul(u)),f=p.mul(g).mul(u);if(this.outlineWidthMode===v.WorldCoordinates)this.positionNode=this.positionNode.add(f);else if(this.outlineWidthMode===v.ScreenCoordinates){let N=o.cameraProjectionMatrix.element(1).element(1);this.positionNode=this.positionNode.add(f.div(N).mul(o.positionView.z.negate()))}(i=this.positionNode)!=null||(this.positionNode=o.positionLocal)}let l=super.setupPosition(e);return l.z.add(l.w.mul(1e-6)),this.positionNode=a,l}copy(e){var t,i,a,l,u,p,g,f,N,F,y,C,_,L,w,P,A,V,E;return this.color.copy(e.color),this.map=(t=e.map)!=null?t:null,this.emissive.copy(e.emissive),this.emissiveIntensity=e.emissiveIntensity,this.emissiveMap=(i=e.emissiveMap)!=null?i:null,this.normalMap=(a=e.normalMap)!=null?a:null,this.normalScale.copy(e.normalScale),this.shadeColorFactor.copy(e.shadeColorFactor),this.shadeMultiplyTexture=(l=e.shadeMultiplyTexture)!=null?l:null,this.shadingShiftFactor=e.shadingShiftFactor,this.shadingShiftTexture=(u=e.shadingShiftTexture)!=null?u:null,this.shadingShiftTextureScale=e.shadingShiftTextureScale,this.shadingToonyFactor=e.shadingToonyFactor,this.rimLightingMixFactor=e.rimLightingMixFactor,this.rimMultiplyTexture=(p=e.rimMultiplyTexture)!=null?p:null,this.matcapFactor.copy(e.matcapFactor),this.matcapTexture=(g=e.matcapTexture)!=null?g:null,this.parametricRimColorFactor.copy(e.parametricRimColorFactor),this.parametricRimLiftFactor=e.parametricRimLiftFactor,this.parametricRimFresnelPowerFactor=e.parametricRimFresnelPowerFactor,this.outlineWidthMode=e.outlineWidthMode,this.outlineWidthMultiplyTexture=(f=e.outlineWidthMultiplyTexture)!=null?f:null,this.outlineWidthFactor=e.outlineWidthFactor,this.outlineColorFactor.copy(e.outlineColorFactor),this.outlineLightingMixFactor=e.outlineLightingMixFactor,this.uvAnimationScrollXSpeedFactor=e.uvAnimationScrollXSpeedFactor,this.uvAnimationScrollYSpeedFactor=e.uvAnimationScrollYSpeedFactor,this.uvAnimationRotationSpeedFactor=e.uvAnimationRotationSpeedFactor,this.uvAnimationMaskTexture=(N=e.uvAnimationMaskTexture)!=null?N:null,this.shadeColorNode=(F=e.shadeColorNode)!=null?F:null,this.shadingShiftNode=(y=e.shadingShiftNode)!=null?y:null,this.shadingToonyNode=(C=e.shadingToonyNode)!=null?C:null,this.rimLightingMixNode=(_=e.rimLightingMixNode)!=null?_:null,this.rimMultiplyNode=(L=e.rimMultiplyNode)!=null?L:null,this.matcapNode=(w=e.matcapNode)!=null?w:null,this.parametricRimColorNode=(P=e.parametricRimColorNode)!=null?P:null,this.parametricRimLiftNode=(A=e.parametricRimLiftNode)!=null?A:null,this.parametricRimFresnelPowerNode=(V=e.parametricRimFresnelPowerNode)!=null?V:null,this.isOutline=(E=e.isOutline)!=null?E:null,super.copy(e)}update(e){this.uvAnimationScrollXOffset+=e*this.uvAnimationScrollXSpeedFactor,this.uvAnimationScrollYOffset+=e*this.uvAnimationScrollYSpeedFactor,this.uvAnimationRotationPhase+=e*this.uvAnimationRotationSpeedFactor}_setupShadeColorNode(){if(this.shadeColorNode!=null)return o.vec3(this.shadeColorNode);let e=re;if(this.shadeMultiplyTexture&&this.shadeMultiplyTexture.isTexture===!0){let t=U.context({getUV:()=>this._animatedUVNode});e=e.mul(t)}return e}_setupShadingShiftNode(){if(this.shadingShiftNode!=null)return o.float(this.shadingShiftNode);let e=ae;if(this.shadingShiftTexture&&this.shadingShiftTexture.isTexture===!0){let t=U.context({getUV:()=>this._animatedUVNode});e=e.add(t.mul(se))}return e}_setupShadingToonyNode(){return this.shadingToonyNode!=null?o.float(this.shadingToonyNode):le}_setupRimLightingMixNode(){return this.rimLightingMixNode!=null?o.float(this.rimLightingMixNode):ne}_setupRimMultiplyNode(){return this.rimMultiplyNode!=null?o.vec3(this.rimMultiplyNode):this.rimMultiplyTexture&&this.rimMultiplyTexture.isTexture===!0?de.context({getUV:()=>this._animatedUVNode}):o.vec3(1)}_setupMatcapNode(){return this.matcapNode!=null?o.vec3(this.matcapNode):this.matcapTexture&&this.matcapTexture.isTexture===!0?ue.context({getUV:()=>o.matcapUV.mul(1,-1).add(0,1)}).mul(me):o.vec3(0)}_setupParametricRimNode(){let e=this.parametricRimColorNode!=null?o.vec3(this.parametricRimColorNode):he,t=this.parametricRimLiftNode!=null?o.float(this.parametricRimLiftNode):ce,i=this.parametricRimFresnelPowerNode!=null?o.float(this.parametricRimFresnelPowerNode):pe;return ye({parametricRimLift:t,parametricRimFresnelPower:i,parametricRimColor:e})}};
2
+ "use strict";var X=Object.create;var T=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var K=(t,e)=>{for(var o in e)T(t,o,{get:e[o],enumerable:!0})},A=(t,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of B(e))!q.call(t,n)&&n!==o&&T(t,n,{get:()=>e[n],enumerable:!(a=z(e,n))||a.enumerable});return t};var d=(t,e,o)=>(o=t!=null?X(j(t)):{},A(e||!t||!t.__esModule?T(o,"default",{value:t,enumerable:!0}):o,t)),Z=t=>A(T({},"__esModule",{value:!0}),t);var Ft={};K(Ft,{MToonAnimatedUVNode:()=>b,MToonLightingModel:()=>Y,MToonNodeMaterial:()=>St});module.exports=Z(Ft);var U=d(require("three"),1),s=d(require("three/webgpu"),1),r=d(require("three/webgpu"),1),l=d(require("three/webgpu"),1),m=d(require("three/webgpu"),1),i=d(require("three/webgpu"),1),h=d(require("three/webgpu"),1);var V=parseInt(U.REVISION,10);V<167&&console.warn(`MToonNodeMaterial requires Three.js r167 or higher (You are using r${V}). This would not work correctly.`);var $=r.materialReference("color","color"),G=r.materialReference("map","texture"),J=r.materialReference("normalMap","texture"),Q=r.materialReference("normalScale","vec2"),tt=r.materialReference("emissive","color"),et=r.materialReference("emissiveIntensity","float"),it=r.materialReference("emissiveMap","texture"),ot=r.materialReference("shadeColorFactor","color"),rt=r.materialReference("shadingShiftFactor","float"),W=r.materialReference("shadeMultiplyTexture","texture"),at=r.materialReference("shadeMultiplyTextureScale","float"),lt=r.materialReference("shadingToonyFactor","float"),nt=r.materialReference("rimLightingMixFactor","float"),st=r.materialReference("rimMultiplyTexture","texture"),mt=r.materialReference("matcapFactor","color"),ut=r.materialReference("matcapTexture","texture"),ht=r.materialReference("parametricRimColorFactor","color"),dt=r.materialReference("parametricRimLiftFactor","float"),ct=r.materialReference("parametricRimFresnelPowerFactor","float"),pt=r.materialReference("outlineWidthMultiplyTexture","texture"),Et=r.materialReference("outlineWidthFactor","float"),O=r.materialReference("outlineColorFactor","color"),ft=r.materialReference("outlineLightingMixFactor","float"),Rt=r.materialReference("uvAnimationMaskTexture","texture"),Tt=r.materialReference("uvAnimationScrollXOffset","float"),vt=r.materialReference("uvAnimationScrollYOffset","float"),Nt=r.materialReference("uvAnimationRotationPhase","float"),b=class extends s.TempNode{constructor(t){super("vec2"),this.hasMaskTexture=t}setup(){let t=1;this.hasMaskTexture&&(t=s.vec4(Rt).context({getUV:()=>s.uv()}).r);let e=s.uv(),o=Nt.mul(t),a=s.cos(o),n=s.sin(o);e=e.sub(s.vec2(.5,.5)),e=e.mul(s.mat2(a,n,n.negate(),a)),e=e.add(s.vec2(.5,.5));let u=s.vec2(Tt,vt).mul(t);return e=e.add(u),e.temp("AnimatedUV")}},I=m.nodeImmutable(m.PropertyNode,"vec3").temp("ShadeColor"),D=m.nodeImmutable(m.PropertyNode,"float").temp("ShadingShift"),k=m.nodeImmutable(m.PropertyNode,"float").temp("ShadingToony"),v=m.nodeImmutable(m.PropertyNode,"float").temp("RimLightingMix"),N=m.nodeImmutable(m.PropertyNode,"vec3").temp("RimMultiply"),g=m.nodeImmutable(m.PropertyNode,"vec3").temp("matcap"),H=m.nodeImmutable(m.PropertyNode,"vec3").temp("ParametricRim"),gt=l.tslFn(({a:t,b:e,t:o})=>{let a=o.sub(t),n=e.sub(t);return a.div(n).clamp()}),Ht=l.tslFn(({dotNL:t})=>{let o=l.float(1).sub(k),a=t.add(D);return a=gt({a:o.negate(),b:o,t:a}),a=a.mul(1),a}),Mt=l.tslFn(({shading:t,lightColor:e})=>{let o=l.mix(I,l.diffuseColor,t);return e.mul(l.BRDF_Lambert({diffuseColor:o}))}),Y=class extends l.LightingModel{constructor(){super()}direct({lightDirection:t,lightColor:e,reflectedLight:o}){let a=l.transformedNormalView.dot(t).clamp(-1,1),n=Ht({dotNL:a});o.directDiffuse.assign(o.directDiffuse.add(Mt({shading:n,lightColor:e}))),o.directSpecular.assign(o.directSpecular.add(H.add(g).mul(N).mul(l.mix(l.vec3(0),l.BRDF_Lambert({diffuseColor:e}),v))))}indirect(t){this.indirectDiffuse(t),this.indirectSpecular(t)}indirectDiffuse({irradiance:t,reflectedLight:e}){e.indirectDiffuse.assign(e.indirectDiffuse.add(t.mul(l.BRDF_Lambert({diffuseColor:l.diffuseColor}))))}indirectSpecular({reflectedLight:t}){t.indirectSpecular.assign(t.indirectSpecular.add(H.add(g).mul(N).mul(l.mix(l.vec3(1),l.vec3(0),v))))}},f={None:"none",WorldCoordinates:"worldCoordinates",ScreenCoordinates:"screenCoordinates"},xt=h.tslFn(({parametricRimLift:t,parametricRimFresnelPower:e,parametricRimColor:o})=>{let a=h.modelViewPosition.normalize(),n=h.transformedNormalView.dot(a.negate());return h.float(1).sub(n).add(t).clamp().pow(e).mul(o)}),St=class extends i.NodeMaterial{customProgramCacheKey(){let t=super.customProgramCacheKey();return t+=`isOutline:${this.isOutline},`,t}get isMToonNodeMaterial(){return!0}constructor(t={}){super(),t.transparentWithZWrite&&(t.depthWrite=!0),delete t.transparentWithZWrite,delete t.giEqualizationFactor,delete t.v0CompatShade,delete t.debugMode,this.emissiveNode=null,this.lights=!0,this.color=new i.Color(1,1,1),this.map=null,this.emissive=new i.Color(0,0,0),this.emissiveIntensity=1,this.emissiveMap=null,this.normalMap=null,this.normalScale=new i.Vector2(1,1),this.shadeColorFactor=new i.Color(0,0,0),this.shadeMultiplyTexture=null,this.shadingShiftFactor=0,this.shadingShiftTexture=null,this.shadingShiftTextureScale=1,this.shadingToonyFactor=.9,this.rimLightingMixFactor=1,this.rimMultiplyTexture=null,this.matcapFactor=new i.Color(1,1,1),this.matcapTexture=null,this.parametricRimColorFactor=new i.Color(0,0,0),this.parametricRimLiftFactor=0,this.parametricRimFresnelPowerFactor=5,this.outlineWidthMode=f.None,this.outlineWidthMultiplyTexture=null,this.outlineWidthFactor=0,this.outlineColorFactor=new i.Color(0,0,0),this.outlineLightingMixFactor=1,this.uvAnimationScrollXSpeedFactor=0,this.uvAnimationScrollYSpeedFactor=0,this.uvAnimationRotationSpeedFactor=0,this.uvAnimationMaskTexture=null,this.shadeColorNode=null,this.shadingShiftNode=null,this.shadingToonyNode=null,this.rimLightingMixNode=null,this.rimMultiplyNode=null,this.matcapNode=null,this.parametricRimColorNode=null,this.parametricRimLiftNode=null,this.parametricRimFresnelPowerNode=null,this.uvAnimationScrollXOffset=0,this.uvAnimationScrollYOffset=0,this.uvAnimationRotationPhase=0,this.isOutline=!1,this._animatedUVNode=null,this.setValues(t)}setupLightingModel(){return new Y}setup(t){var e;this._animatedUVNode=new b((e=this.uvAnimationMaskTexture&&this.uvAnimationMaskTexture.isTexture===!0)!=null?e:!1),super.setup(t)}setupDiffuseColor(t){let e=null;if(this.colorNode==null){if(e=$,this.map&&this.map.isTexture===!0){let o=G.context({getUV:()=>this._animatedUVNode});e=e.mul(o)}this.colorNode=e}this.vertexColors===!0&&t.geometry.hasAttribute("color")&&(console.warn("MToonNodeMaterial: MToon ignores vertex colors. Consider using a model without vertex colors instead."),this.vertexColors=!1),super.setupDiffuseColor(t),parseInt(i.REVISION,10)<166&&this.transparent===!1&&this.blending===i.NormalBlending&&this.alphaToCoverage===!1&&i.diffuseColor.a.assign(1),this.colorNode===e&&(this.colorNode=null)}setupVariants(){I.assign(this._setupShadeColorNode()),D.assign(this._setupShadingShiftNode()),k.assign(this._setupShadingToonyNode()),v.assign(this._setupRimLightingMixNode()),N.assign(this._setupRimMultiplyNode()),g.assign(this._setupMatcapNode()),H.assign(this._setupParametricRimNode())}setupNormal(t){let e=this.normalNode;if(this.normalNode==null){if(this.normalNode=i.materialNormal,this.normalMap&&this.normalMap.isTexture===!0){let o=J.context({getUV:()=>this._animatedUVNode});this.normalNode=o.normalMap(Q)}this.isOutline&&(this.normalNode=this.normalNode.negate())}super.setupNormal(t),this.normalNode=e}setupLighting(t){let e=null;if(this.emissiveNode==null){if(e=tt.mul(et),this.emissiveMap&&this.emissiveMap.isTexture===!0){let a=it.context({getUV:()=>this._animatedUVNode});e=e.mul(a)}this.emissiveNode=e}let o=super.setupLighting(t);return this.emissiveNode===e&&(this.emissiveNode=null),o}setupOutput(t,e){return this.isOutline&&this.outlineWidthMode!==f.None&&(e=i.vec4(i.mix(O,e.xyz.mul(O),ft),e.w)),super.setupOutput(t,e)}setupPosition(t){var e,o;let a=this.positionNode;if(this.isOutline&&this.outlineWidthMode!==f.None){(e=this.positionNode)!=null||(this.positionNode=i.positionLocal);let u=i.normalLocal.normalize(),c=Et;if(this.outlineWidthMultiplyTexture&&this.outlineWidthMultiplyTexture.isTexture===!0){let p=pt.context({getUV:()=>this._animatedUVNode});c=c.mul(p)}let R=i.length(i.modelNormalMatrix.mul(u)),E=c.mul(R).mul(u);if(this.outlineWidthMode===f.WorldCoordinates)this.positionNode=this.positionNode.add(E);else if(this.outlineWidthMode===f.ScreenCoordinates){let p=i.cameraProjectionMatrix.element(1).element(1);this.positionNode=this.positionNode.add(E.div(p).mul(i.positionView.z.negate()))}(o=this.positionNode)!=null||(this.positionNode=i.positionLocal)}let n=super.setupPosition(t);return n.z.add(n.w.mul(1e-6)),this.positionNode=a,n}copy(t){var e,o,a,n,u,c,R,E,p,M,x,S,F,y,C,_,L,w,P;return this.color.copy(t.color),this.map=(e=t.map)!=null?e:null,this.emissive.copy(t.emissive),this.emissiveIntensity=t.emissiveIntensity,this.emissiveMap=(o=t.emissiveMap)!=null?o:null,this.normalMap=(a=t.normalMap)!=null?a:null,this.normalScale.copy(t.normalScale),this.shadeColorFactor.copy(t.shadeColorFactor),this.shadeMultiplyTexture=(n=t.shadeMultiplyTexture)!=null?n:null,this.shadingShiftFactor=t.shadingShiftFactor,this.shadingShiftTexture=(u=t.shadingShiftTexture)!=null?u:null,this.shadingShiftTextureScale=t.shadingShiftTextureScale,this.shadingToonyFactor=t.shadingToonyFactor,this.rimLightingMixFactor=t.rimLightingMixFactor,this.rimMultiplyTexture=(c=t.rimMultiplyTexture)!=null?c:null,this.matcapFactor.copy(t.matcapFactor),this.matcapTexture=(R=t.matcapTexture)!=null?R:null,this.parametricRimColorFactor.copy(t.parametricRimColorFactor),this.parametricRimLiftFactor=t.parametricRimLiftFactor,this.parametricRimFresnelPowerFactor=t.parametricRimFresnelPowerFactor,this.outlineWidthMode=t.outlineWidthMode,this.outlineWidthMultiplyTexture=(E=t.outlineWidthMultiplyTexture)!=null?E:null,this.outlineWidthFactor=t.outlineWidthFactor,this.outlineColorFactor.copy(t.outlineColorFactor),this.outlineLightingMixFactor=t.outlineLightingMixFactor,this.uvAnimationScrollXSpeedFactor=t.uvAnimationScrollXSpeedFactor,this.uvAnimationScrollYSpeedFactor=t.uvAnimationScrollYSpeedFactor,this.uvAnimationRotationSpeedFactor=t.uvAnimationRotationSpeedFactor,this.uvAnimationMaskTexture=(p=t.uvAnimationMaskTexture)!=null?p:null,this.shadeColorNode=(M=t.shadeColorNode)!=null?M:null,this.shadingShiftNode=(x=t.shadingShiftNode)!=null?x:null,this.shadingToonyNode=(S=t.shadingToonyNode)!=null?S:null,this.rimLightingMixNode=(F=t.rimLightingMixNode)!=null?F:null,this.rimMultiplyNode=(y=t.rimMultiplyNode)!=null?y:null,this.matcapNode=(C=t.matcapNode)!=null?C:null,this.parametricRimColorNode=(_=t.parametricRimColorNode)!=null?_:null,this.parametricRimLiftNode=(L=t.parametricRimLiftNode)!=null?L:null,this.parametricRimFresnelPowerNode=(w=t.parametricRimFresnelPowerNode)!=null?w:null,this.isOutline=(P=t.isOutline)!=null?P:null,super.copy(t)}update(t){this.uvAnimationScrollXOffset+=t*this.uvAnimationScrollXSpeedFactor,this.uvAnimationScrollYOffset+=t*this.uvAnimationScrollYSpeedFactor,this.uvAnimationRotationPhase+=t*this.uvAnimationRotationSpeedFactor}_setupShadeColorNode(){if(this.shadeColorNode!=null)return i.vec3(this.shadeColorNode);let t=ot;if(this.shadeMultiplyTexture&&this.shadeMultiplyTexture.isTexture===!0){let e=W.context({getUV:()=>this._animatedUVNode});t=t.mul(e)}return t}_setupShadingShiftNode(){if(this.shadingShiftNode!=null)return i.float(this.shadingShiftNode);let t=rt;if(this.shadingShiftTexture&&this.shadingShiftTexture.isTexture===!0){let e=W.context({getUV:()=>this._animatedUVNode});t=t.add(e.mul(at))}return t}_setupShadingToonyNode(){return this.shadingToonyNode!=null?i.float(this.shadingToonyNode):lt}_setupRimLightingMixNode(){return this.rimLightingMixNode!=null?i.float(this.rimLightingMixNode):nt}_setupRimMultiplyNode(){return this.rimMultiplyNode!=null?i.vec3(this.rimMultiplyNode):this.rimMultiplyTexture&&this.rimMultiplyTexture.isTexture===!0?st.context({getUV:()=>this._animatedUVNode}):i.vec3(1)}_setupMatcapNode(){return this.matcapNode!=null?i.vec3(this.matcapNode):this.matcapTexture&&this.matcapTexture.isTexture===!0?ut.context({getUV:()=>i.matcapUV.mul(1,-1).add(0,1)}).mul(mt):i.vec3(0)}_setupParametricRimNode(){let t=this.parametricRimColorNode!=null?i.vec3(this.parametricRimColorNode):ht,e=this.parametricRimLiftNode!=null?i.float(this.parametricRimLiftNode):dt,o=this.parametricRimFresnelPowerNode!=null?i.float(this.parametricRimFresnelPowerNode):ct;return xt({parametricRimLift:e,parametricRimFresnelPower:o,parametricRimColor:t})}};
3
3
  /*!
4
- * @pixiv/three-vrm-materials-mtoon v3.0.0-beta.1
4
+ * @pixiv/three-vrm-materials-mtoon v3.0.0-beta.2
5
5
  * MToon (toon material) module for @pixiv/three-vrm
6
6
  *
7
7
  * Copyright (c) 2019-2024 pixiv Inc.