@anov/3d-ability 0.0.84 → 0.0.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +6 -0
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/Poi/Plane/link/index.d.ts +1 -1
- package/dist/business/Poi/Plane/particle/index.d.ts +1 -1
- package/dist/business/Poi/Plane/title/index.d.ts +1 -1
- package/package.json +3 -3
|
@@ -109,7 +109,7 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
109
109
|
var lastType = this.type;
|
|
110
110
|
this.frame = gsap.to(this.uniforms.progress, {
|
|
111
111
|
value: 1.0,
|
|
112
|
-
duration:
|
|
112
|
+
duration: 3.0,
|
|
113
113
|
ease: 'linear',
|
|
114
114
|
onComplete: function onComplete() {
|
|
115
115
|
_this2["".concat(lastType, "Objects")].forEach(function (object) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Box3","Object3D","Vector3","gsap","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToRealFade","MaterialSwitchSystem","_Object3D","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Map","progress","value","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","generate","_createClass","key","uniforms","allHide","oldObjects","forEach","object","visible","RealObjects","FrameObjects","PureObjects","FresnelObjects","switchType","type","_this$frame","_this2","frame","kill","concat","lastType","to","duration","ease","onComplete","dispatchEvent","style","addObject","_this3","objects","set","uuid","finalObject","clone","generateFinalObject","add","pureObject","generatePureObject","frameObject","generateFrameObject","traverse","child","originalMaterial","has","material","realObject","generateRealObject","getMaxSize","removeObject","delete","get","fresnelObject","removeFromParent","box3","expandByObject","size","getSize","Math","max","x","z"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import { Box3, Color, Group, MeshBasicMaterial, Object3D, Vector3, gsap } from '@anov/3d-core'\nimport { disposeMaterial, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToRealFade } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\n\n/**\n * 材质切换系统\n */\nexport class MaterialSwitchSystem extends Object3D implements MaterialSwitchSystemInterface {\n public type: MaterialSwitchType = 'Real'\n public originalMaterial = new Map()\n\n private objects = new Map<string, Object3D>()\n private oldObjects = new Map<string, Object3D>()\n private RealObjects = new Map<string, Object3D>()\n private FrameObjects = new Map<string, Object3D>()\n private PureObjects = new Map<string, Object3D>()\n private FresnelObjects = new Map<string, Object3D>()\n\n private frame: gsap.core.Tween | null = null\n public uniforms = {\n progress: { value: 0.0 },\n isFresnelFadeIn: { value: false },\n isRealFadeIn: { value: false },\n isPureFadeIn: { value: false },\n isFrameFadeIn: { value: false },\n maxSize: { value: 0 },\n }\n\n constructor() {\n super()\n\n this.generate()\n }\n\n private generate() {\n this.uniforms.progress.value = 1.0\n\n this.uniforms.isRealFadeIn.value = true\n this.uniforms.isFresnelFadeIn.value = false\n this.uniforms.isPureFadeIn.value = false\n this.uniforms.isFrameFadeIn.value = false\n }\n\n private allHide() {\n this.oldObjects.forEach((object) => {\n object.visible = false\n })\n\n this.RealObjects.forEach((object) => {\n object.visible = false\n })\n\n this.FrameObjects.forEach((object) => {\n object.visible = false\n })\n\n this.PureObjects.forEach((object) => {\n object.visible = false\n })\n\n this.FresnelObjects.forEach((object) => {\n object.visible = false\n })\n }\n\n /**\n * switch type\n * @param type\n */\n public switchType(type: MaterialSwitchType) {\n if (this.type === type)\n return\n\n this.frame?.kill()\n\n this.allHide()\n\n this[`${type}Objects`].forEach((object) => {\n object.visible = true\n })\n\n this[`${this.type}Objects`].forEach((object) => {\n object.visible = true\n })\n\n this.uniforms.progress.value = 0.0\n this.uniforms[`is${this.type}FadeIn`].value = false\n this.uniforms[`is${type}FadeIn`].value = true\n\n const lastType = this.type\n\n this.frame = gsap.to(this.uniforms.progress, {\n value: 1.0,\n duration: 2.0,\n ease: 'linear',\n onComplete: () => {\n this[`${lastType}Objects`].forEach((object) => {\n object.visible = false\n })\n\n this.dispatchEvent({\n type: 'onStyleChanged',\n style: type,\n })\n },\n })\n\n this.type = type\n }\n\n /**\n * add object\n * @param object\n */\n public addObject(object: Object3D) {\n this.switchType('Real')\n\n this.objects.set(object.uuid, object)\n\n const finalObject = object.clone()\n this.generateFinalObject(finalObject)\n this.FresnelObjects.set(object.uuid, finalObject)\n this.add(finalObject)\n\n const pureObject = object.clone()\n this.generatePureObject(pureObject)\n this.PureObjects.set(object.uuid, pureObject)\n this.add(pureObject)\n\n const frameObject = object.clone()\n this.generateFrameObject(frameObject)\n this.FrameObjects.set(object.uuid, frameObject)\n this.add(frameObject)\n\n object.traverse((child: any) => {\n if (child.type === 'Mesh') {\n // only record the first material\n if (!this.originalMaterial.has(child.uuid))\n this.originalMaterial.set(child.uuid, child.material.clone())\n }\n })\n\n const realObject = object\n this.generateRealObject(realObject)\n this.RealObjects.set(object.uuid, realObject)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n\n this.allHide()\n this.RealObjects.forEach((object) => {\n object.visible = true\n })\n }\n\n /**\n * remove object\n * @param object\n */\n public removeObject(object: Object3D) {\n this.objects.delete(object.uuid)\n\n const realObject = this.RealObjects.get(object.uuid)\n const frameObject = this.FrameObjects.get(object.uuid)\n const pureObject = this.PureObjects.get(object.uuid)\n const fresnelObject = this.FresnelObjects.get(object.uuid)\n\n realObject.removeFromParent()\n frameObject.removeFromParent()\n pureObject.removeFromParent()\n fresnelObject.removeFromParent()\n\n this.RealObjects.delete(object.uuid)\n this.FrameObjects.delete(object.uuid)\n this.PureObjects.delete(object.uuid)\n this.FresnelObjects.delete(object.uuid)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n /**\n * get max size\n * @param object\n * @returns\n */\n private getMaxSize() {\n const box3 = new Box3()\n this.RealObjects.forEach((object) => {\n box3.expandByObject(object)\n })\n\n const size = box3.getSize(new Vector3())\n const maxSize = Math.max(size.x, size.z)\n return maxSize\n }\n\n /**\n * generate final object\n * @param object\n */\n private generateFinalObject(object: Object3D) {\n injectToFinirMaterial(object, this.uniforms)\n }\n\n /**\n * generate real object\n * @param object\n */\n private generateRealObject(object: Object3D) {\n injectToRealFade(object, this.uniforms)\n }\n\n /**\n * generate pure object\n * @param object\n */\n private generatePureObject(object: Object3D) {\n injectToBaseWrite(object, this.uniforms)\n }\n\n /**\n * generate frame object\n * @param object\n */\n private generateFrameObject(object: Object3D) {\n injectToFrameFade(object, this.uniforms)\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Box3","Object3D","Vector3","gsap","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToRealFade","MaterialSwitchSystem","_Object3D","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Map","progress","value","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","generate","_createClass","key","uniforms","allHide","oldObjects","forEach","object","visible","RealObjects","FrameObjects","PureObjects","FresnelObjects","switchType","type","_this$frame","_this2","frame","kill","concat","lastType","to","duration","ease","onComplete","dispatchEvent","style","addObject","_this3","objects","set","uuid","finalObject","clone","generateFinalObject","add","pureObject","generatePureObject","frameObject","generateFrameObject","traverse","child","originalMaterial","has","material","realObject","generateRealObject","getMaxSize","removeObject","delete","get","fresnelObject","removeFromParent","box3","expandByObject","size","getSize","Math","max","x","z"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import { Box3, Color, Group, MeshBasicMaterial, Object3D, Vector3, gsap } from '@anov/3d-core'\nimport { disposeMaterial, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToRealFade } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\n\n/**\n * 材质切换系统\n */\nexport class MaterialSwitchSystem extends Object3D implements MaterialSwitchSystemInterface {\n public type: MaterialSwitchType = 'Real'\n public originalMaterial = new Map()\n\n private objects = new Map<string, Object3D>()\n private oldObjects = new Map<string, Object3D>()\n private RealObjects = new Map<string, Object3D>()\n private FrameObjects = new Map<string, Object3D>()\n private PureObjects = new Map<string, Object3D>()\n private FresnelObjects = new Map<string, Object3D>()\n\n private frame: gsap.core.Tween | null = null\n public uniforms = {\n progress: { value: 0.0 },\n isFresnelFadeIn: { value: false },\n isRealFadeIn: { value: false },\n isPureFadeIn: { value: false },\n isFrameFadeIn: { value: false },\n maxSize: { value: 0 },\n }\n\n constructor() {\n super()\n\n this.generate()\n }\n\n private generate() {\n this.uniforms.progress.value = 1.0\n\n this.uniforms.isRealFadeIn.value = true\n this.uniforms.isFresnelFadeIn.value = false\n this.uniforms.isPureFadeIn.value = false\n this.uniforms.isFrameFadeIn.value = false\n }\n\n private allHide() {\n this.oldObjects.forEach((object) => {\n object.visible = false\n })\n\n this.RealObjects.forEach((object) => {\n object.visible = false\n })\n\n this.FrameObjects.forEach((object) => {\n object.visible = false\n })\n\n this.PureObjects.forEach((object) => {\n object.visible = false\n })\n\n this.FresnelObjects.forEach((object) => {\n object.visible = false\n })\n }\n\n /**\n * switch type\n * @param type\n */\n public switchType(type: MaterialSwitchType) {\n if (this.type === type)\n return\n\n this.frame?.kill()\n\n this.allHide()\n\n this[`${type}Objects`].forEach((object) => {\n object.visible = true\n })\n\n this[`${this.type}Objects`].forEach((object) => {\n object.visible = true\n })\n\n this.uniforms.progress.value = 0.0\n this.uniforms[`is${this.type}FadeIn`].value = false\n this.uniforms[`is${type}FadeIn`].value = true\n\n const lastType = this.type\n\n this.frame = gsap.to(this.uniforms.progress, {\n value: 1.0,\n duration: 3.0,\n ease: 'linear',\n onComplete: () => {\n this[`${lastType}Objects`].forEach((object) => {\n object.visible = false\n })\n\n this.dispatchEvent({\n type: 'onStyleChanged',\n style: type,\n })\n },\n })\n\n this.type = type\n }\n\n /**\n * add object\n * @param object\n */\n public addObject(object: Object3D) {\n this.switchType('Real')\n\n this.objects.set(object.uuid, object)\n\n const finalObject = object.clone()\n this.generateFinalObject(finalObject)\n this.FresnelObjects.set(object.uuid, finalObject)\n this.add(finalObject)\n\n const pureObject = object.clone()\n this.generatePureObject(pureObject)\n this.PureObjects.set(object.uuid, pureObject)\n this.add(pureObject)\n\n const frameObject = object.clone()\n this.generateFrameObject(frameObject)\n this.FrameObjects.set(object.uuid, frameObject)\n this.add(frameObject)\n\n object.traverse((child: any) => {\n if (child.type === 'Mesh') {\n // only record the first material\n if (!this.originalMaterial.has(child.uuid))\n this.originalMaterial.set(child.uuid, child.material.clone())\n }\n })\n\n const realObject = object\n this.generateRealObject(realObject)\n this.RealObjects.set(object.uuid, realObject)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n\n this.allHide()\n this.RealObjects.forEach((object) => {\n object.visible = true\n })\n }\n\n /**\n * remove object\n * @param object\n */\n public removeObject(object: Object3D) {\n this.objects.delete(object.uuid)\n\n const realObject = this.RealObjects.get(object.uuid)\n const frameObject = this.FrameObjects.get(object.uuid)\n const pureObject = this.PureObjects.get(object.uuid)\n const fresnelObject = this.FresnelObjects.get(object.uuid)\n\n realObject.removeFromParent()\n frameObject.removeFromParent()\n pureObject.removeFromParent()\n fresnelObject.removeFromParent()\n\n this.RealObjects.delete(object.uuid)\n this.FrameObjects.delete(object.uuid)\n this.PureObjects.delete(object.uuid)\n this.FresnelObjects.delete(object.uuid)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n /**\n * get max size\n * @param object\n * @returns\n */\n private getMaxSize() {\n const box3 = new Box3()\n this.RealObjects.forEach((object) => {\n box3.expandByObject(object)\n })\n\n const size = box3.getSize(new Vector3())\n const maxSize = Math.max(size.x, size.z)\n return maxSize\n }\n\n /**\n * generate final object\n * @param object\n */\n private generateFinalObject(object: Object3D) {\n injectToFinirMaterial(object, this.uniforms)\n }\n\n /**\n * generate real object\n * @param object\n */\n private generateRealObject(object: Object3D) {\n injectToRealFade(object, this.uniforms)\n }\n\n /**\n * generate pure object\n * @param object\n */\n private generatePureObject(object: Object3D) {\n injectToBaseWrite(object, this.uniforms)\n }\n\n /**\n * generate frame object\n * @param object\n */\n private generateFrameObject(object: Object3D) {\n injectToFrameFade(object, this.uniforms)\n }\n}\n"],"mappings":"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"}
|
|
@@ -61,6 +61,12 @@ export var injectToRealFade = function injectToRealFade(object, uniforms) {
|
|
|
61
61
|
object.traverse(function (child) {
|
|
62
62
|
if (child.isMesh) {
|
|
63
63
|
var newMaterial = child.material.clone();
|
|
64
|
+
newMaterial.transparent = true;
|
|
65
|
+
newMaterial.depthTest = true;
|
|
66
|
+
newMaterial.depthWrite = true;
|
|
67
|
+
newMaterial.polygonOffset = true;
|
|
68
|
+
newMaterial.polygonOffsetFactor = 1;
|
|
69
|
+
newMaterial.polygonOffsetUnits = 1;
|
|
64
70
|
newMaterial.onBeforeCompile = function (shader) {
|
|
65
71
|
shader.uniforms = _objectSpread(_objectSpread({}, shader.uniforms), {}, {
|
|
66
72
|
progress: uniforms.progress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdditiveBlending","Color","MeshStandardMaterial","frag","frag_pre","ver","ver_pre","fragFinal","verFinal","disposeMaterial","material","map","dispose","lightMap","bumpMap","normalMap","specularMap","envMap","emissiveMap","injectToFrameFade","object","uniforms","traverse","child","isMesh","clone","side","transparent","depthTest","depthWrite","blending","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","onBeforeCompile","shader","_objectSpread","progress","addOpacity","value","objSize","maxSize","isFadeIn","isFrameFadeIn","vertexShader","fragmentShader","injectToRealFade","newMaterial","isRealFadeIn","replace","needsUpdate","customProgramCacheKey","concat","injectToBaseWrite","color","isPureFadeIn","rimColor","rimPower","injectToFinirMaterial","isFresnelFadeIn"],"sources":["../../../src/business/MaterialSwitch/inject.ts"],"sourcesContent":["import { AdditiveBlending, Color, MeshStandardMaterial, type Object3D } from '@anov/3d-core'\nimport { frag, frag_pre, ver, ver_pre } from './realFade'\nimport { frag as fragFinal, ver as verFinal } from './finalFade'\n\nexport const disposeMaterial = (material) => {\n if (material.map)\n material.map.dispose()\n if (material.lightMap)\n material.lightMap.dispose()\n if (material.bumpMap)\n material.bumpMap.dispose()\n if (material.normalMap)\n material.normalMap.dispose()\n if (material.specularMap)\n material.specularMap.dispose()\n if (material.envMap)\n material.envMap.dispose()\n if (material.emissiveMap)\n material.emissiveMap.dispose()\n material.dispose()\n}\n\n/**\n * inject to final fade\n * @param object\n * @param maxSize\n * @param uniforms\n */\nexport const injectToFrameFade = (object: Object3D, uniforms: { maxSize: { value: number }; progress: { value: number }; isFrameFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n child.material = child.material.clone()\n child.material.side = 2\n child.material.transparent = true\n child.material.depthTest = false\n child.material.depthWrite = true\n child.material.blending = AdditiveBlending\n\n child.material.polygonOffset = true\n child.material.polygonOffsetFactor = 0\n child.material.polygonOffsetUnits = 0\n\n child.material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n addOpacity: { value: 0.7 },\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFrameFadeIn,\n }\n shader.vertexShader = verFinal\n shader.fragmentShader = fragFinal\n }\n }\n })\n}\n\n/**\n * inject to real fade\n * @param object\n * @param uniforms\n */\nexport const injectToRealFade = (object: Object3D, uniforms: { maxSize: { value: number }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n const newMaterial = child.material.clone()\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isRealFadeIn,\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n }\n\n newMaterial.needsUpdate = true\n newMaterial.customProgramCacheKey = () => `${ver}-${frag}`\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to base write\n * @param object\n * @param uniforms\n */\nexport const injectToBaseWrite = (object: Object3D, uniforms: { maxSize: { value: number }; progress: { value: number }; isPureFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone()\n newMaterial = new MeshStandardMaterial({ color: new Color('#fff') })\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 2\n newMaterial.polygonOffsetUnits = 2\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isPureFadeIn,\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.rimColor = { value: new Color('#fff') }\n shader.uniforms.rimPower = { value: 0.7 }\n\n shader.fragmentShader = /* glsl */`\n uniform vec3 rimColor;\n uniform float rimPower;\n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n '#include <dithering_fragment>\\n\\t'\n + 'float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\\n\\t'\n + 'gl_FragColor.rgb += rimPower*dotNV*rimColor;',\n )}\n `\n }\n\n newMaterial.needsUpdate = true\n newMaterial.customProgramCacheKey = () => `${ver}-${frag}`\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to finir material\n * @param object\n * @param uniforms\n */\nexport const injectToFinirMaterial = (object: Object3D, uniforms: { maxSize: { value: number }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone()\n newMaterial = new MeshStandardMaterial({ color: new Color('#000') })\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 3\n newMaterial.polygonOffsetUnits = 3\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.rimColor = { value: new Color('#2364B7') }\n shader.uniforms.rimPower = { value: 0.7 }\n\n shader.fragmentShader = /* glsl */`\n uniform vec3 rimColor;\n uniform float rimPower;\n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n '#include <dithering_fragment>\\n\\t'\n + 'float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\\n\\t'\n + 'gl_FragColor.rgb += rimPower*dotNV*rimColor;',\n )}\n `\n }\n\n newMaterial.needsUpdate = true\n newMaterial.customProgramCacheKey = () => `${ver}-${frag}`\n\n child.material = newMaterial\n }\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AdditiveBlending","Color","MeshStandardMaterial","frag","frag_pre","ver","ver_pre","fragFinal","verFinal","disposeMaterial","material","map","dispose","lightMap","bumpMap","normalMap","specularMap","envMap","emissiveMap","injectToFrameFade","object","uniforms","traverse","child","isMesh","clone","side","transparent","depthTest","depthWrite","blending","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","onBeforeCompile","shader","_objectSpread","progress","addOpacity","value","objSize","maxSize","isFadeIn","isFrameFadeIn","vertexShader","fragmentShader","injectToRealFade","newMaterial","isRealFadeIn","replace","needsUpdate","customProgramCacheKey","concat","injectToBaseWrite","color","isPureFadeIn","rimColor","rimPower","injectToFinirMaterial","isFresnelFadeIn"],"sources":["../../../src/business/MaterialSwitch/inject.ts"],"sourcesContent":["import { AdditiveBlending, Color, MeshStandardMaterial, type Object3D } from '@anov/3d-core'\nimport { frag, frag_pre, ver, ver_pre } from './realFade'\nimport { frag as fragFinal, ver as verFinal } from './finalFade'\n\nexport const disposeMaterial = (material) => {\n if (material.map)\n material.map.dispose()\n if (material.lightMap)\n material.lightMap.dispose()\n if (material.bumpMap)\n material.bumpMap.dispose()\n if (material.normalMap)\n material.normalMap.dispose()\n if (material.specularMap)\n material.specularMap.dispose()\n if (material.envMap)\n material.envMap.dispose()\n if (material.emissiveMap)\n material.emissiveMap.dispose()\n material.dispose()\n}\n\n/**\n * inject to final fade\n * @param object\n * @param maxSize\n * @param uniforms\n */\nexport const injectToFrameFade = (object: Object3D, uniforms: { maxSize: { value: number }; progress: { value: number }; isFrameFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n child.material = child.material.clone()\n child.material.side = 2\n child.material.transparent = true\n child.material.depthTest = false\n child.material.depthWrite = true\n child.material.blending = AdditiveBlending\n\n child.material.polygonOffset = true\n child.material.polygonOffsetFactor = 0\n child.material.polygonOffsetUnits = 0\n\n child.material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n addOpacity: { value: 0.7 },\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFrameFadeIn,\n }\n shader.vertexShader = verFinal\n shader.fragmentShader = fragFinal\n }\n }\n })\n}\n\n/**\n * inject to real fade\n * @param object\n * @param uniforms\n */\nexport const injectToRealFade = (object: Object3D, uniforms: { maxSize: { value: number }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n const newMaterial = child.material.clone()\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 1\n newMaterial.polygonOffsetUnits = 1\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isRealFadeIn,\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n }\n\n newMaterial.needsUpdate = true\n newMaterial.customProgramCacheKey = () => `${ver}-${frag}`\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to base write\n * @param object\n * @param uniforms\n */\nexport const injectToBaseWrite = (object: Object3D, uniforms: { maxSize: { value: number }; progress: { value: number }; isPureFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone()\n newMaterial = new MeshStandardMaterial({ color: new Color('#fff') })\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 2\n newMaterial.polygonOffsetUnits = 2\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isPureFadeIn,\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.rimColor = { value: new Color('#fff') }\n shader.uniforms.rimPower = { value: 0.7 }\n\n shader.fragmentShader = /* glsl */`\n uniform vec3 rimColor;\n uniform float rimPower;\n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n '#include <dithering_fragment>\\n\\t'\n + 'float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\\n\\t'\n + 'gl_FragColor.rgb += rimPower*dotNV*rimColor;',\n )}\n `\n }\n\n newMaterial.needsUpdate = true\n newMaterial.customProgramCacheKey = () => `${ver}-${frag}`\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to finir material\n * @param object\n * @param uniforms\n */\nexport const injectToFinirMaterial = (object: Object3D, uniforms: { maxSize: { value: number }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone()\n newMaterial = new MeshStandardMaterial({ color: new Color('#000') })\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 3\n newMaterial.polygonOffsetUnits = 3\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.rimColor = { value: new Color('#2364B7') }\n shader.uniforms.rimPower = { value: 0.7 }\n\n shader.fragmentShader = /* glsl */`\n uniform vec3 rimColor;\n uniform float rimPower;\n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n '#include <dithering_fragment>\\n\\t'\n + 'float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\\n\\t'\n + 'gl_FragColor.rgb += rimPower*dotNV*rimColor;',\n )}\n `\n }\n\n newMaterial.needsUpdate = true\n newMaterial.customProgramCacheKey = () => `${ver}-${frag}`\n\n child.material = newMaterial\n }\n })\n}\n"],"mappings":"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"}
|
|
@@ -14,6 +14,6 @@ export default class LinkMesh extends ObjectLayer {
|
|
|
14
14
|
get vspace(): [number, number];
|
|
15
15
|
set vspace(newValue: [number, number]);
|
|
16
16
|
get hspace(): [number, number];
|
|
17
|
-
get mesh():
|
|
17
|
+
get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]> | Group;
|
|
18
18
|
setupAnimation(): void;
|
|
19
19
|
}
|
|
@@ -8,6 +8,6 @@ export default class ParticleMesh extends ObjectLayer {
|
|
|
8
8
|
_mesh: Group | Mesh;
|
|
9
9
|
constructor();
|
|
10
10
|
get ready(): Promise<boolean>;
|
|
11
|
-
get mesh():
|
|
11
|
+
get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]> | Group;
|
|
12
12
|
setupAnimation(): void;
|
|
13
13
|
}
|
|
@@ -21,7 +21,7 @@ export default class TitleMesh extends ObjectLayer {
|
|
|
21
21
|
_style: string;
|
|
22
22
|
constructor(option: TextOption);
|
|
23
23
|
get ready(): Promise<boolean>;
|
|
24
|
-
get mesh():
|
|
24
|
+
get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]> | Group;
|
|
25
25
|
get value(): string;
|
|
26
26
|
set value(newValue: string);
|
|
27
27
|
addReloadListener(callback: any): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anov/3d-ability",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.88",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"package.json"
|
|
17
17
|
],
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@anov/3d-core": "^0.0.
|
|
19
|
+
"@anov/3d-core": "^0.0.61"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@types/suncalc": "^1.9.2",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/javascript-state-machine": "^2.4.6",
|
|
34
34
|
"@types/lodash": "^4.14.196",
|
|
35
|
-
"@anov/3d-core": "^0.0.
|
|
35
|
+
"@anov/3d-core": "^0.0.61"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "father build",
|