babylonjs-serializers 9.3.1 → 9.3.3
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,2 +1,2 @@
|
|
|
1
|
-
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-serializers",["babylonjs"],n):"object"==typeof exports?exports["babylonjs-serializers"]=n(require("babylonjs")):t.SERIALIZERS=n(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,t=>(()=>{"use strict";var n={597(n){n.exports=t}},e={};function o(t){var a=e[t];if(void 0!==a)return a.exports;var r=e[t]={exports:{}};return n[t](r,r.exports,o),r.exports}o.d=(t,n)=>{for(var e in n)o.o(n,e)&&!o.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};o.d(a,{default:()=>S});var r={};o.r(r),o.d(r,{USDZExportAsync:()=>T});var i={};o.r(i),o.d(i,{USDZExportAsync:()=>T});var c=function(){return c=Object.assign||function(t){for(var n,e=1,o=arguments.length;e<o;e++)for(var a in n=arguments[e])Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);return t},c.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var s=o(597),u=s.Matrix.Compose(new s.Vector3(-1,1,1),s.Quaternion.Identity(),s.Vector3.Zero());function l(t,n){if(!(t instanceof s.TransformNode))return!1;if(n){if(!t.getWorldMatrix().equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1}else if(!t.getWorldMatrix().multiplyToRef(u,s.TmpVectors.Matrix[0]).equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1;return!(t instanceof s.AbstractMesh&&t.geometry)}function p(t,n,e,o){void 0===e&&(e=3),void 0===o&&(o=!1);for(var a=[],r=0;r<t.length/e;r++){var i=t[r*e]*(o?-1:1),c=t[r*e+1],s=t[r*e+2];a.push("(".concat(i.toPrecision(n.precision),", ").concat(c.toPrecision(n.precision),", ").concat(s.toPrecision(n.precision),")"))}return a.join(", ")}function f(t,n){for(var e=[],o=0;o<t.length/2;o++){var a=t[2*o],r=t[2*o+1];e.push("(".concat(a.toPrecision(n.precision),", ").concat((1-r).toPrecision(n.precision),")"))}return e.join(", ")}function d(t,n,e,o){var a=function(t,n,e,o){var a=t.getVerticesData(s.VertexBuffer.PositionKind),r=t.getVerticesData(s.VertexBuffer.NormalKind);if(a&&r)return'\n\tdef Mesh "'.concat("Geometry",'"\n\t{\n uniform token orientation = "').concat(e,'"\n\t\tint[] faceVertexCounts = [').concat(function(t){var n,e=(null===(n=t.getIndices())||void 0===n?void 0:n.length)?t.getTotalIndices():t.getTotalVertices();return Array(e/3).fill(3).join(", ")}(t),"]\n\t\tint[] faceVertexIndices = [").concat(function(t){var n,e=t.getIndices(),o=null!==(n=null==e?void 0:e.length)&&void 0!==n?n:t.getTotalVertices(),a=[];if(null!==e)for(var r=0;r<o;r++)a.push(e[r]);else for(r=0;r<o;r++)a.push(r);return a.join(", ")}(t),"]\n\t\tnormal3f[] normals = [").concat(p(r,n,void 0,o),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)\n\t\tpoint3f[] points = [').concat(p(a,n,void 0,o),"]\n ").concat(function(t,n){for(var e="",o=0;o<4;o++){var a=o>0?o:"",r=t.getVerticesData(s.VertexBuffer.UVKind+(a?a+1:""));r&&(e+="\n\t\ttexCoord2f[] primvars:st".concat(a," = [").concat(f(r,n),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)'))}var i=t.getVerticesData(s.VertexBuffer.ColorKind);return i&&(e+="\n\tcolor3f[] primvars:displayColor = [".concat(p(i,n,i.length/t.getTotalVertices()),'] (\n\t\tinterpolation = "vertex"\n\t\t)')),e}(t,n),'\n\t\tuniform token subdivisionScheme = "none"\n\t}\n')}(t,n,e,o);return'\n def "Geometry"\n {\n '.concat(a,"\n }\n ")}function h(t){var n='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )';return n+=t,fflate.strToU8(n)}function m(t){var n=t.m;return"( ".concat(g(n,0),", ").concat(g(n,4),", ").concat(g(n,8),", ").concat(g(n,12)," )")}function g(t,n){return"(".concat(t[n+0],", ").concat(t[n+1],", ").concat(t[n+2],", ").concat(t[n+3],")")}function v(t,n){var e="Object_"+t.uniqueId,o=m(n);return'def Xform "'.concat(e,'" (\n\tprepend references = @./geometries/Geometry_').concat(t.geometry.uniqueId,'.usda@</Geometry>\n\tprepend apiSchemas = ["MaterialBindingAPI"]\n)\n{\n\tmatrix4d xformOp:transform = ').concat(o,'\n\tuniform token[] xformOpOrder = ["xformOp:transform"]\t\n\n rel material:binding = </Root/Materials/Material_').concat(t.material.uniqueId,">\n}\n\n")}function M(t){switch(t){case s.Constants.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case s.Constants.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case s.Constants.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function y(t){return"(".concat(t.x,", ").concat(t.y,")")}function x(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,")")}function b(t,n,e,o,a,r){var i=t.getInternalTexture().uniqueId+"_"+t.invertY;a[i]=t;var c=t.coordinatesIndex>0?"st"+t.coordinatesIndex:"st",u=new s.Vector2(t.uScale,t.vScale),l=new s.Vector2(t.uOffset,t.vOffset),p=t.wAng,f=Math.sin(p),d=Math.cos(p);return l.y=1-l.y-u.y,l.x+=f*u.x,l.y+=(1-d)*u.y,'\n def Shader "PrimvarReader_'.concat(e,'"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n float2 inputs:fallback = (0.0, 0.0)\n token inputs:varname = "').concat(c,'"\n float2 outputs:result\n }\n\n def Shader "Transform2d_').concat(e,'"\n {\n uniform token info:id = "UsdTransform2d"\n token inputs:in.connect = </Root/Materials/Material_').concat(n.uniqueId,"/PrimvarReader_").concat(e,".outputs:result>\n float inputs:rotation = ").concat((p*(180/Math.PI)).toFixed(r.precision),"\n float2 inputs:scale = ").concat(y(u),"\n float2 inputs:translation = ").concat(y(l),'\n float2 outputs:result\n }\n\n def Shader "Texture_').concat(t.uniqueId,"_").concat(e,'"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_').concat(i,".png@\n float2 inputs:st.connect = </Root/Materials/Material_").concat(n.uniqueId,"/Transform2d_").concat(e,".outputs:result>\n ").concat(o?"float4 inputs:scale = "+function(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", 1.0)")}(o):"",'\n token inputs:sourceColorSpace = "').concat(t.gammaSpace?"sRGB":"raw",'"\n token inputs:wrapS = "').concat(M(t.wrapU),'"\n token inputs:wrapT = "').concat(M(t.wrapV),'"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ').concat(n.needAlphaBlending()||n.needAlphaTesting()?"float outputs:a":"","\n }")}function _(t,n,e){var o="\t\t\t",a=[],r=[],i=function(t){var n,e,o={diffuseMap:null,diffuse:null,alphaCutOff:0,emissiveMap:null,emissive:null,normalMap:null,roughnessMap:null,roughnessChannel:"a",roughness:0,metalnessMap:null,metalnessChannel:"r",metalness:0,aoMap:null,aoMapChannel:"rgb",aoMapIntensity:0,alphaMap:null,ior:1,clearCoatEnabled:!1,clearCoat:0,clearCoatMap:null,clearCoatRoughness:0,clearCoatRoughnessMap:null};return t instanceof s.StandardMaterial?c(c({},o),{diffuseMap:t.diffuseTexture,diffuse:t.diffuseColor,alphaCutOff:t.alphaCutOff,emissiveMap:t.emissiveTexture,emissive:t.emissiveColor,roughness:1,alphaMap:t.opacityTexture}):t instanceof s.PBRBaseMaterial?c(c({},o),{diffuseMap:t._albedoTexture,diffuse:t._albedoColor,alphaCutOff:t._alphaCutOff,emissiveMap:t._emissiveTexture,emissive:t._emissiveColor,normalMap:t._bumpTexture,roughnessMap:t._metallicTexture,roughnessChannel:t._useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:null!==(n=t._roughness)&&void 0!==n?n:1,metalnessMap:t._metallicTexture,metalnessChannel:t._useMetallnessFromMetallicTextureBlue?"b":"r",metalness:null!==(e=t._metallic)&&void 0!==e?e:0,aoMap:t._ambientTexture,aoMapChannel:t._useAmbientInGrayScale?"r":"rgb",aoMapIntensity:t._ambientTextureStrength,alphaMap:t._opacityTexture,ior:t.subSurface.indexOfRefraction,clearCoatEnabled:t.clearCoat.isEnabled,clearCoat:t.clearCoat.intensity,clearCoatMap:t.clearCoat.texture,clearCoatRoughness:t.clearCoat.roughness,clearCoatRoughnessMap:t.clearCoat.useRoughnessFromMainTexture?t.clearCoat.texture:t.clearCoat.textureRoughness}):o}(t),u=i.diffuseMap,l=i.diffuse,p=i.alphaCutOff,f=i.emissiveMap,d=i.emissive,h=i.normalMap,m=i.roughnessMap,g=i.roughnessChannel,v=i.roughness,M=i.metalnessMap,y=i.metalnessChannel,_=i.metalness,C=i.aoMap,T=i.aoMapChannel,R=i.aoMapIntensity,I=i.alphaMap,S=i.ior,O=i.clearCoatEnabled,w=i.clearCoat,A=i.clearCoatMap,P=i.clearCoatRoughness,q=i.clearCoatRoughnessMap;return null!==u?(a.push("".concat(o,"color3f inputs:diffuseColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:rgb>")),t.needAlphaBlending()?a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")):t.needAlphaTesting()&&(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")),a.push("".concat(o,"float inputs:opacityThreshold = ").concat(p))),r.push(b(u,t,"diffuse",l,n,e))):a.push("".concat(o,"color3f inputs:diffuseColor = ").concat(x(l||s.Color3.White()))),null!==f?(a.push("".concat(o,"color3f inputs:emissiveColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(f.uniqueId,"_emissive.outputs:rgb>")),r.push(b(f,t,"emissive",d,n,e))):d&&d.toLuminance()>0&&a.push("".concat(o,"color3f inputs:emissiveColor = ").concat(x(d))),null!==h&&(a.push("".concat(o,"normal3f inputs:normal.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(h.uniqueId,"_normal.outputs:rgb>")),r.push(b(h,t,"normal",null,n,e))),null!==C&&(a.push("".concat(o,"float inputs:occlusion.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(C.uniqueId,"_occlusion.outputs:").concat(T,">")),r.push(b(C,t,"occlusion",new s.Color3(R,R,R),n,e))),null!==m?(a.push("".concat(o,"float inputs:roughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(m.uniqueId,"_roughness.outputs:").concat(g,">")),r.push(b(m,t,"roughness",new s.Color3(v,v,v),n,e))):a.push("".concat(o,"float inputs:roughness = ").concat(v)),null!==M?(a.push("".concat(o,"float inputs:metallic.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(M.uniqueId,"_metallic.outputs:").concat(y,">")),r.push(b(M,t,"metallic",new s.Color3(_,_,_),n,e))):a.push("".concat(o,"float inputs:metallic = ").concat(_)),null!==I?(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(I.uniqueId,"_opacity.outputs:r>")),a.push("".concat(o,"float inputs:opacityThreshold = 0.0001")),r.push(b(I,t,"opacity",null,n,e))):a.push("".concat(o,"float inputs:opacity = ").concat(t.alpha)),O&&(null!==A?(a.push("".concat(o,"float inputs:clearcoat.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(A.uniqueId,"_clearcoat.outputs:r>")),r.push(b(A,t,"clearcoat",new s.Color3(w,w,w),n,e))):a.push("".concat(o,"float inputs:clearcoat = ").concat(w)),null!==q?(a.push("".concat(o,"float inputs:clearcoatRoughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(q.uniqueId,"_clearcoatRoughness.outputs:g>")),r.push(b(q,t,"clearcoatRoughness",new s.Color3(P,P,P),n,e))):a.push("".concat(o,"float inputs:clearcoatRoughness = ").concat(P))),a.push("".concat(o,"float inputs:ior = ").concat(S)),'\n\tdef Material "Material_'.concat(t.uniqueId,'"\n\t{\n\t\tdef Shader "PreviewSurface"\n\t\t{\n\t\t\tuniform token info:id = "UsdPreviewSurface"\n').concat(a.join("\n"),"\n\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\ttoken outputs:surface\n\t\t}\n\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_").concat(t.uniqueId,"/PreviewSurface.outputs:surface>\n\n").concat(r.join("\n"),"\n\n\t}\n")}function C(t){var n,e;t.computeWorldMatrix(!0);for(var o=t.getWorldMatrix().clone(),a=t.getScene().useRightHandedSystem,r=null!==(e=null===(n=t.material)||void 0===n?void 0:n._getEffectiveOrientation(t))&&void 0!==e?e:t.sideOrientation,i=!a,c=t.parent;c;){if(l(c,a)&&null===c.parent){a||(o.multiplyToRef(c.getWorldMatrix().invert(),o),r=r===s.Material.ClockWiseSideOrientation?s.Material.CounterClockWiseSideOrientation:s.Material.ClockWiseSideOrientation),i=!1;break}c=c.parent}return o.determinant()<0&&s.Tools.Warn("Mesh ".concat(t.name," has a negative scale, which may look incorrect in destinations like QuickLook.")),{matrix:o,windingOrder:r===s.Material.ClockWiseSideOrientation?"leftHanded":"rightHanded",convertToRightHanded:i}}function T(t,n,e){return o=this,a=void 0,i=function(){var o,a,r,i,u,l,p,f,g,M,y,x,b,T,R,I,S,O,w,A,P,q,k,E,j,D,U,V,B,W,L,N;return function(t,n){var e,o,a,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(r=0)),r;)try{if(e=1,o&&(a=2&c[0]?o.return:c[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,c[1])).done)return a;switch(o=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,o=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(!((a=(a=r.trys).length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){r=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){r.label=c[1];break}if(6===c[0]&&r.label<a[1]){r.label=a[1],a=c;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(c);break}a[2]&&r.ops.pop(),r.trys.pop();continue}c=n.call(t,r)}catch(t){c=[6,t],o=0}finally{e=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}(this,function(Z){switch(Z.label){case 0:return o=c({fflateUrl:"https://unpkg.com/fflate@0.8.2",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35},n),"undefined"!=typeof fflate?[3,2]:[4,s.Tools.LoadScriptAsync(o.fflateUrl)];case 1:Z.sent(),Z.label=2;case 2:for((a={})[o.modelFileName]=null,r='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )',r+=function(t){var n=!0===t.includeAnchoringProperties?'\n\t\ttoken preliminary:anchoring:type = "'.concat(t.anchoringType,'"\n\t\ttoken preliminary:planeAnchoring:alignment = "').concat(t.planeAnchoringAlignment,'"'):"";return'def Xform "Root"\n {\n def Scope "Scenes" (\n kind = "sceneLibrary"\n )\n {\n def Xform "Scene" (\n customData = {\n bool preliminary_collidesWithEnvironment = 0\n string sceneName = "Scene"\n }\n sceneName = "Scene"\n )\n {'.concat(n,"\n ")}(o),i={},u=0,l=t.meshes;u<l.length;u++)0!==(p=l[u]).getTotalVertices()&&(g=(f=p).geometry,(M=f.material)&&g&&(!e||e(f))&&(-1!==["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(M.getClassName())?(y="geometries/Geometry_"+g.uniqueId+".usda",x=C(f),b=x.matrix,T=x.windingOrder,R=x.convertToRightHanded,y in a||(I=d(g,o,T,R),a[y]=h(I)),M.uniqueId in i||(i[M.uniqueId]=M),r+=v(f,b)):s.Tools.Warn("USDZExportAsync does not support this material type: "+M.getClassName())));for(A in t.activeCamera&&o.exportCamera&&(r+=function(t,n){var e="Camera_"+t.uniqueId,o=m(s.Matrix.RotationY(Math.PI).multiply(t.getWorldMatrix()));if(t.mode===s.Constants.ORTHOGRAPHIC_CAMERA)return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat horizontalAperture = ").concat((10*(Math.abs(t.orthoLeft||1)+Math.abs(t.orthoRight||1))).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((10*(Math.abs(t.orthoTop||1)+Math.abs(t.orthoBottom||1))).toPrecision(n.precision),'\n\t\t\ttoken projection = "orthographic"\n\t\t}\n\t\n\t');var a=t.getEngine().getAspectRatio(t),r=n.cameraSensorWidth||35;return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat focalLength = ").concat((r/(2*Math.tan(.5*t.fov))).toPrecision(n.precision),'\n token projection = "perspective"\n\t\t\tfloat horizontalAperture = ').concat((r*a).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((r/a).toPrecision(n.precision)," \n\t\t}\n\t\n\t")}(t.activeCamera,o)),r+="\n }\n }",r+=function(t,n,e){var o=[];for(var a in t){var r=t[a];o.push(_(r,n,e))}return'\n def "Materials"\n{\n'.concat(o.join(""),"\n}\n\n")}(i,S={},o),r+="\n }",a[o.modelFileName]=fflate.strToU8(r),w=[],O=S)w.push(A);P=0,Z.label=3;case 3:return P<w.length?(A=w[P])in O?(k=S[q=A],E=k.getSize(),[4,(0,s.GetTextureDataAsync)(k)]):[3,6]:[3,7];case 4:return j=Z.sent(),[4,s.DumpTools.DumpDataAsync(E.width,E.height,j,"image/png",void 0,!1,!0)];case 5:D=Z.sent(),a["textures/Texture_".concat(q,".png")]=new Uint8Array(D).slice(),Z.label=6;case 6:return P++,[3,3];case 7:for(V in U=0,a)(B=a[V])&&(W=34+V.length,4!=(L=63&(U+=W))&&(N=new Uint8Array(64-L),a[V]=[B,{extra:{12345:N}}]),U=B.length);return[2,fflate.zipSync(a,{level:0})]}})},new((r=void 0)||(r=Promise))(function(t,n){function e(t){try{s(i.next(t))}catch(t){n(t)}}function c(t){try{s(i.throw(t))}catch(t){n(t)}}function s(n){var o;n.done?t(n.value):(o=n.value,o instanceof r?o:new r(function(t){t(o)})).then(e,c)}s((i=i.apply(o,a||[])).next())});var o,a,r,i}var R=void 0!==o.g?o.g:"undefined"!=typeof window?window:void 0;if(void 0!==R)for(var I in r)R.BABYLON[I]=r[I];const S=i;return a.default})());
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-serializers",["babylonjs"],e):"object"==typeof exports?exports["babylonjs-serializers"]=e(require("babylonjs")):t.SERIALIZERS=e(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,t=>(()=>{"use strict";var e={597(e){e.exports=t}},n={};function o(t){var a=n[t];if(void 0!==a)return a.exports;var r=n[t]={exports:{}};return e[t](r,r.exports,o),r.exports}o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};o.d(a,{default:()=>w});var r={};o.r(r),o.d(r,{USDZExportAsync:()=>S});var i={};o.r(i),o.d(i,{USDZExportAsync:()=>S});var c=function(){return c=Object.assign||function(t){for(var e,n=1,o=arguments.length;n<o;n++)for(var a in e=arguments[n])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},c.apply(this,arguments)};function s(t,e,n,o){return new(n||(n=Promise))(function(a,r){function i(t){try{s(o.next(t))}catch(t){r(t)}}function c(t){try{s(o.throw(t))}catch(t){r(t)}}function s(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(i,c)}s((o=o.apply(t,e||[])).next())})}function u(t,e){var n,o,a,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(r=0)),r;)try{if(n=1,o&&(a=2&c[0]?o.return:c[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,c[1])).done)return a;switch(o=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,o=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(!((a=(a=r.trys).length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){r=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){r.label=c[1];break}if(6===c[0]&&r.label<a[1]){r.label=a[1],a=c;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(c);break}a[2]&&r.ops.pop(),r.trys.pop();continue}c=e.call(t,r)}catch(t){c=[6,t],o=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var l=o(597),f=l.Matrix.Compose(new l.Vector3(-1,1,1),l.Quaternion.Identity(),l.Vector3.Zero());function p(t,e){if(!(t instanceof l.TransformNode))return!1;if(e){if(!t.getWorldMatrix().equalsWithEpsilon(l.Matrix.IdentityReadOnly,l.Epsilon))return!1}else if(!t.getWorldMatrix().multiplyToRef(f,l.TmpVectors.Matrix[0]).equalsWithEpsilon(l.Matrix.IdentityReadOnly,l.Epsilon))return!1;return!(t instanceof l.AbstractMesh&&t.geometry)}function d(t,e,n,o){void 0===n&&(n=3),void 0===o&&(o=!1);for(var a=[],r=0;r<t.length/n;r++){var i=t[r*n]*(o?-1:1),c=t[r*n+1],s=t[r*n+2];a.push("(".concat(i.toPrecision(e.precision),", ").concat(c.toPrecision(e.precision),", ").concat(s.toPrecision(e.precision),")"))}return a.join(", ")}function h(t,e){for(var n=[],o=0;o<t.length/2;o++){var a=t[2*o],r=t[2*o+1];n.push("(".concat(a.toPrecision(e.precision),", ").concat((1-r).toPrecision(e.precision),")"))}return n.join(", ")}function m(t,e,n,o){var a=function(t,e,n,o){var a=t.getVerticesData(l.VertexBuffer.PositionKind),r=t.getVerticesData(l.VertexBuffer.NormalKind);if(a&&r)return'\n\tdef Mesh "'.concat("Geometry",'"\n\t{\n uniform token orientation = "').concat(n,'"\n\t\tint[] faceVertexCounts = [').concat(function(t){var e,n=(null===(e=t.getIndices())||void 0===e?void 0:e.length)?t.getTotalIndices():t.getTotalVertices();return Array(n/3).fill(3).join(", ")}(t),"]\n\t\tint[] faceVertexIndices = [").concat(function(t){var e,n=t.getIndices(),o=null!==(e=null==n?void 0:n.length)&&void 0!==e?e:t.getTotalVertices(),a=[];if(null!==n)for(var r=0;r<o;r++)a.push(n[r]);else for(r=0;r<o;r++)a.push(r);return a.join(", ")}(t),"]\n\t\tnormal3f[] normals = [").concat(d(r,e,void 0,o),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)\n\t\tpoint3f[] points = [').concat(d(a,e,void 0,o),"]\n ").concat(function(t,e){for(var n="",o=0;o<4;o++){var a=o>0?o:"",r=t.getVerticesData(l.VertexBuffer.UVKind+(a?a+1:""));r&&(n+="\n\t\ttexCoord2f[] primvars:st".concat(a," = [").concat(h(r,e),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)'))}var i=t.getVerticesData(l.VertexBuffer.ColorKind);return i&&(n+="\n\tcolor3f[] primvars:displayColor = [".concat(d(i,e,i.length/t.getTotalVertices()),'] (\n\t\tinterpolation = "vertex"\n\t\t)')),n}(t,e),'\n\t\tuniform token subdivisionScheme = "none"\n\t}\n')}(t,e,n,o);return'\n def "Geometry"\n {\n '.concat(a,"\n }\n ")}function g(t){var e='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )';return e+=t,fflate.strToU8(e)}function y(t){var e=t.m;return"( ".concat(v(e,0),", ").concat(v(e,4),", ").concat(v(e,8),", ").concat(v(e,12)," )")}function v(t,e){return"(".concat(t[e+0],", ").concat(t[e+1],", ").concat(t[e+2],", ").concat(t[e+3],")")}function M(t,e){var n="Object_"+t.uniqueId,o=y(e);return'def Xform "'.concat(n,'" (\n\tprepend references = @./geometries/Geometry_').concat(t.geometry.uniqueId,'.usda@</Geometry>\n\tprepend apiSchemas = ["MaterialBindingAPI"]\n)\n{\n\tmatrix4d xformOp:transform = ').concat(o,'\n\tuniform token[] xformOpOrder = ["xformOp:transform"]\t\n\n rel material:binding = </Root/Materials/Material_').concat(t.material.uniqueId,">\n}\n\n")}function x(t){switch(t){case l.Constants.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case l.Constants.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case l.Constants.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function b(t){return"(".concat(t.x,", ").concat(t.y,")")}function T(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,")")}function _(t,e,n,o,a,r){var i,c,s=t.getInternalTexture().uniqueId+"_"+t.invertY,u="image/jpeg"===(t.mimeType||(0,l.GetMimeType)(null!==(c=null===(i=t.getInternalTexture())||void 0===i?void 0:i.url)&&void 0!==c?c:""))?"jpg":"png";a[s]={texture:t,ext:u};var f=t.coordinatesIndex>0?"st"+t.coordinatesIndex:"st",p=new l.Vector2(t.uScale,t.vScale),d=new l.Vector2(t.uOffset,t.vOffset),h=t.wAng,m=Math.sin(h),g=Math.cos(h);return d.y=1-d.y-p.y,d.x+=m*p.x,d.y+=(1-g)*p.y,'\n def Shader "PrimvarReader_'.concat(n,'"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n float2 inputs:fallback = (0.0, 0.0)\n token inputs:varname = "').concat(f,'"\n float2 outputs:result\n }\n\n def Shader "Transform2d_').concat(n,'"\n {\n uniform token info:id = "UsdTransform2d"\n token inputs:in.connect = </Root/Materials/Material_').concat(e.uniqueId,"/PrimvarReader_").concat(n,".outputs:result>\n float inputs:rotation = ").concat((h*(180/Math.PI)).toFixed(r.precision),"\n float2 inputs:scale = ").concat(b(p),"\n float2 inputs:translation = ").concat(b(d),'\n float2 outputs:result\n }\n\n def Shader "Texture_').concat(t.uniqueId,"_").concat(n,'"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_').concat(s,".").concat(u,"@\n float2 inputs:st.connect = </Root/Materials/Material_").concat(e.uniqueId,"/Transform2d_").concat(n,".outputs:result>\n ").concat(o?"float4 inputs:scale = "+function(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", 1.0)")}(o):"",'\n token inputs:sourceColorSpace = "').concat(t.gammaSpace?"sRGB":"raw",'"\n token inputs:wrapS = "').concat(x(t.wrapU),'"\n token inputs:wrapT = "').concat(x(t.wrapV),'"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ').concat(e.needAlphaBlending()||e.needAlphaTesting()?"float outputs:a":"","\n }")}function C(t,e,n){var o="\t\t\t",a=[],r=[],i=function(t){var e,n,o={diffuseMap:null,diffuse:null,alphaCutOff:0,emissiveMap:null,emissive:null,normalMap:null,roughnessMap:null,roughnessChannel:"a",roughness:0,metalnessMap:null,metalnessChannel:"r",metalness:0,aoMap:null,aoMapChannel:"rgb",aoMapIntensity:0,alphaMap:null,ior:1,clearCoatEnabled:!1,clearCoat:0,clearCoatMap:null,clearCoatRoughness:0,clearCoatRoughnessMap:null};return t instanceof l.StandardMaterial?c(c({},o),{diffuseMap:t.diffuseTexture,diffuse:t.diffuseColor,alphaCutOff:t.alphaCutOff,emissiveMap:t.emissiveTexture,emissive:t.emissiveColor,roughness:1,alphaMap:t.opacityTexture}):t instanceof l.PBRBaseMaterial?c(c({},o),{diffuseMap:t._albedoTexture,diffuse:t._albedoColor,alphaCutOff:t._alphaCutOff,emissiveMap:t._emissiveTexture,emissive:t._emissiveColor,normalMap:t._bumpTexture,roughnessMap:t._metallicTexture,roughnessChannel:t._useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:null!==(e=t._roughness)&&void 0!==e?e:1,metalnessMap:t._metallicTexture,metalnessChannel:t._useMetallnessFromMetallicTextureBlue?"b":"r",metalness:null!==(n=t._metallic)&&void 0!==n?n:0,aoMap:t._ambientTexture,aoMapChannel:t._useAmbientInGrayScale?"r":"rgb",aoMapIntensity:t._ambientTextureStrength,alphaMap:t._opacityTexture,ior:t.subSurface.indexOfRefraction,clearCoatEnabled:t.clearCoat.isEnabled,clearCoat:t.clearCoat.intensity,clearCoatMap:t.clearCoat.texture,clearCoatRoughness:t.clearCoat.roughness,clearCoatRoughnessMap:t.clearCoat.useRoughnessFromMainTexture?t.clearCoat.texture:t.clearCoat.textureRoughness}):o}(t),s=i.diffuseMap,u=i.diffuse,f=i.alphaCutOff,p=i.emissiveMap,d=i.emissive,h=i.normalMap,m=i.roughnessMap,g=i.roughnessChannel,y=i.roughness,v=i.metalnessMap,M=i.metalnessChannel,x=i.metalness,b=i.aoMap,C=i.aoMapChannel,R=i.aoMapIntensity,I=i.alphaMap,S=i.ior,O=i.clearCoatEnabled,A=i.clearCoat,w=i.clearCoatMap,P=i.clearCoatRoughness,q=i.clearCoatRoughnessMap;return null!==s?(a.push("".concat(o,"color3f inputs:diffuseColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(s.uniqueId,"_diffuse.outputs:rgb>")),t.needAlphaBlending()?a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(s.uniqueId,"_diffuse.outputs:a>")):t.needAlphaTesting()&&(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(s.uniqueId,"_diffuse.outputs:a>")),a.push("".concat(o,"float inputs:opacityThreshold = ").concat(f))),r.push(_(s,t,"diffuse",u,e,n))):a.push("".concat(o,"color3f inputs:diffuseColor = ").concat(T(u||l.Color3.White()))),null!==p?(a.push("".concat(o,"color3f inputs:emissiveColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(p.uniqueId,"_emissive.outputs:rgb>")),r.push(_(p,t,"emissive",d,e,n))):d&&d.toLuminance()>0&&a.push("".concat(o,"color3f inputs:emissiveColor = ").concat(T(d))),null!==h&&(a.push("".concat(o,"normal3f inputs:normal.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(h.uniqueId,"_normal.outputs:rgb>")),r.push(_(h,t,"normal",null,e,n))),null!==b&&(a.push("".concat(o,"float inputs:occlusion.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(b.uniqueId,"_occlusion.outputs:").concat(C,">")),r.push(_(b,t,"occlusion",new l.Color3(R,R,R),e,n))),null!==m?(a.push("".concat(o,"float inputs:roughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(m.uniqueId,"_roughness.outputs:").concat(g,">")),r.push(_(m,t,"roughness",new l.Color3(y,y,y),e,n))):a.push("".concat(o,"float inputs:roughness = ").concat(y)),null!==v?(a.push("".concat(o,"float inputs:metallic.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(v.uniqueId,"_metallic.outputs:").concat(M,">")),r.push(_(v,t,"metallic",new l.Color3(x,x,x),e,n))):a.push("".concat(o,"float inputs:metallic = ").concat(x)),null!==I?(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(I.uniqueId,"_opacity.outputs:r>")),a.push("".concat(o,"float inputs:opacityThreshold = 0.0001")),r.push(_(I,t,"opacity",null,e,n))):a.push("".concat(o,"float inputs:opacity = ").concat(t.alpha)),O&&(null!==w?(a.push("".concat(o,"float inputs:clearcoat.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(w.uniqueId,"_clearcoat.outputs:r>")),r.push(_(w,t,"clearcoat",new l.Color3(A,A,A),e,n))):a.push("".concat(o,"float inputs:clearcoat = ").concat(A)),null!==q?(a.push("".concat(o,"float inputs:clearcoatRoughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(q.uniqueId,"_clearcoatRoughness.outputs:g>")),r.push(_(q,t,"clearcoatRoughness",new l.Color3(P,P,P),e,n))):a.push("".concat(o,"float inputs:clearcoatRoughness = ").concat(P))),a.push("".concat(o,"float inputs:ior = ").concat(S)),'\n\tdef Material "Material_'.concat(t.uniqueId,'"\n\t{\n\t\tdef Shader "PreviewSurface"\n\t\t{\n\t\t\tuniform token info:id = "UsdPreviewSurface"\n').concat(a.join("\n"),"\n\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\ttoken outputs:surface\n\t\t}\n\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_").concat(t.uniqueId,"/PreviewSurface.outputs:surface>\n\n").concat(r.join("\n"),"\n\n\t}\n")}function R(t){var e,n;t.computeWorldMatrix(!0);for(var o=t.getWorldMatrix().clone(),a=t.getScene().useRightHandedSystem,r=null!==(n=null===(e=t.material)||void 0===e?void 0:e._getEffectiveOrientation(t))&&void 0!==n?n:t.sideOrientation,i=!a,c=t.parent;c;){if(p(c,a)&&null===c.parent){a||(o.multiplyToRef(c.getWorldMatrix().invert(),o),r=r===l.Material.ClockWiseSideOrientation?l.Material.CounterClockWiseSideOrientation:l.Material.ClockWiseSideOrientation),i=!1;break}c=c.parent}return o.determinant()<0&&l.Tools.Warn("Mesh ".concat(t.name," has a negative scale, which may look incorrect in destinations like QuickLook.")),{matrix:o,windingOrder:r===l.Material.ClockWiseSideOrientation?"leftHanded":"rightHanded",convertToRightHanded:i}}function I(t){return s(this,void 0,void 0,function(){var e,n,o,a,r;return u(this,function(i){switch(i.label){case 0:if(!(e=t.getInternalTexture())||1!==e.source)return[2,null];n=e._buffer,a=t.mimeType,i.label=1;case 1:return i.trys.push([1,12,,13]),n?[3,3]:[4,l.Tools.LoadFileAsync(e.url)];case 2:return o=i.sent(),a=(0,l.GetMimeType)(e.url)||a,[3,11];case 3:return ArrayBuffer.isView(n)?(o=n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength),[3,11]):[3,4];case 4:return n instanceof ArrayBuffer?(o=n,[3,11]):[3,5];case 5:return n instanceof Blob?[4,n.arrayBuffer()]:[3,7];case 6:return o=i.sent(),a=n.type||a,[3,11];case 7:return"string"!=typeof n?[3,9]:[4,l.Tools.LoadFileAsync(n)];case 8:return o=i.sent(),a=(0,l.GetMimeType)(n)||a,[3,11];case 9:return"undefined"!=typeof HTMLImageElement&&n instanceof HTMLImageElement?[4,l.Tools.LoadFileAsync(n.src)]:[3,11];case 10:o=i.sent(),a=(0,l.GetMimeType)(n.src)||a,i.label=11;case 11:return[3,13];case 12:return i.sent(),[2,null];case 13:return o&&!a&&e.url&&(r=e.url.match(/^data:([^;,]+)/),a=r?r[1]:(0,l.GetMimeType)(e.url)),o&&a?[2,{data:o,mimeType:a}]:[2,null]}})})}function S(t,e,n){return s(this,void 0,void 0,function(){var o,a,r,i,s,f,p,d,h,v,x,b,T,_,S,O,A,w,P,q,k,E,j,D,B,U,V,W,L,G,F,N,Z,H,z;return u(this,function(u){switch(u.label){case 0:return o=c({fflateUrl:"https://unpkg.com/fflate@0.8.2",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35},e),"undefined"!=typeof fflate?[3,2]:[4,l.Tools.LoadScriptAsync(o.fflateUrl)];case 1:u.sent(),u.label=2;case 2:for((a={})[o.modelFileName]=null,r='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )',r+=function(t){var e=!0===t.includeAnchoringProperties?'\n\t\ttoken preliminary:anchoring:type = "'.concat(t.anchoringType,'"\n\t\ttoken preliminary:planeAnchoring:alignment = "').concat(t.planeAnchoringAlignment,'"'):"";return'def Xform "Root"\n {\n def Scope "Scenes" (\n kind = "sceneLibrary"\n )\n {\n def Xform "Scene" (\n customData = {\n bool preliminary_collidesWithEnvironment = 0\n string sceneName = "Scene"\n }\n sceneName = "Scene"\n )\n {'.concat(e,"\n ")}(o),i={},s=0,f=t.meshes;s<f.length;s++)0!==(p=f[s]).getTotalVertices()&&(h=(d=p).geometry,(v=d.material)&&h&&(!n||n(d))&&(-1!==["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(v.getClassName())?(x="geometries/Geometry_"+h.uniqueId+".usda",b=R(d),T=b.matrix,_=b.windingOrder,S=b.convertToRightHanded,x in a||(O=m(h,o,_,S),a[x]=g(O)),v.uniqueId in i||(i[v.uniqueId]=v),r+=M(d,T)):l.Tools.Warn("USDZExportAsync does not support this material type: "+v.getClassName())));for(q in t.activeCamera&&o.exportCamera&&(r+=function(t,e){var n="Camera_"+t.uniqueId,o=y(l.Matrix.RotationY(Math.PI).multiply(t.getWorldMatrix()));if(t.mode===l.Constants.ORTHOGRAPHIC_CAMERA)return'def Camera "'.concat(n,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(e.precision),", ").concat(t.maxZ.toPrecision(e.precision),")\n\t\t\tfloat horizontalAperture = ").concat((10*(Math.abs(t.orthoLeft||1)+Math.abs(t.orthoRight||1))).toPrecision(e.precision),"\n\t\t\tfloat verticalAperture = ").concat((10*(Math.abs(t.orthoTop||1)+Math.abs(t.orthoBottom||1))).toPrecision(e.precision),'\n\t\t\ttoken projection = "orthographic"\n\t\t}\n\t\n\t');var a=t.getEngine().getAspectRatio(t),r=e.cameraSensorWidth||35;return'def Camera "'.concat(n,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(e.precision),", ").concat(t.maxZ.toPrecision(e.precision),")\n\t\t\tfloat focalLength = ").concat((r/(2*Math.tan(.5*t.fov))).toPrecision(e.precision),'\n token projection = "perspective"\n\t\t\tfloat horizontalAperture = ').concat((r*a).toPrecision(e.precision),"\n\t\t\tfloat verticalAperture = ").concat((r/a).toPrecision(e.precision)," \n\t\t}\n\t\n\t")}(t.activeCamera,o)),r+="\n }\n }",r+=function(t,e,n){var o=[];for(var a in t){var r=t[a];o.push(C(r,e,n))}return'\n def "Materials"\n{\n'.concat(o.join(""),"\n}\n\n")}(i,A={},o),r+="\n }",a[o.modelFileName]=fflate.strToU8(r),P=[],w=A)P.push(q);k=0,u.label=3;case 3:return k<P.length?(q=P[k])in w?(j=A[E=q],D=j.texture,B=j.ext,[4,I(D)]):[3,8]:[3,9];case 4:return(U=u.sent())?(a["textures/Texture_".concat(E,".").concat(B)]=new Uint8Array(U.data),[3,8]):[3,5];case 5:return V=D.getSize(),[4,(0,l.GetTextureDataAsync)(D)];case 6:return W=u.sent(),[4,l.DumpTools.DumpDataAsync(V.width,V.height,W,"image/png",void 0,!1,!0)];case 7:L=u.sent(),a["textures/Texture_".concat(E,".").concat(B)]=new Uint8Array(L).slice(),u.label=8;case 8:return k++,[3,3];case 9:for(F in G=0,a)(N=a[F])&&(Z=34+F.length,4!=(H=63&(G+=Z))&&(z=new Uint8Array(64-H),a[F]=[N,{extra:{12345:z}}]),G=N.length);return[2,fflate.zipSync(a,{level:0})]}})})}var O=void 0!==o.g?o.g:"undefined"!=typeof window?window:void 0;if(void 0!==O)for(var A in r)O.BABYLON[A]=r[A];const w=i;return a.default})());
|
|
2
2
|
//# sourceMappingURL=babylon.usdzSerializer.min.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-serializers",["babylonjs"],n):"object"==typeof exports?exports["babylonjs-serializers"]=n(require("babylonjs")):t.SERIALIZERS=n(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,t=>(()=>{"use strict";var n={597(n){n.exports=t}},e={};function o(t){var a=e[t];if(void 0!==a)return a.exports;var r=e[t]={exports:{}};return n[t](r,r.exports,o),r.exports}o.d=(t,n)=>{for(var e in n)o.o(n,e)&&!o.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};o.d(a,{default:()=>S});var r={};o.r(r),o.d(r,{USDZExportAsync:()=>T});var i={};o.r(i),o.d(i,{USDZExportAsync:()=>T});var c=function(){return c=Object.assign||function(t){for(var n,e=1,o=arguments.length;e<o;e++)for(var a in n=arguments[e])Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);return t},c.apply(this,arguments)};Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var s=o(597),u=s.Matrix.Compose(new s.Vector3(-1,1,1),s.Quaternion.Identity(),s.Vector3.Zero());function l(t,n){if(!(t instanceof s.TransformNode))return!1;if(n){if(!t.getWorldMatrix().equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1}else if(!t.getWorldMatrix().multiplyToRef(u,s.TmpVectors.Matrix[0]).equalsWithEpsilon(s.Matrix.IdentityReadOnly,s.Epsilon))return!1;return!(t instanceof s.AbstractMesh&&t.geometry)}function p(t,n,e,o){void 0===e&&(e=3),void 0===o&&(o=!1);for(var a=[],r=0;r<t.length/e;r++){var i=t[r*e]*(o?-1:1),c=t[r*e+1],s=t[r*e+2];a.push("(".concat(i.toPrecision(n.precision),", ").concat(c.toPrecision(n.precision),", ").concat(s.toPrecision(n.precision),")"))}return a.join(", ")}function f(t,n){for(var e=[],o=0;o<t.length/2;o++){var a=t[2*o],r=t[2*o+1];e.push("(".concat(a.toPrecision(n.precision),", ").concat((1-r).toPrecision(n.precision),")"))}return e.join(", ")}function d(t,n,e,o){var a=function(t,n,e,o){var a=t.getVerticesData(s.VertexBuffer.PositionKind),r=t.getVerticesData(s.VertexBuffer.NormalKind);if(a&&r)return'\n\tdef Mesh "'.concat("Geometry",'"\n\t{\n uniform token orientation = "').concat(e,'"\n\t\tint[] faceVertexCounts = [').concat(function(t){var n,e=(null===(n=t.getIndices())||void 0===n?void 0:n.length)?t.getTotalIndices():t.getTotalVertices();return Array(e/3).fill(3).join(", ")}(t),"]\n\t\tint[] faceVertexIndices = [").concat(function(t){var n,e=t.getIndices(),o=null!==(n=null==e?void 0:e.length)&&void 0!==n?n:t.getTotalVertices(),a=[];if(null!==e)for(var r=0;r<o;r++)a.push(e[r]);else for(r=0;r<o;r++)a.push(r);return a.join(", ")}(t),"]\n\t\tnormal3f[] normals = [").concat(p(r,n,void 0,o),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)\n\t\tpoint3f[] points = [').concat(p(a,n,void 0,o),"]\n ").concat(function(t,n){for(var e="",o=0;o<4;o++){var a=o>0?o:"",r=t.getVerticesData(s.VertexBuffer.UVKind+(a?a+1:""));r&&(e+="\n\t\ttexCoord2f[] primvars:st".concat(a," = [").concat(f(r,n),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)'))}var i=t.getVerticesData(s.VertexBuffer.ColorKind);return i&&(e+="\n\tcolor3f[] primvars:displayColor = [".concat(p(i,n,i.length/t.getTotalVertices()),'] (\n\t\tinterpolation = "vertex"\n\t\t)')),e}(t,n),'\n\t\tuniform token subdivisionScheme = "none"\n\t}\n')}(t,n,e,o);return'\n def "Geometry"\n {\n '.concat(a,"\n }\n ")}function h(t){var n='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )';return n+=t,fflate.strToU8(n)}function m(t){var n=t.m;return"( ".concat(g(n,0),", ").concat(g(n,4),", ").concat(g(n,8),", ").concat(g(n,12)," )")}function g(t,n){return"(".concat(t[n+0],", ").concat(t[n+1],", ").concat(t[n+2],", ").concat(t[n+3],")")}function v(t,n){var e="Object_"+t.uniqueId,o=m(n);return'def Xform "'.concat(e,'" (\n\tprepend references = @./geometries/Geometry_').concat(t.geometry.uniqueId,'.usda@</Geometry>\n\tprepend apiSchemas = ["MaterialBindingAPI"]\n)\n{\n\tmatrix4d xformOp:transform = ').concat(o,'\n\tuniform token[] xformOpOrder = ["xformOp:transform"]\t\n\n rel material:binding = </Root/Materials/Material_').concat(t.material.uniqueId,">\n}\n\n")}function M(t){switch(t){case s.Constants.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case s.Constants.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case s.Constants.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function y(t){return"(".concat(t.x,", ").concat(t.y,")")}function x(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,")")}function b(t,n,e,o,a,r){var i=t.getInternalTexture().uniqueId+"_"+t.invertY;a[i]=t;var c=t.coordinatesIndex>0?"st"+t.coordinatesIndex:"st",u=new s.Vector2(t.uScale,t.vScale),l=new s.Vector2(t.uOffset,t.vOffset),p=t.wAng,f=Math.sin(p),d=Math.cos(p);return l.y=1-l.y-u.y,l.x+=f*u.x,l.y+=(1-d)*u.y,'\n def Shader "PrimvarReader_'.concat(e,'"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n float2 inputs:fallback = (0.0, 0.0)\n token inputs:varname = "').concat(c,'"\n float2 outputs:result\n }\n\n def Shader "Transform2d_').concat(e,'"\n {\n uniform token info:id = "UsdTransform2d"\n token inputs:in.connect = </Root/Materials/Material_').concat(n.uniqueId,"/PrimvarReader_").concat(e,".outputs:result>\n float inputs:rotation = ").concat((p*(180/Math.PI)).toFixed(r.precision),"\n float2 inputs:scale = ").concat(y(u),"\n float2 inputs:translation = ").concat(y(l),'\n float2 outputs:result\n }\n\n def Shader "Texture_').concat(t.uniqueId,"_").concat(e,'"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_').concat(i,".png@\n float2 inputs:st.connect = </Root/Materials/Material_").concat(n.uniqueId,"/Transform2d_").concat(e,".outputs:result>\n ").concat(o?"float4 inputs:scale = "+function(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", 1.0)")}(o):"",'\n token inputs:sourceColorSpace = "').concat(t.gammaSpace?"sRGB":"raw",'"\n token inputs:wrapS = "').concat(M(t.wrapU),'"\n token inputs:wrapT = "').concat(M(t.wrapV),'"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ').concat(n.needAlphaBlending()||n.needAlphaTesting()?"float outputs:a":"","\n }")}function _(t,n,e){var o="\t\t\t",a=[],r=[],i=function(t){var n,e,o={diffuseMap:null,diffuse:null,alphaCutOff:0,emissiveMap:null,emissive:null,normalMap:null,roughnessMap:null,roughnessChannel:"a",roughness:0,metalnessMap:null,metalnessChannel:"r",metalness:0,aoMap:null,aoMapChannel:"rgb",aoMapIntensity:0,alphaMap:null,ior:1,clearCoatEnabled:!1,clearCoat:0,clearCoatMap:null,clearCoatRoughness:0,clearCoatRoughnessMap:null};return t instanceof s.StandardMaterial?c(c({},o),{diffuseMap:t.diffuseTexture,diffuse:t.diffuseColor,alphaCutOff:t.alphaCutOff,emissiveMap:t.emissiveTexture,emissive:t.emissiveColor,roughness:1,alphaMap:t.opacityTexture}):t instanceof s.PBRBaseMaterial?c(c({},o),{diffuseMap:t._albedoTexture,diffuse:t._albedoColor,alphaCutOff:t._alphaCutOff,emissiveMap:t._emissiveTexture,emissive:t._emissiveColor,normalMap:t._bumpTexture,roughnessMap:t._metallicTexture,roughnessChannel:t._useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:null!==(n=t._roughness)&&void 0!==n?n:1,metalnessMap:t._metallicTexture,metalnessChannel:t._useMetallnessFromMetallicTextureBlue?"b":"r",metalness:null!==(e=t._metallic)&&void 0!==e?e:0,aoMap:t._ambientTexture,aoMapChannel:t._useAmbientInGrayScale?"r":"rgb",aoMapIntensity:t._ambientTextureStrength,alphaMap:t._opacityTexture,ior:t.subSurface.indexOfRefraction,clearCoatEnabled:t.clearCoat.isEnabled,clearCoat:t.clearCoat.intensity,clearCoatMap:t.clearCoat.texture,clearCoatRoughness:t.clearCoat.roughness,clearCoatRoughnessMap:t.clearCoat.useRoughnessFromMainTexture?t.clearCoat.texture:t.clearCoat.textureRoughness}):o}(t),u=i.diffuseMap,l=i.diffuse,p=i.alphaCutOff,f=i.emissiveMap,d=i.emissive,h=i.normalMap,m=i.roughnessMap,g=i.roughnessChannel,v=i.roughness,M=i.metalnessMap,y=i.metalnessChannel,_=i.metalness,C=i.aoMap,T=i.aoMapChannel,R=i.aoMapIntensity,I=i.alphaMap,S=i.ior,O=i.clearCoatEnabled,w=i.clearCoat,A=i.clearCoatMap,P=i.clearCoatRoughness,q=i.clearCoatRoughnessMap;return null!==u?(a.push("".concat(o,"color3f inputs:diffuseColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:rgb>")),t.needAlphaBlending()?a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")):t.needAlphaTesting()&&(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(u.uniqueId,"_diffuse.outputs:a>")),a.push("".concat(o,"float inputs:opacityThreshold = ").concat(p))),r.push(b(u,t,"diffuse",l,n,e))):a.push("".concat(o,"color3f inputs:diffuseColor = ").concat(x(l||s.Color3.White()))),null!==f?(a.push("".concat(o,"color3f inputs:emissiveColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(f.uniqueId,"_emissive.outputs:rgb>")),r.push(b(f,t,"emissive",d,n,e))):d&&d.toLuminance()>0&&a.push("".concat(o,"color3f inputs:emissiveColor = ").concat(x(d))),null!==h&&(a.push("".concat(o,"normal3f inputs:normal.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(h.uniqueId,"_normal.outputs:rgb>")),r.push(b(h,t,"normal",null,n,e))),null!==C&&(a.push("".concat(o,"float inputs:occlusion.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(C.uniqueId,"_occlusion.outputs:").concat(T,">")),r.push(b(C,t,"occlusion",new s.Color3(R,R,R),n,e))),null!==m?(a.push("".concat(o,"float inputs:roughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(m.uniqueId,"_roughness.outputs:").concat(g,">")),r.push(b(m,t,"roughness",new s.Color3(v,v,v),n,e))):a.push("".concat(o,"float inputs:roughness = ").concat(v)),null!==M?(a.push("".concat(o,"float inputs:metallic.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(M.uniqueId,"_metallic.outputs:").concat(y,">")),r.push(b(M,t,"metallic",new s.Color3(_,_,_),n,e))):a.push("".concat(o,"float inputs:metallic = ").concat(_)),null!==I?(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(I.uniqueId,"_opacity.outputs:r>")),a.push("".concat(o,"float inputs:opacityThreshold = 0.0001")),r.push(b(I,t,"opacity",null,n,e))):a.push("".concat(o,"float inputs:opacity = ").concat(t.alpha)),O&&(null!==A?(a.push("".concat(o,"float inputs:clearcoat.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(A.uniqueId,"_clearcoat.outputs:r>")),r.push(b(A,t,"clearcoat",new s.Color3(w,w,w),n,e))):a.push("".concat(o,"float inputs:clearcoat = ").concat(w)),null!==q?(a.push("".concat(o,"float inputs:clearcoatRoughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(q.uniqueId,"_clearcoatRoughness.outputs:g>")),r.push(b(q,t,"clearcoatRoughness",new s.Color3(P,P,P),n,e))):a.push("".concat(o,"float inputs:clearcoatRoughness = ").concat(P))),a.push("".concat(o,"float inputs:ior = ").concat(S)),'\n\tdef Material "Material_'.concat(t.uniqueId,'"\n\t{\n\t\tdef Shader "PreviewSurface"\n\t\t{\n\t\t\tuniform token info:id = "UsdPreviewSurface"\n').concat(a.join("\n"),"\n\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\ttoken outputs:surface\n\t\t}\n\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_").concat(t.uniqueId,"/PreviewSurface.outputs:surface>\n\n").concat(r.join("\n"),"\n\n\t}\n")}function C(t){var n,e;t.computeWorldMatrix(!0);for(var o=t.getWorldMatrix().clone(),a=t.getScene().useRightHandedSystem,r=null!==(e=null===(n=t.material)||void 0===n?void 0:n._getEffectiveOrientation(t))&&void 0!==e?e:t.sideOrientation,i=!a,c=t.parent;c;){if(l(c,a)&&null===c.parent){a||(o.multiplyToRef(c.getWorldMatrix().invert(),o),r=r===s.Material.ClockWiseSideOrientation?s.Material.CounterClockWiseSideOrientation:s.Material.ClockWiseSideOrientation),i=!1;break}c=c.parent}return o.determinant()<0&&s.Tools.Warn("Mesh ".concat(t.name," has a negative scale, which may look incorrect in destinations like QuickLook.")),{matrix:o,windingOrder:r===s.Material.ClockWiseSideOrientation?"leftHanded":"rightHanded",convertToRightHanded:i}}function T(t,n,e){return o=this,a=void 0,i=function(){var o,a,r,i,u,l,p,f,g,M,y,x,b,T,R,I,S,O,w,A,P,q,k,E,j,D,U,V,B,W,L,N;return function(t,n){var e,o,a,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(r=0)),r;)try{if(e=1,o&&(a=2&c[0]?o.return:c[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,c[1])).done)return a;switch(o=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,o=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(!((a=(a=r.trys).length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){r=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){r.label=c[1];break}if(6===c[0]&&r.label<a[1]){r.label=a[1],a=c;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(c);break}a[2]&&r.ops.pop(),r.trys.pop();continue}c=n.call(t,r)}catch(t){c=[6,t],o=0}finally{e=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}(this,function(Z){switch(Z.label){case 0:return o=c({fflateUrl:"https://unpkg.com/fflate@0.8.2",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35},n),"undefined"!=typeof fflate?[3,2]:[4,s.Tools.LoadScriptAsync(o.fflateUrl)];case 1:Z.sent(),Z.label=2;case 2:for((a={})[o.modelFileName]=null,r='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )',r+=function(t){var n=!0===t.includeAnchoringProperties?'\n\t\ttoken preliminary:anchoring:type = "'.concat(t.anchoringType,'"\n\t\ttoken preliminary:planeAnchoring:alignment = "').concat(t.planeAnchoringAlignment,'"'):"";return'def Xform "Root"\n {\n def Scope "Scenes" (\n kind = "sceneLibrary"\n )\n {\n def Xform "Scene" (\n customData = {\n bool preliminary_collidesWithEnvironment = 0\n string sceneName = "Scene"\n }\n sceneName = "Scene"\n )\n {'.concat(n,"\n ")}(o),i={},u=0,l=t.meshes;u<l.length;u++)0!==(p=l[u]).getTotalVertices()&&(g=(f=p).geometry,(M=f.material)&&g&&(!e||e(f))&&(-1!==["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(M.getClassName())?(y="geometries/Geometry_"+g.uniqueId+".usda",x=C(f),b=x.matrix,T=x.windingOrder,R=x.convertToRightHanded,y in a||(I=d(g,o,T,R),a[y]=h(I)),M.uniqueId in i||(i[M.uniqueId]=M),r+=v(f,b)):s.Tools.Warn("USDZExportAsync does not support this material type: "+M.getClassName())));for(A in t.activeCamera&&o.exportCamera&&(r+=function(t,n){var e="Camera_"+t.uniqueId,o=m(s.Matrix.RotationY(Math.PI).multiply(t.getWorldMatrix()));if(t.mode===s.Constants.ORTHOGRAPHIC_CAMERA)return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat horizontalAperture = ").concat((10*(Math.abs(t.orthoLeft||1)+Math.abs(t.orthoRight||1))).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((10*(Math.abs(t.orthoTop||1)+Math.abs(t.orthoBottom||1))).toPrecision(n.precision),'\n\t\t\ttoken projection = "orthographic"\n\t\t}\n\t\n\t');var a=t.getEngine().getAspectRatio(t),r=n.cameraSensorWidth||35;return'def Camera "'.concat(e,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(n.precision),", ").concat(t.maxZ.toPrecision(n.precision),")\n\t\t\tfloat focalLength = ").concat((r/(2*Math.tan(.5*t.fov))).toPrecision(n.precision),'\n token projection = "perspective"\n\t\t\tfloat horizontalAperture = ').concat((r*a).toPrecision(n.precision),"\n\t\t\tfloat verticalAperture = ").concat((r/a).toPrecision(n.precision)," \n\t\t}\n\t\n\t")}(t.activeCamera,o)),r+="\n }\n }",r+=function(t,n,e){var o=[];for(var a in t){var r=t[a];o.push(_(r,n,e))}return'\n def "Materials"\n{\n'.concat(o.join(""),"\n}\n\n")}(i,S={},o),r+="\n }",a[o.modelFileName]=fflate.strToU8(r),w=[],O=S)w.push(A);P=0,Z.label=3;case 3:return P<w.length?(A=w[P])in O?(k=S[q=A],E=k.getSize(),[4,(0,s.GetTextureDataAsync)(k)]):[3,6]:[3,7];case 4:return j=Z.sent(),[4,s.DumpTools.DumpDataAsync(E.width,E.height,j,"image/png",void 0,!1,!0)];case 5:D=Z.sent(),a["textures/Texture_".concat(q,".png")]=new Uint8Array(D).slice(),Z.label=6;case 6:return P++,[3,3];case 7:for(V in U=0,a)(B=a[V])&&(W=34+V.length,4!=(L=63&(U+=W))&&(N=new Uint8Array(64-L),a[V]=[B,{extra:{12345:N}}]),U=B.length);return[2,fflate.zipSync(a,{level:0})]}})},new((r=void 0)||(r=Promise))(function(t,n){function e(t){try{s(i.next(t))}catch(t){n(t)}}function c(t){try{s(i.throw(t))}catch(t){n(t)}}function s(n){var o;n.done?t(n.value):(o=n.value,o instanceof r?o:new r(function(t){t(o)})).then(e,c)}s((i=i.apply(o,a||[])).next())});var o,a,r,i}var R=void 0!==o.g?o.g:"undefined"!=typeof window?window:void 0;if(void 0!==R)for(var I in r)R.BABYLON[I]=r[I];const S=i;return a.default})());
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-serializers",["babylonjs"],e):"object"==typeof exports?exports["babylonjs-serializers"]=e(require("babylonjs")):t.SERIALIZERS=e(t.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,t=>(()=>{"use strict";var e={597(e){e.exports=t}},n={};function o(t){var a=n[t];if(void 0!==a)return a.exports;var r=n[t]={exports:{}};return e[t](r,r.exports,o),r.exports}o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};o.d(a,{default:()=>w});var r={};o.r(r),o.d(r,{USDZExportAsync:()=>S});var i={};o.r(i),o.d(i,{USDZExportAsync:()=>S});var c=function(){return c=Object.assign||function(t){for(var e,n=1,o=arguments.length;n<o;n++)for(var a in e=arguments[n])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},c.apply(this,arguments)};function s(t,e,n,o){return new(n||(n=Promise))(function(a,r){function i(t){try{s(o.next(t))}catch(t){r(t)}}function c(t){try{s(o.throw(t))}catch(t){r(t)}}function s(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(i,c)}s((o=o.apply(t,e||[])).next())})}function u(t,e){var n,o,a,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(r=0)),r;)try{if(n=1,o&&(a=2&c[0]?o.return:c[0]?o.throw||((a=o.return)&&a.call(o),0):o.next)&&!(a=a.call(o,c[1])).done)return a;switch(o=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return r.label++,{value:c[1],done:!1};case 5:r.label++,o=c[1],c=[0];continue;case 7:c=r.ops.pop(),r.trys.pop();continue;default:if(!((a=(a=r.trys).length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){r=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){r.label=c[1];break}if(6===c[0]&&r.label<a[1]){r.label=a[1],a=c;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(c);break}a[2]&&r.ops.pop(),r.trys.pop();continue}c=e.call(t,r)}catch(t){c=[6,t],o=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var l=o(597),f=l.Matrix.Compose(new l.Vector3(-1,1,1),l.Quaternion.Identity(),l.Vector3.Zero());function p(t,e){if(!(t instanceof l.TransformNode))return!1;if(e){if(!t.getWorldMatrix().equalsWithEpsilon(l.Matrix.IdentityReadOnly,l.Epsilon))return!1}else if(!t.getWorldMatrix().multiplyToRef(f,l.TmpVectors.Matrix[0]).equalsWithEpsilon(l.Matrix.IdentityReadOnly,l.Epsilon))return!1;return!(t instanceof l.AbstractMesh&&t.geometry)}function d(t,e,n,o){void 0===n&&(n=3),void 0===o&&(o=!1);for(var a=[],r=0;r<t.length/n;r++){var i=t[r*n]*(o?-1:1),c=t[r*n+1],s=t[r*n+2];a.push("(".concat(i.toPrecision(e.precision),", ").concat(c.toPrecision(e.precision),", ").concat(s.toPrecision(e.precision),")"))}return a.join(", ")}function h(t,e){for(var n=[],o=0;o<t.length/2;o++){var a=t[2*o],r=t[2*o+1];n.push("(".concat(a.toPrecision(e.precision),", ").concat((1-r).toPrecision(e.precision),")"))}return n.join(", ")}function m(t,e,n,o){var a=function(t,e,n,o){var a=t.getVerticesData(l.VertexBuffer.PositionKind),r=t.getVerticesData(l.VertexBuffer.NormalKind);if(a&&r)return'\n\tdef Mesh "'.concat("Geometry",'"\n\t{\n uniform token orientation = "').concat(n,'"\n\t\tint[] faceVertexCounts = [').concat(function(t){var e,n=(null===(e=t.getIndices())||void 0===e?void 0:e.length)?t.getTotalIndices():t.getTotalVertices();return Array(n/3).fill(3).join(", ")}(t),"]\n\t\tint[] faceVertexIndices = [").concat(function(t){var e,n=t.getIndices(),o=null!==(e=null==n?void 0:n.length)&&void 0!==e?e:t.getTotalVertices(),a=[];if(null!==n)for(var r=0;r<o;r++)a.push(n[r]);else for(r=0;r<o;r++)a.push(r);return a.join(", ")}(t),"]\n\t\tnormal3f[] normals = [").concat(d(r,e,void 0,o),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)\n\t\tpoint3f[] points = [').concat(d(a,e,void 0,o),"]\n ").concat(function(t,e){for(var n="",o=0;o<4;o++){var a=o>0?o:"",r=t.getVerticesData(l.VertexBuffer.UVKind+(a?a+1:""));r&&(n+="\n\t\ttexCoord2f[] primvars:st".concat(a," = [").concat(h(r,e),'] (\n\t\t\tinterpolation = "vertex"\n\t\t)'))}var i=t.getVerticesData(l.VertexBuffer.ColorKind);return i&&(n+="\n\tcolor3f[] primvars:displayColor = [".concat(d(i,e,i.length/t.getTotalVertices()),'] (\n\t\tinterpolation = "vertex"\n\t\t)')),n}(t,e),'\n\t\tuniform token subdivisionScheme = "none"\n\t}\n')}(t,e,n,o);return'\n def "Geometry"\n {\n '.concat(a,"\n }\n ")}function g(t){var e='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )';return e+=t,fflate.strToU8(e)}function y(t){var e=t.m;return"( ".concat(v(e,0),", ").concat(v(e,4),", ").concat(v(e,8),", ").concat(v(e,12)," )")}function v(t,e){return"(".concat(t[e+0],", ").concat(t[e+1],", ").concat(t[e+2],", ").concat(t[e+3],")")}function M(t,e){var n="Object_"+t.uniqueId,o=y(e);return'def Xform "'.concat(n,'" (\n\tprepend references = @./geometries/Geometry_').concat(t.geometry.uniqueId,'.usda@</Geometry>\n\tprepend apiSchemas = ["MaterialBindingAPI"]\n)\n{\n\tmatrix4d xformOp:transform = ').concat(o,'\n\tuniform token[] xformOpOrder = ["xformOp:transform"]\t\n\n rel material:binding = </Root/Materials/Material_').concat(t.material.uniqueId,">\n}\n\n")}function x(t){switch(t){case l.Constants.TEXTURE_CLAMP_ADDRESSMODE:return"clamp";case l.Constants.TEXTURE_MIRROR_ADDRESSMODE:return"mirror";case l.Constants.TEXTURE_WRAP_ADDRESSMODE:default:return"repeat"}}function b(t){return"(".concat(t.x,", ").concat(t.y,")")}function T(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,")")}function _(t,e,n,o,a,r){var i,c,s=t.getInternalTexture().uniqueId+"_"+t.invertY,u="image/jpeg"===(t.mimeType||(0,l.GetMimeType)(null!==(c=null===(i=t.getInternalTexture())||void 0===i?void 0:i.url)&&void 0!==c?c:""))?"jpg":"png";a[s]={texture:t,ext:u};var f=t.coordinatesIndex>0?"st"+t.coordinatesIndex:"st",p=new l.Vector2(t.uScale,t.vScale),d=new l.Vector2(t.uOffset,t.vOffset),h=t.wAng,m=Math.sin(h),g=Math.cos(h);return d.y=1-d.y-p.y,d.x+=m*p.x,d.y+=(1-g)*p.y,'\n def Shader "PrimvarReader_'.concat(n,'"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n float2 inputs:fallback = (0.0, 0.0)\n token inputs:varname = "').concat(f,'"\n float2 outputs:result\n }\n\n def Shader "Transform2d_').concat(n,'"\n {\n uniform token info:id = "UsdTransform2d"\n token inputs:in.connect = </Root/Materials/Material_').concat(e.uniqueId,"/PrimvarReader_").concat(n,".outputs:result>\n float inputs:rotation = ").concat((h*(180/Math.PI)).toFixed(r.precision),"\n float2 inputs:scale = ").concat(b(p),"\n float2 inputs:translation = ").concat(b(d),'\n float2 outputs:result\n }\n\n def Shader "Texture_').concat(t.uniqueId,"_").concat(n,'"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_').concat(s,".").concat(u,"@\n float2 inputs:st.connect = </Root/Materials/Material_").concat(e.uniqueId,"/Transform2d_").concat(n,".outputs:result>\n ").concat(o?"float4 inputs:scale = "+function(t){return"(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", 1.0)")}(o):"",'\n token inputs:sourceColorSpace = "').concat(t.gammaSpace?"sRGB":"raw",'"\n token inputs:wrapS = "').concat(x(t.wrapU),'"\n token inputs:wrapT = "').concat(x(t.wrapV),'"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ').concat(e.needAlphaBlending()||e.needAlphaTesting()?"float outputs:a":"","\n }")}function C(t,e,n){var o="\t\t\t",a=[],r=[],i=function(t){var e,n,o={diffuseMap:null,diffuse:null,alphaCutOff:0,emissiveMap:null,emissive:null,normalMap:null,roughnessMap:null,roughnessChannel:"a",roughness:0,metalnessMap:null,metalnessChannel:"r",metalness:0,aoMap:null,aoMapChannel:"rgb",aoMapIntensity:0,alphaMap:null,ior:1,clearCoatEnabled:!1,clearCoat:0,clearCoatMap:null,clearCoatRoughness:0,clearCoatRoughnessMap:null};return t instanceof l.StandardMaterial?c(c({},o),{diffuseMap:t.diffuseTexture,diffuse:t.diffuseColor,alphaCutOff:t.alphaCutOff,emissiveMap:t.emissiveTexture,emissive:t.emissiveColor,roughness:1,alphaMap:t.opacityTexture}):t instanceof l.PBRBaseMaterial?c(c({},o),{diffuseMap:t._albedoTexture,diffuse:t._albedoColor,alphaCutOff:t._alphaCutOff,emissiveMap:t._emissiveTexture,emissive:t._emissiveColor,normalMap:t._bumpTexture,roughnessMap:t._metallicTexture,roughnessChannel:t._useRoughnessFromMetallicTextureAlpha?"a":"g",roughness:null!==(e=t._roughness)&&void 0!==e?e:1,metalnessMap:t._metallicTexture,metalnessChannel:t._useMetallnessFromMetallicTextureBlue?"b":"r",metalness:null!==(n=t._metallic)&&void 0!==n?n:0,aoMap:t._ambientTexture,aoMapChannel:t._useAmbientInGrayScale?"r":"rgb",aoMapIntensity:t._ambientTextureStrength,alphaMap:t._opacityTexture,ior:t.subSurface.indexOfRefraction,clearCoatEnabled:t.clearCoat.isEnabled,clearCoat:t.clearCoat.intensity,clearCoatMap:t.clearCoat.texture,clearCoatRoughness:t.clearCoat.roughness,clearCoatRoughnessMap:t.clearCoat.useRoughnessFromMainTexture?t.clearCoat.texture:t.clearCoat.textureRoughness}):o}(t),s=i.diffuseMap,u=i.diffuse,f=i.alphaCutOff,p=i.emissiveMap,d=i.emissive,h=i.normalMap,m=i.roughnessMap,g=i.roughnessChannel,y=i.roughness,v=i.metalnessMap,M=i.metalnessChannel,x=i.metalness,b=i.aoMap,C=i.aoMapChannel,R=i.aoMapIntensity,I=i.alphaMap,S=i.ior,O=i.clearCoatEnabled,A=i.clearCoat,w=i.clearCoatMap,P=i.clearCoatRoughness,q=i.clearCoatRoughnessMap;return null!==s?(a.push("".concat(o,"color3f inputs:diffuseColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(s.uniqueId,"_diffuse.outputs:rgb>")),t.needAlphaBlending()?a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(s.uniqueId,"_diffuse.outputs:a>")):t.needAlphaTesting()&&(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(s.uniqueId,"_diffuse.outputs:a>")),a.push("".concat(o,"float inputs:opacityThreshold = ").concat(f))),r.push(_(s,t,"diffuse",u,e,n))):a.push("".concat(o,"color3f inputs:diffuseColor = ").concat(T(u||l.Color3.White()))),null!==p?(a.push("".concat(o,"color3f inputs:emissiveColor.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(p.uniqueId,"_emissive.outputs:rgb>")),r.push(_(p,t,"emissive",d,e,n))):d&&d.toLuminance()>0&&a.push("".concat(o,"color3f inputs:emissiveColor = ").concat(T(d))),null!==h&&(a.push("".concat(o,"normal3f inputs:normal.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(h.uniqueId,"_normal.outputs:rgb>")),r.push(_(h,t,"normal",null,e,n))),null!==b&&(a.push("".concat(o,"float inputs:occlusion.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(b.uniqueId,"_occlusion.outputs:").concat(C,">")),r.push(_(b,t,"occlusion",new l.Color3(R,R,R),e,n))),null!==m?(a.push("".concat(o,"float inputs:roughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(m.uniqueId,"_roughness.outputs:").concat(g,">")),r.push(_(m,t,"roughness",new l.Color3(y,y,y),e,n))):a.push("".concat(o,"float inputs:roughness = ").concat(y)),null!==v?(a.push("".concat(o,"float inputs:metallic.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(v.uniqueId,"_metallic.outputs:").concat(M,">")),r.push(_(v,t,"metallic",new l.Color3(x,x,x),e,n))):a.push("".concat(o,"float inputs:metallic = ").concat(x)),null!==I?(a.push("".concat(o,"float inputs:opacity.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(I.uniqueId,"_opacity.outputs:r>")),a.push("".concat(o,"float inputs:opacityThreshold = 0.0001")),r.push(_(I,t,"opacity",null,e,n))):a.push("".concat(o,"float inputs:opacity = ").concat(t.alpha)),O&&(null!==w?(a.push("".concat(o,"float inputs:clearcoat.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(w.uniqueId,"_clearcoat.outputs:r>")),r.push(_(w,t,"clearcoat",new l.Color3(A,A,A),e,n))):a.push("".concat(o,"float inputs:clearcoat = ").concat(A)),null!==q?(a.push("".concat(o,"float inputs:clearcoatRoughness.connect = </Root/Materials/Material_").concat(t.uniqueId,"/Texture_").concat(q.uniqueId,"_clearcoatRoughness.outputs:g>")),r.push(_(q,t,"clearcoatRoughness",new l.Color3(P,P,P),e,n))):a.push("".concat(o,"float inputs:clearcoatRoughness = ").concat(P))),a.push("".concat(o,"float inputs:ior = ").concat(S)),'\n\tdef Material "Material_'.concat(t.uniqueId,'"\n\t{\n\t\tdef Shader "PreviewSurface"\n\t\t{\n\t\t\tuniform token info:id = "UsdPreviewSurface"\n').concat(a.join("\n"),"\n\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\ttoken outputs:surface\n\t\t}\n\n\t\ttoken outputs:surface.connect = </Root/Materials/Material_").concat(t.uniqueId,"/PreviewSurface.outputs:surface>\n\n").concat(r.join("\n"),"\n\n\t}\n")}function R(t){var e,n;t.computeWorldMatrix(!0);for(var o=t.getWorldMatrix().clone(),a=t.getScene().useRightHandedSystem,r=null!==(n=null===(e=t.material)||void 0===e?void 0:e._getEffectiveOrientation(t))&&void 0!==n?n:t.sideOrientation,i=!a,c=t.parent;c;){if(p(c,a)&&null===c.parent){a||(o.multiplyToRef(c.getWorldMatrix().invert(),o),r=r===l.Material.ClockWiseSideOrientation?l.Material.CounterClockWiseSideOrientation:l.Material.ClockWiseSideOrientation),i=!1;break}c=c.parent}return o.determinant()<0&&l.Tools.Warn("Mesh ".concat(t.name," has a negative scale, which may look incorrect in destinations like QuickLook.")),{matrix:o,windingOrder:r===l.Material.ClockWiseSideOrientation?"leftHanded":"rightHanded",convertToRightHanded:i}}function I(t){return s(this,void 0,void 0,function(){var e,n,o,a,r;return u(this,function(i){switch(i.label){case 0:if(!(e=t.getInternalTexture())||1!==e.source)return[2,null];n=e._buffer,a=t.mimeType,i.label=1;case 1:return i.trys.push([1,12,,13]),n?[3,3]:[4,l.Tools.LoadFileAsync(e.url)];case 2:return o=i.sent(),a=(0,l.GetMimeType)(e.url)||a,[3,11];case 3:return ArrayBuffer.isView(n)?(o=n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength),[3,11]):[3,4];case 4:return n instanceof ArrayBuffer?(o=n,[3,11]):[3,5];case 5:return n instanceof Blob?[4,n.arrayBuffer()]:[3,7];case 6:return o=i.sent(),a=n.type||a,[3,11];case 7:return"string"!=typeof n?[3,9]:[4,l.Tools.LoadFileAsync(n)];case 8:return o=i.sent(),a=(0,l.GetMimeType)(n)||a,[3,11];case 9:return"undefined"!=typeof HTMLImageElement&&n instanceof HTMLImageElement?[4,l.Tools.LoadFileAsync(n.src)]:[3,11];case 10:o=i.sent(),a=(0,l.GetMimeType)(n.src)||a,i.label=11;case 11:return[3,13];case 12:return i.sent(),[2,null];case 13:return o&&!a&&e.url&&(r=e.url.match(/^data:([^;,]+)/),a=r?r[1]:(0,l.GetMimeType)(e.url)),o&&a?[2,{data:o,mimeType:a}]:[2,null]}})})}function S(t,e,n){return s(this,void 0,void 0,function(){var o,a,r,i,s,f,p,d,h,v,x,b,T,_,S,O,A,w,P,q,k,E,j,D,B,U,V,W,L,G,F,N,Z,H,z;return u(this,function(u){switch(u.label){case 0:return o=c({fflateUrl:"https://unpkg.com/fflate@0.8.2",includeAnchoringProperties:!0,anchoringType:"plane",planeAnchoringAlignment:"horizontal",modelFileName:"model.usda",precision:5,exportCamera:!1,cameraSensorWidth:35},e),"undefined"!=typeof fflate?[3,2]:[4,l.Tools.LoadScriptAsync(o.fflateUrl)];case 1:u.sent(),u.label=2;case 2:for((a={})[o.modelFileName]=null,r='#usda 1.0\n (\n customLayerData = {\n string creator = "Babylon.js USDZExportAsync"\n }\n defaultPrim = "Root"\n metersPerUnit = 1\n upAxis = "Y"\n )',r+=function(t){var e=!0===t.includeAnchoringProperties?'\n\t\ttoken preliminary:anchoring:type = "'.concat(t.anchoringType,'"\n\t\ttoken preliminary:planeAnchoring:alignment = "').concat(t.planeAnchoringAlignment,'"'):"";return'def Xform "Root"\n {\n def Scope "Scenes" (\n kind = "sceneLibrary"\n )\n {\n def Xform "Scene" (\n customData = {\n bool preliminary_collidesWithEnvironment = 0\n string sceneName = "Scene"\n }\n sceneName = "Scene"\n )\n {'.concat(e,"\n ")}(o),i={},s=0,f=t.meshes;s<f.length;s++)0!==(p=f[s]).getTotalVertices()&&(h=(d=p).geometry,(v=d.material)&&h&&(!n||n(d))&&(-1!==["StandardMaterial","PBRMaterial","PBRMetallicRoughnessMaterial"].indexOf(v.getClassName())?(x="geometries/Geometry_"+h.uniqueId+".usda",b=R(d),T=b.matrix,_=b.windingOrder,S=b.convertToRightHanded,x in a||(O=m(h,o,_,S),a[x]=g(O)),v.uniqueId in i||(i[v.uniqueId]=v),r+=M(d,T)):l.Tools.Warn("USDZExportAsync does not support this material type: "+v.getClassName())));for(q in t.activeCamera&&o.exportCamera&&(r+=function(t,e){var n="Camera_"+t.uniqueId,o=y(l.Matrix.RotationY(Math.PI).multiply(t.getWorldMatrix()));if(t.mode===l.Constants.ORTHOGRAPHIC_CAMERA)return'def Camera "'.concat(n,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(e.precision),", ").concat(t.maxZ.toPrecision(e.precision),")\n\t\t\tfloat horizontalAperture = ").concat((10*(Math.abs(t.orthoLeft||1)+Math.abs(t.orthoRight||1))).toPrecision(e.precision),"\n\t\t\tfloat verticalAperture = ").concat((10*(Math.abs(t.orthoTop||1)+Math.abs(t.orthoBottom||1))).toPrecision(e.precision),'\n\t\t\ttoken projection = "orthographic"\n\t\t}\n\t\n\t');var a=t.getEngine().getAspectRatio(t),r=e.cameraSensorWidth||35;return'def Camera "'.concat(n,'"\n\t\t{\n\t\t\tmatrix4d xformOp:transform = ').concat(o,'\n\t\t\tuniform token[] xformOpOrder = ["xformOp:transform"]\n\n\t\t\tfloat2 clippingRange = (').concat(t.minZ.toPrecision(e.precision),", ").concat(t.maxZ.toPrecision(e.precision),")\n\t\t\tfloat focalLength = ").concat((r/(2*Math.tan(.5*t.fov))).toPrecision(e.precision),'\n token projection = "perspective"\n\t\t\tfloat horizontalAperture = ').concat((r*a).toPrecision(e.precision),"\n\t\t\tfloat verticalAperture = ").concat((r/a).toPrecision(e.precision)," \n\t\t}\n\t\n\t")}(t.activeCamera,o)),r+="\n }\n }",r+=function(t,e,n){var o=[];for(var a in t){var r=t[a];o.push(C(r,e,n))}return'\n def "Materials"\n{\n'.concat(o.join(""),"\n}\n\n")}(i,A={},o),r+="\n }",a[o.modelFileName]=fflate.strToU8(r),P=[],w=A)P.push(q);k=0,u.label=3;case 3:return k<P.length?(q=P[k])in w?(j=A[E=q],D=j.texture,B=j.ext,[4,I(D)]):[3,8]:[3,9];case 4:return(U=u.sent())?(a["textures/Texture_".concat(E,".").concat(B)]=new Uint8Array(U.data),[3,8]):[3,5];case 5:return V=D.getSize(),[4,(0,l.GetTextureDataAsync)(D)];case 6:return W=u.sent(),[4,l.DumpTools.DumpDataAsync(V.width,V.height,W,"image/png",void 0,!1,!0)];case 7:L=u.sent(),a["textures/Texture_".concat(E,".").concat(B)]=new Uint8Array(L).slice(),u.label=8;case 8:return k++,[3,3];case 9:for(F in G=0,a)(N=a[F])&&(Z=34+F.length,4!=(H=63&(G+=Z))&&(z=new Uint8Array(64-H),a[F]=[N,{extra:{12345:z}}]),G=N.length);return[2,fflate.zipSync(a,{level:0})]}})})}var O=void 0!==o.g?o.g:"undefined"!=typeof window?window:void 0;if(void 0!==O)for(var A in r)O.BABYLON[A]=r[A];const w=i;return a.default})());
|
|
2
2
|
//# sourceMappingURL=babylon.usdzSerializer.min.js.map
|