m4-w-fast 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/intersect.worker.js +2 -2
- package/dist/isoBands.worker.js +1 -1
- package/dist/m4-w-fast.umd.js +1 -1
- package/dist/raster-leaflet/index.cjs +2 -2
- package/dist/raster-leaflet/index.js +1 -1
- package/dist/raster-leaflet/index.mjs +2 -2
- package/dist/raster-leaflet/m4-w-raster-leaflet.umd.js +2 -2
- package/dist/raster-mars3d/cesiumRasterPlaneRenderer.js +1 -1
- package/dist/raster-mars3d/cesiumRasterTextureAdapter.js +1 -1
- package/dist/raster-mars3d/index.cjs +2 -2
- package/dist/raster-mars3d/index.js +1 -1
- package/dist/raster-mars3d/index.mjs +2 -2
- package/dist/raster-mars3d/m4-w-raster-mars3d.umd.js +2 -2
- package/dist/raster-mars3d/mars3dRasterImageryProvider.js +1 -1
- package/dist/raster-mars3d/mars3dRasterPlaneLayer.js +1 -1
- package/dist/raster-mars3d/rasterPlaneGeometry.js +1 -1
- package/dist/raster-mars3d/rasterPlaneGridChunks.js +1 -1
- package/dist/raster-mars3d/rasterPlaneMaterial.js +1 -1
- package/dist/raster-overlay/color.js +1 -1
- package/dist/raster-overlay/core.js +1 -1
- package/dist/raster-overlay/index.cjs +2 -2
- package/dist/raster-overlay/index.js +1 -1
- package/dist/raster-overlay/index.mjs +2 -2
- package/dist/raster-overlay/leaflet-renderers/createRenderer.js +1 -1
- package/dist/raster-overlay/leafletLayer.js +1 -1
- package/dist/raster-overlay/m4-w-raster-overlay.umd.js +2 -2
- package/dist/raster-overlay/query.js +1 -1
- package/dist/raster-overlay/rendering/createRasterRenderer.js +1 -1
- package/dist/raster-overlay/rendering/index.js +1 -1
- package/dist/raster-overlay/rendering/rasterRenderState.js +1 -1
- package/dist/raster-overlay/rendering/webgl2RasterRenderer.js +1 -1
- package/dist/raster-overlay/rendering/webgpuRasterRenderer.js +1 -1
- package/dist/raster-rendering/index.cjs +2 -2
- package/dist/raster-rendering/index.js +1 -1
- package/dist/raster-rendering/index.mjs +2 -2
- package/dist/raster-rendering/m4-w-raster-rendering.umd.js +2 -2
- package/dist/raster-rendering/webgpuRasterTileRenderer.js +1 -1
- package/dist/readFile.js +1 -1
- package/dist/rendering/index.js +1 -1
- package/dist/rendering/webgl2/baseWebgl2Renderer.js +1 -1
- package/dist/rendering/webgl2/index.js +1 -1
- package/dist/rendering/webgl2/webgl2CoverageResources.js +1 -1
- package/dist/rendering/webgl2/webgl2VisualizationResources.js +1 -1
- package/dist/rendering/webgpu/baseWebgpuRenderer.js +1 -1
- package/dist/rendering/webgpu/index.js +1 -1
- package/dist/rendering/webgpu/visualizationParams.js +1 -1
- package/dist/rendering/webgpu/visualizationResources.js +1 -1
- package/dist/rendering/webgpu/webgpuCoverageResources.js +1 -1
- package/dist/road-overlay/coordinateTransform.js +1 -1
- package/dist/road-overlay/index.cjs +2 -2
- package/dist/road-overlay/index.js +1 -1
- package/dist/road-overlay/index.mjs +2 -2
- package/dist/road-overlay/leaflet-renderers/createRenderer.js +1 -1
- package/dist/road-overlay/leafletLayer.js +1 -1
- package/dist/road-overlay/m4-w-road-overlay.umd.js +2 -2
- package/dist/road-overlay/options.js +1 -1
- package/dist/road-overlay/rendering/index.js +1 -1
- package/dist/road-overlay/rendering/roadRenderState.js +1 -1
- package/dist/road-overlay/rendering/webgl2RoadRenderer.js +1 -1
- package/dist/road-overlay/rendering/webgpuRoadRenderer.js +1 -1
- package/dist/road-overlay/roadData.js +1 -1
- package/dist/road-overlay/roadGeometry.js +1 -1
- package/dist/road-overlay/roadMesh.js +1 -1
- package/dist/shared/coordinate-shader/webgl2/index.js +1 -1
- package/dist/shared/coordinate-shader/webgpu/index.js +1 -1
- package/dist/shared/map/index.js +1 -1
- package/dist/shared/map/leaflet.js +1 -1
- package/dist/shared/polygon/contains.js +1 -1
- package/dist/shared/polygon/index.js +1 -1
- package/dist/shared/polygon/polygonMesh.js +1 -1
- package/dist/shared/shader/assemble.js +1 -1
- package/dist/shared/visualization/index.js +1 -1
- package/dist/shared/visualization/shader/webgl2/index.js +1 -1
- package/dist/shared/visualization/shader/webgpu/index.js +1 -1
- package/dist/shared/visualization/utils.js +1 -1
- package/dist/volume-data/index.cjs +1 -0
- package/dist/volume-data/index.d.ts +5 -0
- package/dist/volume-data/index.js +1 -0
- package/dist/volume-data/index.mjs +1 -0
- package/dist/volume-data/input.d.ts +2 -0
- package/dist/volume-data/input.js +1 -0
- package/dist/volume-data/loadVolumeSource.d.ts +2 -0
- package/dist/volume-data/loadVolumeSource.js +1 -0
- package/dist/volume-data/m4-w-volume-data.umd.js +1 -0
- package/dist/volume-data/parserRegistry.d.ts +5 -0
- package/dist/volume-data/parserRegistry.js +1 -0
- package/dist/volume-data/radarGridVolumeMetadata.d.ts +2 -0
- package/dist/volume-data/radarGridVolumeMetadata.js +1 -0
- package/dist/volume-data/radarGridVolumeParser.d.ts +2 -0
- package/dist/volume-data/radarGridVolumeParser.js +1 -0
- package/dist/volume-data/radarGridVolumeSource.d.ts +3 -0
- package/dist/volume-data/radarGridVolumeSource.js +1 -0
- package/dist/volume-data/volumeDataError.d.ts +5 -0
- package/dist/volume-data/volumeDataError.js +1 -0
- package/dist/volume-data/volumeDataTypes.d.ts +54 -0
- package/dist/volume-data/volumeDataTypes.js +1 -0
- package/dist/volume-data/zipArchive.d.ts +6 -0
- package/dist/volume-data/zipArchive.js +1 -0
- package/dist/volume-mars3d/createMars3dVolumeScene.js +1 -1
- package/dist/volume-mars3d/index.cjs +1 -1
- package/dist/volume-mars3d/index.js +1 -1
- package/dist/volume-mars3d/index.mjs +1 -1
- package/dist/volume-mars3d/m4-w-volume-mars3d.umd.js +1 -1
- package/dist/volume-mars3d/mars3dCanvasCompensation.js +1 -1
- package/dist/volume-mars3d/mars3dRaymarchShader.js +1 -1
- package/dist/volume-mars3d/mars3dVolumeLayer.js +1 -1
- package/dist/volume-mars3d/mars3dVolumeRenderer.js +1 -1
- package/dist/volume-mars3d-native/index.cjs +1 -1
- package/dist/volume-mars3d-native/index.js +1 -1
- package/dist/volume-mars3d-native/index.mjs +1 -1
- package/dist/volume-mars3d-native/liveUpdateScheduler.js +1 -1
- package/dist/volume-mars3d-native/m4-w-volume-mars3d-native.umd.js +1 -1
- package/dist/volume-mars3d-native/mars3dNativeSliceLayer.js +1 -1
- package/dist/volume-mars3d-native/mars3dNativeSliceRenderer.js +1 -1
- package/dist/volume-mars3d-native/mars3dNativeVolumeLayer.js +1 -1
- package/dist/volume-mars3d-native/mars3dNativeVolumeRenderer.js +1 -1
- package/dist/volume-mars3d-native/nativeAxisSliceRenderer.js +1 -1
- package/dist/volume-mars3d-native/nativeSliceAtlas.js +1 -1
- package/dist/volume-mars3d-native/nativeVoxelProvider.js +1 -1
- package/dist/volume-mars3d-native/nativeVoxelShader.js +1 -1
- package/dist/volume-mars3d-native/voxelData.js +1 -1
- package/dist/volume-scene/brickLayout.js +1 -1
- package/dist/volume-scene/brickResidency.js +1 -1
- package/dist/volume-scene/camera.js +1 -1
- package/dist/volume-scene/createVolumeScene.js +1 -1
- package/dist/volume-scene/geographicVolume.js +1 -1
- package/dist/volume-scene/inMemoryVolumeSource.js +1 -1
- package/dist/volume-scene/index.cjs +1 -1
- package/dist/volume-scene/index.js +1 -1
- package/dist/volume-scene/index.mjs +1 -1
- package/dist/volume-scene/m4-w-volume-scene.umd.js +1 -1
- package/dist/volume-scene/matrix.js +1 -1
- package/dist/volume-scene/rendering/webgpu/index.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuBrickAtlas.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuSceneAttachments.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuSceneMeshResources.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuSliceResources.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuTransferResources.js +1 -1
- package/dist/volume-scene/rendering/webgpu/webgpuVolumeSceneRenderer.js +1 -1
- package/dist/volume-scene/routeProfileMesh.js +1 -1
- package/dist/volume-scene/sliceInteractionController.js +1 -1
- package/dist/volume-scene/sliceMarkerOverlay.js +1 -1
- package/dist/volume-scene/sliceState.js +1 -1
- package/dist/volume-scene/volumeBrickData.js +1 -1
- package/dist/volume-scene/volumeScene.js +1 -1
- package/dist/volume-scene/volumeTransfer.js +1 -1
- package/dist/volume-scene/volumeValidation.js +1 -1
- package/dist/volume-section/createHorizontalRasterGrid.d.ts +3 -0
- package/dist/volume-section/createHorizontalRasterGrid.js +1 -0
- package/dist/volume-section/createVolumeSection.d.ts +3 -0
- package/dist/volume-section/createVolumeSection.js +1 -0
- package/dist/volume-section/createVolumeSectionRasterGrid.d.ts +3 -0
- package/dist/volume-section/createVolumeSectionRasterGrid.js +1 -0
- package/dist/volume-section/createVolumeSectionRouteProfile.d.ts +3 -0
- package/dist/volume-section/createVolumeSectionRouteProfile.js +1 -0
- package/dist/volume-section/geographic.d.ts +3 -0
- package/dist/volume-section/geographic.js +1 -0
- package/dist/volume-section/gridLayerStatistics.d.ts +9 -0
- package/dist/volume-section/gridLayerStatistics.js +1 -0
- package/dist/volume-section/index.cjs +1 -0
- package/dist/volume-section/index.d.ts +8 -0
- package/dist/volume-section/index.js +1 -0
- package/dist/volume-section/index.mjs +1 -0
- package/dist/volume-section/m4-w-volume-section.umd.js +1 -0
- package/dist/volume-section/routeSampling.d.ts +9 -0
- package/dist/volume-section/routeSampling.js +1 -0
- package/dist/volume-section/volumeSectionTypes.d.ts +39 -0
- package/dist/volume-section/volumeSectionTypes.js +1 -0
- package/package.json +58 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2bafe9,_0x23575b){const _0x2d837d=_0x3933,_0xbea463=_0x2bafe9();while(!![]){try{const _0x1509f4=parseInt(_0x2d837d(0xcf))/0x1*(-parseInt(_0x2d837d(0xd3))/0x2)+parseInt(_0x2d837d(0xc2))/0x3*(parseInt(_0x2d837d(0xc7))/0x4)+parseInt(_0x2d837d(0xc9))/0x5+-parseInt(_0x2d837d(0xc5))/0x6*(-parseInt(_0x2d837d(0xc1))/0x7)+-parseInt(_0x2d837d(0xcb))/0x8+-parseInt(_0x2d837d(0xd4))/0x9+parseInt(_0x2d837d(0xcc))/0xa*(parseInt(_0x2d837d(0xc8))/0xb);if(_0x1509f4===_0x23575b)break;else _0xbea463['push'](_0xbea463['shift']());}catch(_0x331a04){_0xbea463['push'](_0xbea463['shift']());}}}(_0xb29b,0xee7aa));const MATRIX_ELEMENT_COUNT=0x10,EPSILON=1e-8,createMatrix=()=>new Float32Array(MATRIX_ELEMENT_COUNT),dotVector3=(_0x2cdded,_0x49d48e)=>_0x2cdded[0x0]*_0x49d48e[0x0]+_0x2cdded[0x1]*_0x49d48e[0x1]+_0x2cdded[0x2]*_0x49d48e[0x2],subtractVector3=(_0x283d40,_0xd9c297)=>[_0x283d40[0x0]-_0xd9c297[0x0],_0x283d40[0x1]-_0xd9c297[0x1],_0x283d40[0x2]-_0xd9c297[0x2]],crossVector3=(_0x2eb113,_0x52c738)=>[_0x2eb113[0x1]*_0x52c738[0x2]-_0x2eb113[0x2]*_0x52c738[0x1],_0x2eb113[0x2]*_0x52c738[0x0]-_0x2eb113[0x0]*_0x52c738[0x2],_0x2eb113[0x0]*_0x52c738[0x1]-_0x2eb113[0x1]*_0x52c738[0x0]],normalizeVector3=_0x3016e4=>{const _0x2db197=Math['hypot'](_0x3016e4[0x0],_0x3016e4[0x1],_0x3016e4[0x2]);if(_0x2db197<=EPSILON)throw new Error('无法归一化长度为零的三维向量。');return[_0x3016e4[0x0]/_0x2db197,_0x3016e4[0x1]/_0x2db197,_0x3016e4[0x2]/_0x2db197];};function _0x3933(_0x46d40b,_0x20b7db){const _0xb29b4f=_0xb29b();return _0x3933=function(_0x393344,_0x39f0f0){_0x393344=_0x393344-0xc1;let _0x2ba3fe=_0xb29b4f[_0x393344];return _0x2ba3fe;},_0x3933(_0x46d40b,_0x20b7db);}function _0xb29b(){const _0xa05b29=['相机宽高比必须大于\x200。','192604igHskC','7231500RNqMmb','abs','203399exWWMd','18KTjpcl','透视相机视场角必须位于\x200\x20到\x20180\x20度之间。','tan','84xbWWtq','矩阵不可逆。','837348YhLDCk','17820561wKxQQi','2238495VAlgyZ','正交相机高度和宽高比必须大于\x200。','13290832OYUvyk','10VzhLzJ','verticalScale\x20必须是大于\x200\x20的有限数。','相机裁剪距离必须满足\x200\x20<\x20near\x20<\x20far。','3jMcyZO','from','相机裁剪距离必须满足\x200\x20<=\x20near\x20<\x20far。'];_0xb29b=function(){return _0xa05b29;};return _0xb29b();}export const createIdentityMatrix=()=>{const _0xddf81a=createMatrix();return _0xddf81a[0x0]=0x1,_0xddf81a[0x5]=0x1,_0xddf81a[0xa]=0x1,_0xddf81a[0xf]=0x1,_0xddf81a;};export const multiplyMatrices=(_0x19758f,_0x4d0884)=>{const _0x5087e5=createMatrix();for(let _0x5080bf=0x0;_0x5080bf<0x4;_0x5080bf+=0x1){for(let _0x5742ab=0x0;_0x5742ab<0x4;_0x5742ab+=0x1){let _0x4d7695=0x0;for(let _0x5d25ad=0x0;_0x5d25ad<0x4;_0x5d25ad+=0x1)_0x4d7695+=_0x19758f[_0x5d25ad*0x4+_0x5742ab]*_0x4d0884[_0x5080bf*0x4+_0x5d25ad];_0x5087e5[_0x5080bf*0x4+_0x5742ab]=_0x4d7695;}}return _0x5087e5;};export const invertMatrix=_0x1e44a2=>{const _0xb7d075=_0x3933,_0x4d6548=Array[_0xb7d075(0xd0)]({'length':0x4},(_0x4aaec3,_0x108fbb)=>{const _0xf7f4e1=new Float64Array(0x8);for(let _0x458b27=0x0;_0x458b27<0x4;_0x458b27+=0x1)_0xf7f4e1[_0x458b27]=_0x1e44a2[_0x458b27*0x4+_0x108fbb];return _0xf7f4e1[_0x108fbb+0x4]=0x1,_0xf7f4e1;});for(let _0x55401e=0x0;_0x55401e<0x4;_0x55401e+=0x1){let _0x2a45b6=_0x55401e;for(let _0x3567a1=_0x55401e+0x1;_0x3567a1<0x4;_0x3567a1+=0x1){if(Math['abs'](_0x4d6548[_0x3567a1][_0x55401e])>Math[_0xb7d075(0xd5)](_0x4d6548[_0x2a45b6][_0x55401e]))_0x2a45b6=_0x3567a1;}if(Math[_0xb7d075(0xd5)](_0x4d6548[_0x2a45b6][_0x55401e])<=EPSILON)throw new Error(_0xb7d075(0xc6));if(_0x2a45b6!==_0x55401e)[_0x4d6548[_0x55401e],_0x4d6548[_0x2a45b6]]=[_0x4d6548[_0x2a45b6],_0x4d6548[_0x55401e]];const _0x2568ca=_0x4d6548[_0x55401e][_0x55401e];for(let _0x2dbb45=0x0;_0x2dbb45<0x8;_0x2dbb45+=0x1)_0x4d6548[_0x55401e][_0x2dbb45]/=_0x2568ca;for(let _0x41b30c=0x0;_0x41b30c<0x4;_0x41b30c+=0x1){if(_0x41b30c===_0x55401e)continue;const _0x1261c9=_0x4d6548[_0x41b30c][_0x55401e];for(let _0x157eb6=0x0;_0x157eb6<0x8;_0x157eb6+=0x1)_0x4d6548[_0x41b30c][_0x157eb6]-=_0x1261c9*_0x4d6548[_0x55401e][_0x157eb6];}}const _0x5900d1=createMatrix();for(let _0x299738=0x0;_0x299738<0x4;_0x299738+=0x1){for(let _0x3a86f3=0x0;_0x3a86f3<0x4;_0x3a86f3+=0x1)_0x5900d1[_0x3a86f3*0x4+_0x299738]=_0x4d6548[_0x299738][_0x3a86f3+0x4];}return _0x5900d1;};export const createLookAtMatrix=(_0x5dbee9,_0x464553,_0x447a9d)=>{const _0x28c2c0=normalizeVector3(subtractVector3(_0x5dbee9,_0x464553)),_0x5acace=normalizeVector3(crossVector3(_0x447a9d,_0x28c2c0)),_0x2639da=crossVector3(_0x28c2c0,_0x5acace),_0x1d0bc8=createIdentityMatrix();return _0x1d0bc8[0x0]=_0x5acace[0x0],_0x1d0bc8[0x1]=_0x2639da[0x0],_0x1d0bc8[0x2]=_0x28c2c0[0x0],_0x1d0bc8[0x4]=_0x5acace[0x1],_0x1d0bc8[0x5]=_0x2639da[0x1],_0x1d0bc8[0x6]=_0x28c2c0[0x1],_0x1d0bc8[0x8]=_0x5acace[0x2],_0x1d0bc8[0x9]=_0x2639da[0x2],_0x1d0bc8[0xa]=_0x28c2c0[0x2],_0x1d0bc8[0xc]=-dotVector3(_0x5acace,_0x5dbee9),_0x1d0bc8[0xd]=-dotVector3(_0x2639da,_0x5dbee9),_0x1d0bc8[0xe]=-dotVector3(_0x28c2c0,_0x5dbee9),_0x1d0bc8;};export const createPerspectiveMatrix=(_0x53e618,_0x3df583,_0x10042e,_0x574af9)=>{const _0x259550=_0x3933;if(!(_0x53e618>0x0&&_0x53e618<Math['PI']))throw new Error(_0x259550(0xc3));if(!(_0x3df583>0x0))throw new Error(_0x259550(0xd2));if(!(_0x10042e>0x0&&_0x574af9>_0x10042e))throw new Error(_0x259550(0xce));const _0x40a9d1=0x1/Math[_0x259550(0xc4)](_0x53e618/0x2),_0x5e1c7b=createMatrix();return _0x5e1c7b[0x0]=_0x40a9d1/_0x3df583,_0x5e1c7b[0x5]=_0x40a9d1,_0x5e1c7b[0xa]=_0x574af9/(_0x10042e-_0x574af9),_0x5e1c7b[0xb]=-0x1,_0x5e1c7b[0xe]=_0x10042e*_0x574af9/(_0x10042e-_0x574af9),_0x5e1c7b;};export const createOrthographicMatrix=(_0x47a553,_0x3a9dde,_0x5ab2c4,_0x1aa6d5)=>{const _0x2de2de=_0x3933;if(!(_0x47a553>0x0&&_0x3a9dde>0x0))throw new Error(_0x2de2de(0xca));if(!(_0x5ab2c4>=0x0&&_0x1aa6d5>_0x5ab2c4))throw new Error(_0x2de2de(0xd1));const _0x4d3eeb=_0x47a553*_0x3a9dde,_0x5e9d5e=createIdentityMatrix();return _0x5e9d5e[0x0]=0x2/_0x4d3eeb,_0x5e9d5e[0x5]=0x2/_0x47a553,_0x5e9d5e[0xa]=0x1/(_0x5ab2c4-_0x1aa6d5),_0x5e9d5e[0xe]=_0x5ab2c4/(_0x5ab2c4-_0x1aa6d5),_0x5e9d5e;};export const createScaleMatrix=(_0x3d3480,_0x5abd0c,_0x3ce761)=>{const _0x1b5246=createIdentityMatrix();return _0x1b5246[0x0]=_0x3d3480,_0x1b5246[0x5]=_0x5abd0c,_0x1b5246[0xa]=_0x3ce761,_0x1b5246;};export const composeVolumeModelMatrix=(_0x4c48fb,_0x4e80f5)=>{const _0x4ce6a7=_0x3933;if(!(_0x4e80f5>0x0)||!Number['isFinite'](_0x4e80f5))throw new Error(_0x4ce6a7(0xcd));const _0x441915=createScaleMatrix(0x1,_0x4e80f5,0x1);return _0x4c48fb?multiplyMatrices(_0x4c48fb,_0x441915):_0x441915;};export const transformPoint=(_0x129a40,_0x4b6b6c,_0x154819=0x1)=>[_0x129a40[0x0]*_0x4b6b6c[0x0]+_0x129a40[0x4]*_0x4b6b6c[0x1]+_0x129a40[0x8]*_0x4b6b6c[0x2]+_0x129a40[0xc]*_0x154819,_0x129a40[0x1]*_0x4b6b6c[0x0]+_0x129a40[0x5]*_0x4b6b6c[0x1]+_0x129a40[0x9]*_0x4b6b6c[0x2]+_0x129a40[0xd]*_0x154819,_0x129a40[0x2]*_0x4b6b6c[0x0]+_0x129a40[0x6]*_0x4b6b6c[0x1]+_0x129a40[0xa]*_0x4b6b6c[0x2]+_0x129a40[0xe]*_0x154819,_0x129a40[0x3]*_0x4b6b6c[0x0]+_0x129a40[0x7]*_0x4b6b6c[0x1]+_0x129a40[0xb]*_0x4b6b6c[0x2]+_0x129a40[0xf]*_0x154819];export const projectPointToViewport=(_0x1d0d6c,_0x4f132d,_0x506a99,_0x579fa4)=>{const _0x1eb80f=transformPoint(_0x1d0d6c,_0x4f132d);if(_0x1eb80f[0x3]<=EPSILON)return null;const _0x57816d=0x1/_0x1eb80f[0x3];return[(_0x1eb80f[0x0]*_0x57816d*0.5+0.5)*_0x506a99,(0.5-_0x1eb80f[0x1]*_0x57816d*0.5)*_0x579fa4,_0x1eb80f[0x2]*_0x57816d];};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x4603(_0x3a2d34,_0x1b397b){var _0xfe550a=_0xfe55();return _0x4603=function(_0x460327,_0x5a83e8){_0x460327=_0x460327-0x105;var _0x14b9fa=_0xfe550a[_0x460327];return _0x14b9fa;},_0x4603(_0x3a2d34,_0x1b397b);}(function(_0x5a72d5,_0x4846fc){var _0x2d818a=_0x4603,_0x32ccef=_0x5a72d5();while(!![]){try{var _0x9b295=parseInt(_0x2d818a(0x109))/0x1*(-parseInt(_0x2d818a(0x10c))/0x2)+parseInt(_0x2d818a(0x106))/0x3+parseInt(_0x2d818a(0x10e))/0x4+-parseInt(_0x2d818a(0x108))/0x5*(parseInt(_0x2d818a(0x10f))/0x6)+-parseInt(_0x2d818a(0x10d))/0x7*(parseInt(_0x2d818a(0x10b))/0x8)+-parseInt(_0x2d818a(0x105))/0x9+parseInt(_0x2d818a(0x10a))/0xa*(parseInt(_0x2d818a(0x107))/0xb);if(_0x9b295===_0x4846fc)break;else _0x32ccef['push'](_0x32ccef['shift']());}catch(_0x376a9c){_0x32ccef['push'](_0x32ccef['shift']());}}}(_0xfe55,0x255eb));function _0xfe55(){var _0x109814=['523218MbdykE','1299193JYnTGI','1081052SNhtAL','160542uDQtBU','934371wbUBuX','175917qMZHrZ','8283jqmMbO','35ipcpaZ','1NAwFbZ','7470tiSnrc','8PYAzOM'];_0xfe55=function(){return _0x109814;};return _0xfe55();}export{WebgpuVolumeSceneRenderer}from'./webgpuVolumeSceneRenderer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x4b5b11=_0x4c45;function _0x4c45(_0x4bd850,_0x1ba74c){const _0x36b19f=_0x36b1();return _0x4c45=function(_0x4c4511,_0x5a3e54){_0x4c4511=_0x4c4511-0x1b2;let _0x5fd2d8=_0x36b19f[_0x4c4511];return _0x5fd2d8;},_0x4c45(_0x4bd850,_0x1ba74c);}(function(_0xc6a1ad,_0x2f0604){const _0x575760=_0x4c45,_0x513610=_0xc6a1ad();while(!![]){try{const _0x1be441=parseInt(_0x575760(0x218))/0x1*(-parseInt(_0x575760(0x1ef))/0x2)+parseInt(_0x575760(0x21c))/0x3*(-parseInt(_0x575760(0x1bc))/0x4)+-parseInt(_0x575760(0x1f0))/0x5*(-parseInt(_0x575760(0x21a))/0x6)+parseInt(_0x575760(0x1e6))/0x7*(parseInt(_0x575760(0x1fa))/0x8)+parseInt(_0x575760(0x1f1))/0x9+-parseInt(_0x575760(0x1c8))/0xa*(-parseInt(_0x575760(0x208))/0xb)+-parseInt(_0x575760(0x1b4))/0xc*(parseInt(_0x575760(0x204))/0xd);if(_0x1be441===_0x2f0604)break;else _0x513610['push'](_0x513610['shift']());}catch(_0x50e297){_0x513610['push'](_0x513610['shift']());}}}(_0x36b1,0x4d9a5));const DEFAULT_MEMORY_TARGET_BYTES=0x200*0x400*0x400;function _0x36b1(){const _0x2704d7=['225770UHnTms','clearPageEntry','generation','submit','memoryTargetBytes','r32float','count','layout','extent','get','slotIndex','statistics','WebGPU\x20volume\x20page\x20table\x20is\x20unavailable.\x20WebGPU\x20体积页表不可用。','destroyResources','createTexture','length','bytesPerRow','brickDepth','prepareBrickUpload','slotCountZ','clear','volume\x20atlas\x20clear\x20shader','ceil','WebGPU\x20volume\x20atlas\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积图集资源不完整。','createBindGroup','halo','auto','clearAtlasTexture','\x0a@group(0)\x20@binding(0)\x20var\x20atlas:\x20texture_storage_3d<r32float,\x20write>;\x0a\x0a@compute\x20@workgroup_size(','brickWidth','518lYulgZ','noData','volume\x20atlas\x20clear\x20pipeline','.\x20WebGPU\x20体积砖块要求\x20halo\x20为\x20','min','map','pageTableBuffer','values','yAxis','12430oPfcZb','149835zGYnYT','362979jVMvkr','writePageEntry','copyBufferToTexture','set','getBindGroupLayout','WebGPU\x20volume\x20bricks\x20require\x20halo\x20','setPipeline','size','occupied','44120jjRDQD','floor','capacity','setBindGroup','skippedSampleCount','STORAGE_BINDING','metadata','\x20requires\x20','encodePreparedBrickUpload','destroy','62439sgsaYE','getAtlasTexture','coreSampleCount','WebGPU\x20volume\x20memory\x20limits\x20must\x20be\x20positive.\x20WebGPU\x20体积显存限制必须大于零。','209KOGFpE','pageTableValues','brickHeight','fill','BYTES_PER_ELEMENT','device','memoryHardLimitBytes','volume\x20atlas\x20clear','main','volume\x20brick\x20page\x20table','maxTextureDimension3D','TEXTURE_BINDING',')\x0afn\x20main(@builtin(global_invocation_id)\x20invocation:\x20vec3u)\x20{\x0a\x20\x20\x20\x20let\x20dimensions\x20=\x20textureDimensions(atlas);\x0a\x20\x20\x20\x20if\x20(all(invocation\x20<\x20dimensions))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20textureStore(atlas,\x20vec3i(invocation),\x20vec4f(0.0));\x0a\x20\x20\x20\x20}\x0a}\x0a','slotCount','atlasTextures','WebGPU\x20volume\x20atlas\x20has\x20no\x20evictable\x20slot.\x20WebGPU\x20体积图集没有可驱逐的槽位。','2UEXUNA','Invalid\x20logical\x20volume\x20brick\x20index:\x20','12sRnAGX','dispatchWorkgroups','108Efradz','isInteger','zAxis','lastUsedFrame','volume\x20atlas\x20clear\x20pass','configure','xAxis','.\x20体积逻辑砖块索引无效。','atlasViews','residentBrickCount','volume\x20brick\x20atlas\x20','COPY_DST','slotCountY','residentByLogicalIndex','acquireSlot','STORAGE','queue','rowsPerImage','logicalIndex','1452rGNRHu','createView','getPageTableBuffer','delete','Volume\x20brick\x20','limits','volume\x20atlas\x20clear\x20bind\x20group','\x20values\x20but\x20received\x20','2876jsoMxu','max','end','createBuffer','atlasLayout','WebGPU\x20volume\x20atlas\x20is\x20not\x20configured.\x20WebGPU\x20体积图集尚未配置。','residentBySlotIndex','slotCountX','createComputePipeline','WebGPU\x20volume\x20atlas\x20texture\x20is\x20unavailable.\x20WebGPU\x20体积图集纹理不可用。','.\x20体积砖块数据长度不正确。','writeBuffer'];_0x36b1=function(){return _0x2704d7;};return _0x36b1();}export const MAX_ATLAS_TEXTURE_COUNT=0x8;const MAX_ATLAS_TEXTURE_BYTES=0x40*0x400*0x400,HALO_SIZE=0x1,PAGE_ENTRY_UINT_COUNT=0x4,ATLAS_CLEAR_WORKGROUP_SIZE=0x4,ATLAS_CLEAR_SHADER=_0x4b5b11(0x1e4)+ATLAS_CLEAR_WORKGROUP_SIZE+',\x20'+ATLAS_CLEAR_WORKGROUP_SIZE+',\x20'+ATLAS_CLEAR_WORKGROUP_SIZE+_0x4b5b11(0x214),validateMetadata=_0x1d616b=>{const _0x43327d=_0x4b5b11,_0xd0d717=[_0x1d616b[_0x43327d(0x222)]['count'],_0x1d616b[_0x43327d(0x1ee)][_0x43327d(0x1ce)],_0x1d616b[_0x43327d(0x21e)][_0x43327d(0x1ce)],_0x1d616b[_0x43327d(0x1e5)],_0x1d616b['brickHeight'],_0x1d616b[_0x43327d(0x1d9)]];if(_0xd0d717['some'](_0x4cd69c=>!Number[_0x43327d(0x21d)](_0x4cd69c)||_0x4cd69c<=0x0))throw new Error('WebGPU\x20volume\x20dimensions\x20must\x20be\x20positive\x20integers.\x20WebGPU\x20体积尺寸必须是正整数。');if(_0x1d616b[_0x43327d(0x1e1)]!==HALO_SIZE)throw new Error(_0x43327d(0x1f6)+HALO_SIZE+_0x43327d(0x1e9)+HALO_SIZE+'。');},getBrickCount=_0x5c158a=>[Math[_0x4b5b11(0x1de)](_0x5c158a[_0x4b5b11(0x222)][_0x4b5b11(0x1ce)]/_0x5c158a[_0x4b5b11(0x1e5)]),Math[_0x4b5b11(0x1de)](_0x5c158a[_0x4b5b11(0x1ee)][_0x4b5b11(0x1ce)]/_0x5c158a[_0x4b5b11(0x20a)]),Math[_0x4b5b11(0x1de)](_0x5c158a[_0x4b5b11(0x21e)][_0x4b5b11(0x1ce)]/_0x5c158a[_0x4b5b11(0x1d9)])],getLogicalBrickCoordinate=(_0x268e73,_0x2d018d)=>{const _0x125889=_0x4b5b11,_0xd149c8=_0x2d018d[0x0]*_0x2d018d[0x1],_0x4072f4=Math['floor'](_0x268e73/_0xd149c8),_0x679c52=_0x268e73-_0x4072f4*_0xd149c8,_0x5eda40=Math[_0x125889(0x1fb)](_0x679c52/_0x2d018d[0x0]);return[_0x679c52-_0x5eda40*_0x2d018d[0x0],_0x5eda40,_0x4072f4];},analyzeBrickOccupancy=(_0x5b1754,_0x235ac4,_0x31b76b)=>{const _0x904f6d=_0x4b5b11,_0xea3527=_0x235ac4[_0x904f6d(0x1e5)]+HALO_SIZE*0x2,_0x284b0f=_0x235ac4[_0x904f6d(0x20a)]+HALO_SIZE*0x2,_0x24430c=getLogicalBrickCoordinate(_0x5b1754['logicalIndex'],_0x31b76b),_0x2513a4=Math[_0x904f6d(0x1ea)](_0x235ac4[_0x904f6d(0x1e5)],_0x235ac4[_0x904f6d(0x222)][_0x904f6d(0x1ce)]-_0x24430c[0x0]*_0x235ac4[_0x904f6d(0x1e5)]),_0x14a21a=Math['min'](_0x235ac4['brickHeight'],_0x235ac4[_0x904f6d(0x1ee)][_0x904f6d(0x1ce)]-_0x24430c[0x1]*_0x235ac4['brickHeight']),_0x43cc69=Math[_0x904f6d(0x1ea)](_0x235ac4[_0x904f6d(0x1d9)],_0x235ac4[_0x904f6d(0x21e)][_0x904f6d(0x1ce)]-_0x24430c[0x2]*_0x235ac4[_0x904f6d(0x1d9)]);for(let _0x1b9f4a=0x0;_0x1b9f4a<_0x43cc69;_0x1b9f4a+=0x1){for(let _0x247ea3=0x0;_0x247ea3<_0x14a21a;_0x247ea3+=0x1){const _0x7d3e63=((_0x1b9f4a+HALO_SIZE)*_0x284b0f+_0x247ea3+HALO_SIZE)*_0xea3527+HALO_SIZE;for(let _0x35d340=0x0;_0x35d340<_0x2513a4;_0x35d340+=0x1){const _0x4fa0da=_0x5b1754[_0x904f6d(0x1ed)][_0x7d3e63+_0x35d340];if(_0x4fa0da===_0x4fa0da&&(_0x235ac4[_0x904f6d(0x1e7)]===undefined||_0x4fa0da!==_0x235ac4[_0x904f6d(0x1e7)]))return{'occupied':!![],'coreSampleCount':_0x2513a4*_0x14a21a*_0x43cc69};}}}return{'occupied':![],'coreSampleCount':_0x2513a4*_0x14a21a*_0x43cc69};},findAtlasLayout=(_0x2a6d9b,_0x3f9d0e,_0x2ad4d8,_0x47cd31,_0x1b35bd)=>{const _0x473407=_0x4b5b11;if(_0x2a6d9b<=0x0)return null;const _0xd49e41=Math[_0x473407(0x1fb)](_0x1b35bd/_0x3f9d0e),_0x1cf8c0=Math[_0x473407(0x1fb)](_0x1b35bd/_0x2ad4d8),_0x2a1b61=Math[_0x473407(0x1fb)](_0x1b35bd/_0x47cd31);let _0x4197c6=null;for(let _0x1ec451=0x1;_0x1ec451<=_0xd49e41;_0x1ec451+=0x1){for(let _0x349129=0x1;_0x349129<=_0x1cf8c0;_0x349129+=0x1){const _0x20be94=Math['min'](_0x2a1b61,Math['floor'](_0x2a6d9b/(_0x1ec451*_0x349129))),_0x249a62=_0x1ec451*_0x349129*_0x20be94;if(_0x20be94<=0x0||_0x249a62<=(_0x4197c6?.['slotCount']??0x0))continue;_0x4197c6={'slotCountX':_0x1ec451,'slotCountY':_0x349129,'slotCountZ':_0x20be94,'slotCount':_0x249a62,'textureCount':0x1,'capacity':_0x249a62};}}return _0x4197c6;},getSlotCoordinate=(_0x26b0e1,_0x5f3496)=>{const _0x35fea7=_0x4b5b11,_0x5d8918=_0x5f3496[_0x35fea7(0x1c3)]*_0x5f3496[_0x35fea7(0x228)],_0x2ae9b3=Math[_0x35fea7(0x1fb)](_0x26b0e1/_0x5d8918),_0x457357=_0x26b0e1-_0x2ae9b3*_0x5d8918,_0x2b6dcf=Math[_0x35fea7(0x1fb)](_0x457357/_0x5f3496[_0x35fea7(0x1c3)]),_0x5c2820=_0x457357-_0x2b6dcf*_0x5f3496['slotCountX'];return[_0x5c2820,_0x2b6dcf,_0x2ae9b3];},findLeastRecentlyUsed=(_0x9be57c,_0x2d850c)=>{const _0x50f5b6=_0x4b5b11;let _0x3f9923=null;for(const _0x1fe40d of _0x9be57c){if(_0x1fe40d[_0x50f5b6(0x21f)]===_0x2d850c)continue;if(!_0x3f9923||_0x1fe40d[_0x50f5b6(0x21f)]<_0x3f9923[_0x50f5b6(0x21f)])_0x3f9923=_0x1fe40d;}return _0x3f9923;},createPaddedTextureData=(_0x299321,_0x45ef49,_0x28928e,_0xfb63a4)=>{const _0x8536f3=_0x4b5b11,_0x1b7e5f=_0x45ef49*Float32Array['BYTES_PER_ELEMENT'],_0x42c597=Math[_0x8536f3(0x1de)](_0x1b7e5f/0x100)*0x100;if(_0x1b7e5f===_0x42c597)return{'values':_0x299321,'bytesPerRow':_0x42c597};const _0x409289=_0x42c597/Float32Array[_0x8536f3(0x20c)],_0x4e3d53=new Float32Array(_0x409289*_0x28928e*_0xfb63a4);for(let _0x2b5bc1=0x0;_0x2b5bc1<_0xfb63a4;_0x2b5bc1+=0x1){for(let _0x4ca7be=0x0;_0x4ca7be<_0x28928e;_0x4ca7be+=0x1){const _0x14404d=(_0x2b5bc1*_0x28928e+_0x4ca7be)*_0x45ef49,_0xc52ad7=(_0x2b5bc1*_0x28928e+_0x4ca7be)*_0x409289;_0x4e3d53[_0x8536f3(0x1f4)](_0x299321['subarray'](_0x14404d,_0x14404d+_0x45ef49),_0xc52ad7);}}return{'values':_0x4e3d53,'bytesPerRow':_0x42c597};};export class WebgpuBrickAtlas{[_0x4b5b11(0x20d)];['memoryTargetBytes'];[_0x4b5b11(0x20e)];[_0x4b5b11(0x200)]=null;['layout']=null;[_0x4b5b11(0x216)]=[];[_0x4b5b11(0x224)]=[];['pageTableBuffer']=null;[_0x4b5b11(0x209)]=new Uint32Array(0x0);['residentByLogicalIndex']=new Map();[_0x4b5b11(0x1c2)]=new Map();['generation']=0x0;constructor(_0xe9fdf7,_0x473a4d=DEFAULT_MEMORY_TARGET_BYTES,_0x308132=_0x473a4d){const _0x10fdd4=_0x4b5b11;if(!Number['isFinite'](_0x473a4d)||!Number['isFinite'](_0x308132)||_0x473a4d<=0x0||_0x308132<=0x0)throw new Error(_0x10fdd4(0x207));this[_0x10fdd4(0x20d)]=_0xe9fdf7,this['memoryTargetBytes']=Math[_0x10fdd4(0x1ea)](_0x473a4d,_0x308132),this[_0x10fdd4(0x20e)]=_0x308132;}get['volumeMetadata'](){const _0x3a7906=_0x4b5b11;if(!this[_0x3a7906(0x200)])throw new Error(_0x3a7906(0x1c1));return this[_0x3a7906(0x200)];}get[_0x4b5b11(0x1c0)](){const _0x4a244e=_0x4b5b11;if(!this[_0x4a244e(0x1cf)])throw new Error('WebGPU\x20volume\x20atlas\x20layout\x20is\x20unavailable.\x20WebGPU\x20体积图集布局不可用。');return this['layout'];}get[_0x4b5b11(0x225)](){const _0x4bf8c6=_0x4b5b11;return this[_0x4bf8c6(0x229)]['size'];}get[_0x4b5b11(0x1d3)](){const _0xe5f393=_0x4b5b11;if(!this[_0xe5f393(0x200)]||!this[_0xe5f393(0x1cf)])return{'logicalBrickCount':0x0,'atlasCapacity':0x0,'gpuBytes':0x0,'memoryLimitBytes':this['memoryHardLimitBytes'],'budgetLimited':![],'skippedSamples':0x0,'skippedCells':0x0};const _0x3ceacf=getBrickCount(this['metadata']),_0x3bd702=_0x3ceacf[0x0]*_0x3ceacf[0x1]*_0x3ceacf[0x2],_0x272074=this['metadata']['brickWidth']+HALO_SIZE*0x2,_0x5c8052=this[_0xe5f393(0x200)][_0xe5f393(0x20a)]+HALO_SIZE*0x2,_0x46ac03=this[_0xe5f393(0x200)][_0xe5f393(0x1d9)]+HALO_SIZE*0x2,_0x5078b9=_0x272074*_0x5c8052*_0x46ac03*this[_0xe5f393(0x1cf)][_0xe5f393(0x1fc)]*Float32Array[_0xe5f393(0x20c)],_0x4a2932=_0x3bd702*PAGE_ENTRY_UINT_COUNT*Uint32Array['BYTES_PER_ELEMENT'];let _0x435db3=0x0,_0x2c70b7=0x0;for(const _0x4c26bb of this[_0xe5f393(0x229)]['values']()){if(_0x4c26bb[_0xe5f393(0x1f9)])continue;_0x2c70b7+=0x1,_0x435db3+=_0x4c26bb[_0xe5f393(0x1fe)];}return{'logicalBrickCount':_0x3bd702,'atlasCapacity':this[_0xe5f393(0x1cf)][_0xe5f393(0x1fc)],'gpuBytes':_0x5078b9+_0x4a2932,'memoryLimitBytes':this[_0xe5f393(0x20e)],'budgetLimited':this[_0xe5f393(0x1cf)][_0xe5f393(0x1fc)]<_0x3bd702,'skippedSamples':_0x435db3,'skippedCells':_0x2c70b7};}[_0x4b5b11(0x221)](_0x155f99){const _0x330d38=_0x4b5b11;validateMetadata(_0x155f99);const _0x24d5a3=_0x155f99[_0x330d38(0x1e5)]+HALO_SIZE*0x2,_0x442341=_0x155f99[_0x330d38(0x20a)]+HALO_SIZE*0x2,_0x577324=_0x155f99[_0x330d38(0x1d9)]+HALO_SIZE*0x2,_0x23411f=getBrickCount(_0x155f99),_0x162b0c=_0x23411f[0x0]*_0x23411f[0x1]*_0x23411f[0x2],_0x276225=_0x162b0c*PAGE_ENTRY_UINT_COUNT*Uint32Array['BYTES_PER_ELEMENT'],_0x19147e=Math[_0x330d38(0x1ea)](this[_0x330d38(0x1cc)],this[_0x330d38(0x20e)])-_0x276225;if(_0x19147e<=0x0)throw new Error('WebGPU\x20volume\x20page\x20table\x20exceeds\x20the\x20configured\x20memory\x20limit.\x20WebGPU\x20体积页表超过显存限制。');const _0x36ad09=_0x24d5a3*_0x442341*_0x577324*Float32Array[_0x330d38(0x20c)],_0x1e3713=Math[_0x330d38(0x1ea)](_0x162b0c,Math[_0x330d38(0x1fb)](_0x19147e/_0x36ad09)),_0x3f1bd1=Math[_0x330d38(0x1bd)](0x1,Math[_0x330d38(0x1fb)](MAX_ATLAS_TEXTURE_BYTES/_0x36ad09)),_0xf73565=Math[_0x330d38(0x1ea)](MAX_ATLAS_TEXTURE_COUNT,Math[_0x330d38(0x1bd)](0x1,Math[_0x330d38(0x1de)](_0x1e3713/_0x3f1bd1))),_0x146248=Math[_0x330d38(0x1bd)](0x1,Math['floor'](_0x1e3713/_0xf73565)),_0x4ce953=findAtlasLayout(_0x146248,_0x24d5a3,_0x442341,_0x577324,this['device'][_0x330d38(0x1b9)][_0x330d38(0x212)]);if(!_0x4ce953)throw new Error('Unable\x20to\x20allocate\x20a\x20WebGPU\x20R32F\x20volume\x20atlas\x20within\x20device\x20limits.\x20无法在设备限制内分配\x20WebGPU\x20R32F\x20体积图集。');const _0xebaf5c={..._0x4ce953,'textureCount':_0xf73565,'capacity':_0x4ce953[_0x330d38(0x215)]*_0xf73565},_0xd37b33=_0x24d5a3*_0xebaf5c[_0x330d38(0x1c3)],_0x47676c=_0x442341*_0xebaf5c[_0x330d38(0x228)],_0x1e1edd=_0x577324*_0xebaf5c[_0x330d38(0x1db)],_0x419707=Array['from']({'length':_0xf73565},(_0x45ac49,_0x2af2d4)=>this[_0x330d38(0x20d)][_0x330d38(0x1d6)]({'label':_0x330d38(0x226)+_0x2af2d4,'size':[_0xd37b33,_0x47676c,_0x1e1edd],'dimension':'3d','format':_0x330d38(0x1cd),'usage':GPUTextureUsage[_0x330d38(0x213)]|GPUTextureUsage[_0x330d38(0x227)]|GPUTextureUsage[_0x330d38(0x1ff)]})),_0x5013d5=this[_0x330d38(0x20d)][_0x330d38(0x1bf)]({'label':_0x330d38(0x211),'size':Math[_0x330d38(0x1bd)](0x10,_0x276225),'usage':GPUBufferUsage[_0x330d38(0x22b)]|GPUBufferUsage['COPY_DST']});this['destroyResources'](),this[_0x330d38(0x200)]={..._0x155f99},this['layout']=_0xebaf5c,this['atlasTextures']=_0x419707,this[_0x330d38(0x224)]=_0x419707[_0x330d38(0x1eb)](_0x462203=>_0x462203[_0x330d38(0x1b5)]({'dimension':'3d'})),this['pageTableBuffer']=_0x5013d5,this['pageTableValues']=new Uint32Array(_0x162b0c*PAGE_ENTRY_UINT_COUNT),this['device'][_0x330d38(0x22c)]['writeBuffer'](_0x5013d5,0x0,this['pageTableValues']);for(const _0x112248 of _0x419707)this[_0x330d38(0x1e3)](_0x112248,_0xd37b33,_0x47676c,_0x1e1edd);this['generation']+=0x1;}[_0x4b5b11(0x1da)](_0x3280b7,_0x17b535){const _0x3527df=_0x4b5b11,_0x5a2296=this['volumeMetadata'],_0x47f3a3=this[_0x3527df(0x1c0)],_0x56485f=getBrickCount(_0x5a2296),_0x2c4306=_0x56485f[0x0]*_0x56485f[0x1]*_0x56485f[0x2];if(!Number[_0x3527df(0x21d)](_0x3280b7[_0x3527df(0x1b3)])||_0x3280b7[_0x3527df(0x1b3)]<0x0||_0x3280b7[_0x3527df(0x1b3)]>=_0x2c4306)throw new Error(_0x3527df(0x219)+_0x3280b7[_0x3527df(0x1b3)]+_0x3527df(0x223));const _0x1d43c2=_0x5a2296[_0x3527df(0x1e5)]+HALO_SIZE*0x2,_0x51d8b5=_0x5a2296['brickHeight']+HALO_SIZE*0x2,_0x187642=_0x5a2296[_0x3527df(0x1d9)]+HALO_SIZE*0x2,_0xe9ec35=_0x1d43c2*_0x51d8b5*_0x187642;if(_0x3280b7[_0x3527df(0x1ed)][_0x3527df(0x1d7)]!==_0xe9ec35)throw new Error(_0x3527df(0x1b8)+_0x3280b7[_0x3527df(0x1b3)]+_0x3527df(0x201)+_0xe9ec35+_0x3527df(0x1bb)+_0x3280b7[_0x3527df(0x1ed)]['length']+_0x3527df(0x1c6));const _0x582683=this[_0x3527df(0x229)][_0x3527df(0x1d1)](_0x3280b7[_0x3527df(0x1b3)])??this[_0x3527df(0x22a)](_0x3280b7[_0x3527df(0x1b3)],_0x17b535),_0x269ef7=analyzeBrickOccupancy(_0x3280b7,_0x5a2296,_0x56485f),_0x4e0cb2=Math['floor'](_0x582683[_0x3527df(0x1d2)]/_0x47f3a3[_0x3527df(0x215)]),_0x3dfa32=getSlotCoordinate(_0x582683[_0x3527df(0x1d2)]%_0x47f3a3[_0x3527df(0x215)],_0x47f3a3),_0x814271=createPaddedTextureData(new Float32Array(_0x3280b7[_0x3527df(0x1ed)]),_0x1d43c2,_0x51d8b5,_0x187642);return _0x582683[_0x3527df(0x21f)]=_0x17b535,_0x582683[_0x3527df(0x1ca)]=this[_0x3527df(0x1ca)],_0x582683[_0x3527df(0x1f9)]=_0x269ef7['occupied'],_0x582683['skippedSampleCount']=_0x269ef7[_0x3527df(0x206)],this[_0x3527df(0x1f2)](_0x582683),{'values':_0x814271[_0x3527df(0x1ed)],'bytesPerRow':_0x814271['bytesPerRow'],'rowsPerImage':_0x51d8b5,'origin':{'x':_0x3dfa32[0x0]*_0x1d43c2,'y':_0x3dfa32[0x1]*_0x51d8b5,'z':_0x3dfa32[0x2]*_0x187642},'extent':[_0x1d43c2,_0x51d8b5,_0x187642],'atlasIndex':_0x4e0cb2};}[_0x4b5b11(0x202)](_0x807f12,_0x527eef,_0x12f53f,_0x4ca697){const _0x3f0595=_0x4b5b11;_0x807f12[_0x3f0595(0x1f3)]({'buffer':_0x527eef,'offset':_0x12f53f,'bytesPerRow':_0x4ca697[_0x3f0595(0x1d8)],'rowsPerImage':_0x4ca697[_0x3f0595(0x1b2)]},{'texture':this[_0x3f0595(0x205)](_0x4ca697['atlasIndex']),'origin':_0x4ca697['origin']},_0x4ca697[_0x3f0595(0x1d0)]);}['touch'](_0x30050a,_0x54f4d9){const _0x132216=_0x4b5b11;for(const _0x1ef79c of _0x30050a){const _0x28a6c5=this[_0x132216(0x229)][_0x132216(0x1d1)](_0x1ef79c);if(_0x28a6c5)_0x28a6c5['lastUsedFrame']=_0x54f4d9;}}[_0x4b5b11(0x1e0)](_0x2eb01f,_0x2a7bff){const _0x1bfc6e=_0x4b5b11;if(this[_0x1bfc6e(0x224)][_0x1bfc6e(0x1d7)]===0x0||!this[_0x1bfc6e(0x1ec)])throw new Error(_0x1bfc6e(0x1df));return this['device'][_0x1bfc6e(0x1e0)]({'label':'volume\x20atlas\x20bind\x20group','layout':_0x2eb01f,'entries':[...Array['from']({'length':MAX_ATLAS_TEXTURE_COUNT},(_0x5a1b0f,_0x1f4fff)=>({'binding':_0x1f4fff,'resource':this[_0x1bfc6e(0x224)][_0x1f4fff]??this['atlasViews'][0x0]})),{'binding':MAX_ATLAS_TEXTURE_COUNT,'resource':{'buffer':this[_0x1bfc6e(0x1ec)]}},{'binding':MAX_ATLAS_TEXTURE_COUNT+0x1,'resource':{'buffer':_0x2a7bff}}]});}[_0x4b5b11(0x203)](){const _0x2a4908=_0x4b5b11;this['destroyResources'](),this[_0x2a4908(0x200)]=null,this[_0x2a4908(0x1cf)]=null,this['pageTableValues']=new Uint32Array(0x0);}['acquireSlot'](_0x3d450e,_0x23e3c0){const _0x5097cd=_0x4b5b11,_0x2ed754=this[_0x5097cd(0x1c0)];let _0x3f9dc4=this[_0x5097cd(0x1c2)][_0x5097cd(0x1f8)];if(_0x3f9dc4>=_0x2ed754[_0x5097cd(0x1fc)]){const _0x3e3035=findLeastRecentlyUsed(this[_0x5097cd(0x1c2)][_0x5097cd(0x1ed)](),_0x23e3c0);if(!_0x3e3035)throw new Error(_0x5097cd(0x217));_0x3f9dc4=_0x3e3035[_0x5097cd(0x1d2)],this[_0x5097cd(0x1c9)](_0x3e3035[_0x5097cd(0x1b3)]),this[_0x5097cd(0x229)][_0x5097cd(0x1b7)](_0x3e3035[_0x5097cd(0x1b3)]),this[_0x5097cd(0x1c2)][_0x5097cd(0x1b7)](_0x3f9dc4);}const _0x411962={'logicalIndex':_0x3d450e,'slotIndex':_0x3f9dc4,'lastUsedFrame':_0x23e3c0,'generation':this[_0x5097cd(0x1ca)],'occupied':![],'skippedSampleCount':0x0};return this[_0x5097cd(0x229)][_0x5097cd(0x1f4)](_0x3d450e,_0x411962),this[_0x5097cd(0x1c2)][_0x5097cd(0x1f4)](_0x3f9dc4,_0x411962),_0x411962;}[_0x4b5b11(0x1f2)](_0x33fa34){const _0x2bd827=_0x4b5b11,_0x43f23d=_0x33fa34['logicalIndex']*PAGE_ENTRY_UINT_COUNT;this[_0x2bd827(0x209)][_0x43f23d]=_0x33fa34[_0x2bd827(0x1d2)]%this[_0x2bd827(0x1c0)][_0x2bd827(0x215)]+0x1,this[_0x2bd827(0x209)][_0x43f23d+0x1]=_0x33fa34['generation'],this[_0x2bd827(0x209)][_0x43f23d+0x2]=_0x33fa34[_0x2bd827(0x1f9)]?0x1:0x0,this[_0x2bd827(0x209)][_0x43f23d+0x3]=Math[_0x2bd827(0x1fb)](_0x33fa34[_0x2bd827(0x1d2)]/this[_0x2bd827(0x1c0)][_0x2bd827(0x215)]),this[_0x2bd827(0x20d)][_0x2bd827(0x22c)][_0x2bd827(0x1c7)](this[_0x2bd827(0x1b6)](),_0x43f23d*Uint32Array[_0x2bd827(0x20c)],this[_0x2bd827(0x209)],_0x43f23d,PAGE_ENTRY_UINT_COUNT);}[_0x4b5b11(0x1c9)](_0x27839d){const _0x5b9224=_0x4b5b11,_0x538c47=_0x27839d*PAGE_ENTRY_UINT_COUNT;this[_0x5b9224(0x209)][_0x5b9224(0x20b)](0x0,_0x538c47,_0x538c47+PAGE_ENTRY_UINT_COUNT),this[_0x5b9224(0x20d)][_0x5b9224(0x22c)]['writeBuffer'](this[_0x5b9224(0x1b6)](),_0x538c47*Uint32Array['BYTES_PER_ELEMENT'],this[_0x5b9224(0x209)],_0x538c47,PAGE_ENTRY_UINT_COUNT);}['getAtlasTexture'](_0x37d5e0){const _0x5ca6d1=_0x4b5b11,_0x4ae541=this[_0x5ca6d1(0x216)][_0x37d5e0];if(!_0x4ae541)throw new Error(_0x5ca6d1(0x1c5));return _0x4ae541;}[_0x4b5b11(0x1e3)](_0x2d8fd0,_0x19530e,_0x5d1c47,_0x20cdc2){const _0x1fb40f=_0x4b5b11,_0x54d047=this[_0x1fb40f(0x20d)]['createShaderModule']({'label':_0x1fb40f(0x1dd),'code':ATLAS_CLEAR_SHADER}),_0x10d962=this['device'][_0x1fb40f(0x1c4)]({'label':_0x1fb40f(0x1e8),'layout':_0x1fb40f(0x1e2),'compute':{'module':_0x54d047,'entryPoint':_0x1fb40f(0x210)}}),_0x3b59f4=this[_0x1fb40f(0x20d)][_0x1fb40f(0x1e0)]({'label':_0x1fb40f(0x1ba),'layout':_0x10d962[_0x1fb40f(0x1f5)](0x0),'entries':[{'binding':0x0,'resource':_0x2d8fd0[_0x1fb40f(0x1b5)]({'dimension':'3d'})}]}),_0x4e5978=this[_0x1fb40f(0x20d)]['createCommandEncoder']({'label':_0x1fb40f(0x20f)}),_0x300df4=_0x4e5978['beginComputePass']({'label':_0x1fb40f(0x220)});_0x300df4[_0x1fb40f(0x1f7)](_0x10d962),_0x300df4[_0x1fb40f(0x1fd)](0x0,_0x3b59f4),_0x300df4[_0x1fb40f(0x21b)](Math[_0x1fb40f(0x1de)](_0x19530e/ATLAS_CLEAR_WORKGROUP_SIZE),Math['ceil'](_0x5d1c47/ATLAS_CLEAR_WORKGROUP_SIZE),Math['ceil'](_0x20cdc2/ATLAS_CLEAR_WORKGROUP_SIZE)),_0x300df4[_0x1fb40f(0x1be)](),this[_0x1fb40f(0x20d)]['queue'][_0x1fb40f(0x1cb)]([_0x4e5978['finish']()]);}['getPageTableBuffer'](){const _0x12ac96=_0x4b5b11;if(!this[_0x12ac96(0x1ec)])throw new Error(_0x12ac96(0x1d4));return this['pageTableBuffer'];}[_0x4b5b11(0x1d5)](){const _0x59e29c=_0x4b5b11;for(const _0x4367f7 of this[_0x59e29c(0x216)])_0x4367f7[_0x59e29c(0x203)]();this['pageTableBuffer']?.[_0x59e29c(0x203)](),this['atlasTextures']=[],this['atlasViews']=[],this[_0x59e29c(0x1ec)]=null,this['residentByLogicalIndex'][_0x59e29c(0x1dc)](),this[_0x59e29c(0x1c2)][_0x59e29c(0x1dc)]();}}
|
|
1
|
+
const _0x5b67da=_0x3d25;(function(_0x41d69d,_0x2a9dbe){const _0x31ffcd=_0x3d25,_0x70c5c0=_0x41d69d();while(!![]){try{const _0x348990=-parseInt(_0x31ffcd(0x181))/0x1*(-parseInt(_0x31ffcd(0x163))/0x2)+parseInt(_0x31ffcd(0x14a))/0x3*(parseInt(_0x31ffcd(0x159))/0x4)+-parseInt(_0x31ffcd(0x19f))/0x5*(-parseInt(_0x31ffcd(0x151))/0x6)+-parseInt(_0x31ffcd(0x15b))/0x7*(parseInt(_0x31ffcd(0x186))/0x8)+-parseInt(_0x31ffcd(0x14b))/0x9*(parseInt(_0x31ffcd(0x1c2))/0xa)+parseInt(_0x31ffcd(0x18d))/0xb*(-parseInt(_0x31ffcd(0x192))/0xc)+parseInt(_0x31ffcd(0x1b2))/0xd*(parseInt(_0x31ffcd(0x1b5))/0xe);if(_0x348990===_0x2a9dbe)break;else _0x70c5c0['push'](_0x70c5c0['shift']());}catch(_0x25e918){_0x70c5c0['push'](_0x70c5c0['shift']());}}}(_0x36bf,0x98ea1));function _0x3d25(_0x22bcd9,_0x28683a){const _0x36bfc7=_0x36bf();return _0x3d25=function(_0x3d2567,_0x58fb0a){_0x3d2567=_0x3d2567-0x14a;let _0x2fcdaa=_0x36bfc7[_0x3d2567];return _0x2fcdaa;},_0x3d25(_0x22bcd9,_0x28683a);}const DEFAULT_MEMORY_TARGET_BYTES=0x200*0x400*0x400;function _0x36bf(){const _0x42d931=['createTexture','destroyResources','coreSampleCount','residentBySlotIndex','volumeMetadata','layout','logicalIndex','pageTableBuffer','finish','metadata','atlasIndex','createView','isFinite','some','89725eDCNXM','slotCountZ','lastUsedFrame','slotCount','submit','136ClAUGL','min','encodePreparedBrickUpload','capacity','COPY_DST','WebGPU\x20volume\x20dimensions\x20must\x20be\x20positive\x20integers.\x20WebGPU\x20体积尺寸必须是正整数。','pageTableValues','22VYeFox','clearPageEntry','main','end','getAtlasTexture','6593352FhuxCl','WebGPU\x20volume\x20atlas\x20texture\x20is\x20unavailable.\x20WebGPU\x20体积图集纹理不可用。','createCommandEncoder','slotCountX','memoryTargetBytes','atlasViews','yAxis','WebGPU\x20volume\x20page\x20table\x20is\x20unavailable.\x20WebGPU\x20体积页表不可用。','volume\x20brick\x20page\x20table','\x0a@group(0)\x20@binding(0)\x20var\x20atlas:\x20texture_storage_3d<r32float,\x20write>;\x0a\x0a@compute\x20@workgroup_size(','noData','xAxis','bytesPerRow','10ypOnMK','size','halo','.\x20体积砖块数据长度不正确。','skippedSampleCount','set','values','slotIndex','brickWidth','destroy','getPageTableBuffer','WebGPU\x20volume\x20atlas\x20is\x20not\x20configured.\x20WebGPU\x20体积图集尚未配置。','origin','clearAtlasTexture','beginComputePass','ceil','.\x20WebGPU\x20体积砖块要求\x20halo\x20为\x20','createComputePipeline','residentByLogicalIndex','377BXxQYX','occupied','WebGPU\x20volume\x20atlas\x20layout\x20is\x20unavailable.\x20WebGPU\x20体积图集布局不可用。','516922AYtrZx','atlasLayout','configure','get','writeBuffer','extent','writePageEntry','limits',')\x0afn\x20main(@builtin(global_invocation_id)\x20invocation:\x20vec3u)\x20{\x0a\x20\x20\x20\x20let\x20dimensions\x20=\x20textureDimensions(atlas);\x0a\x20\x20\x20\x20if\x20(all(invocation\x20<\x20dimensions))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20textureStore(atlas,\x20vec3i(invocation),\x20vec4f(0.0));\x0a\x20\x20\x20\x20}\x0a}\x0a','device','createBuffer','brickHeight','STORAGE_BINDING','10jYJFxt','isInteger','WebGPU\x20volume\x20bricks\x20require\x20halo\x20','acquireSlot','slotCountY','clear','WebGPU\x20volume\x20page\x20table\x20exceeds\x20the\x20configured\x20memory\x20limit.\x20WebGPU\x20体积页表超过显存限制。','fill','138aJpnkg','3802455mHtyGn','touch','max','setBindGroup','maxTextureDimension3D','volume\x20atlas\x20clear\x20pass','1432086XyhHjQ','floor','delete','createBindGroup','Unable\x20to\x20allocate\x20a\x20WebGPU\x20R32F\x20volume\x20atlas\x20within\x20device\x20limits.\x20无法在设备限制内分配\x20WebGPU\x20R32F\x20体积图集。','.\x20体积逻辑砖块索引无效。','zAxis','TEXTURE_BINDING','97316BEpGAP','getBindGroupLayout','287819PFFnAl','STORAGE','createShaderModule','length','WebGPU\x20volume\x20memory\x20limits\x20must\x20be\x20positive.\x20WebGPU\x20体积显存限制必须大于零。','memoryHardLimitBytes','WebGPU\x20volume\x20atlas\x20has\x20no\x20evictable\x20slot.\x20WebGPU\x20体积图集没有可驱逐的槽位。','count','4hMGKhy','prepareBrickUpload','volume\x20atlas\x20clear\x20pipeline','queue','dispatchWorkgroups','BYTES_PER_ELEMENT','atlasTextures','brickDepth','r32float','subarray','volume\x20atlas\x20clear\x20bind\x20group','\x20values\x20but\x20received\x20','copyBufferToTexture','generation','volume\x20atlas\x20bind\x20group','from'];_0x36bf=function(){return _0x42d931;};return _0x36bf();}export const MAX_ATLAS_TEXTURE_COUNT=0x8;const MAX_ATLAS_TEXTURE_BYTES=0x40*0x400*0x400,HALO_SIZE=0x1,PAGE_ENTRY_UINT_COUNT=0x4,ATLAS_CLEAR_WORKGROUP_SIZE=0x4,ATLAS_CLEAR_SHADER=_0x5b67da(0x19b)+ATLAS_CLEAR_WORKGROUP_SIZE+',\x20'+ATLAS_CLEAR_WORKGROUP_SIZE+',\x20'+ATLAS_CLEAR_WORKGROUP_SIZE+_0x5b67da(0x1bd),validateMetadata=_0x2d993c=>{const _0x4c7b2a=_0x5b67da,_0x39b434=[_0x2d993c[_0x4c7b2a(0x19d)][_0x4c7b2a(0x162)],_0x2d993c[_0x4c7b2a(0x198)][_0x4c7b2a(0x162)],_0x2d993c[_0x4c7b2a(0x157)][_0x4c7b2a(0x162)],_0x2d993c[_0x4c7b2a(0x1a7)],_0x2d993c[_0x4c7b2a(0x1c0)],_0x2d993c[_0x4c7b2a(0x16a)]];if(_0x39b434[_0x4c7b2a(0x180)](_0x1a2138=>!Number[_0x4c7b2a(0x1c3)](_0x1a2138)||_0x1a2138<=0x0))throw new Error(_0x4c7b2a(0x18b));if(_0x2d993c[_0x4c7b2a(0x1a1)]!==HALO_SIZE)throw new Error(_0x4c7b2a(0x1c4)+HALO_SIZE+_0x4c7b2a(0x1af)+HALO_SIZE+'。');},getBrickCount=_0x24982c=>[Math[_0x5b67da(0x1ae)](_0x24982c[_0x5b67da(0x19d)]['count']/_0x24982c[_0x5b67da(0x1a7)]),Math[_0x5b67da(0x1ae)](_0x24982c[_0x5b67da(0x198)][_0x5b67da(0x162)]/_0x24982c[_0x5b67da(0x1c0)]),Math[_0x5b67da(0x1ae)](_0x24982c[_0x5b67da(0x157)]['count']/_0x24982c[_0x5b67da(0x16a)])],getLogicalBrickCoordinate=(_0x332e3a,_0x9a00ff)=>{const _0x4def5c=_0x5b67da,_0x28c4a3=_0x9a00ff[0x0]*_0x9a00ff[0x1],_0x5444df=Math[_0x4def5c(0x152)](_0x332e3a/_0x28c4a3),_0x45469c=_0x332e3a-_0x5444df*_0x28c4a3,_0x44f47c=Math[_0x4def5c(0x152)](_0x45469c/_0x9a00ff[0x0]);return[_0x45469c-_0x44f47c*_0x9a00ff[0x0],_0x44f47c,_0x5444df];},analyzeBrickOccupancy=(_0x42a80f,_0x489f56,_0x1f253a)=>{const _0x5b3881=_0x5b67da,_0x557852=_0x489f56[_0x5b3881(0x1a7)]+HALO_SIZE*0x2,_0x4f34b6=_0x489f56[_0x5b3881(0x1c0)]+HALO_SIZE*0x2,_0x2f82ed=getLogicalBrickCoordinate(_0x42a80f['logicalIndex'],_0x1f253a),_0x434023=Math[_0x5b3881(0x187)](_0x489f56[_0x5b3881(0x1a7)],_0x489f56[_0x5b3881(0x19d)]['count']-_0x2f82ed[0x0]*_0x489f56['brickWidth']),_0xe3cfe2=Math[_0x5b3881(0x187)](_0x489f56[_0x5b3881(0x1c0)],_0x489f56[_0x5b3881(0x198)][_0x5b3881(0x162)]-_0x2f82ed[0x1]*_0x489f56['brickHeight']),_0x5b3e13=Math[_0x5b3881(0x187)](_0x489f56[_0x5b3881(0x16a)],_0x489f56[_0x5b3881(0x157)]['count']-_0x2f82ed[0x2]*_0x489f56[_0x5b3881(0x16a)]);for(let _0x242d16=0x0;_0x242d16<_0x5b3e13;_0x242d16+=0x1){for(let _0x41edb6=0x0;_0x41edb6<_0xe3cfe2;_0x41edb6+=0x1){const _0x33aa62=((_0x242d16+HALO_SIZE)*_0x4f34b6+_0x41edb6+HALO_SIZE)*_0x557852+HALO_SIZE;for(let _0xe33910=0x0;_0xe33910<_0x434023;_0xe33910+=0x1){const _0x5bcb64=_0x42a80f[_0x5b3881(0x1a5)][_0x33aa62+_0xe33910];if(_0x5bcb64===_0x5bcb64&&(_0x489f56[_0x5b3881(0x19c)]===undefined||_0x5bcb64!==_0x489f56['noData']))return{'occupied':!![],'coreSampleCount':_0x434023*_0xe3cfe2*_0x5b3e13};}}}return{'occupied':![],'coreSampleCount':_0x434023*_0xe3cfe2*_0x5b3e13};},findAtlasLayout=(_0xf1ac3e,_0x109781,_0x4fc36,_0xf8bcf4,_0x6f018a)=>{const _0xca87c6=_0x5b67da;if(_0xf1ac3e<=0x0)return null;const _0x2de327=Math['floor'](_0x6f018a/_0x109781),_0x164fa3=Math[_0xca87c6(0x152)](_0x6f018a/_0x4fc36),_0x2c8e43=Math[_0xca87c6(0x152)](_0x6f018a/_0xf8bcf4);let _0x256b1c=null;for(let _0xca52c2=0x1;_0xca52c2<=_0x2de327;_0xca52c2+=0x1){for(let _0x2a1a96=0x1;_0x2a1a96<=_0x164fa3;_0x2a1a96+=0x1){const _0x5d748b=Math['min'](_0x2c8e43,Math[_0xca87c6(0x152)](_0xf1ac3e/(_0xca52c2*_0x2a1a96))),_0x31f0ff=_0xca52c2*_0x2a1a96*_0x5d748b;if(_0x5d748b<=0x0||_0x31f0ff<=(_0x256b1c?.[_0xca87c6(0x184)]??0x0))continue;_0x256b1c={'slotCountX':_0xca52c2,'slotCountY':_0x2a1a96,'slotCountZ':_0x5d748b,'slotCount':_0x31f0ff,'textureCount':0x1,'capacity':_0x31f0ff};}}return _0x256b1c;},getSlotCoordinate=(_0x5aee96,_0x497e09)=>{const _0x59ba66=_0x5b67da,_0x4bd06c=_0x497e09[_0x59ba66(0x195)]*_0x497e09['slotCountY'],_0x1800b5=Math[_0x59ba66(0x152)](_0x5aee96/_0x4bd06c),_0x4f53b9=_0x5aee96-_0x1800b5*_0x4bd06c,_0x8fed52=Math[_0x59ba66(0x152)](_0x4f53b9/_0x497e09[_0x59ba66(0x195)]),_0x597ba3=_0x4f53b9-_0x8fed52*_0x497e09[_0x59ba66(0x195)];return[_0x597ba3,_0x8fed52,_0x1800b5];},findLeastRecentlyUsed=(_0x5e00cd,_0x122d40)=>{const _0x365bcf=_0x5b67da;let _0x450a44=null;for(const _0x10e398 of _0x5e00cd){if(_0x10e398['lastUsedFrame']===_0x122d40)continue;if(!_0x450a44||_0x10e398['lastUsedFrame']<_0x450a44[_0x365bcf(0x183)])_0x450a44=_0x10e398;}return _0x450a44;},createPaddedTextureData=(_0x5dcab0,_0x2c7d07,_0x591fc0,_0x1c0ab7)=>{const _0xf8a831=_0x5b67da,_0x37bef2=_0x2c7d07*Float32Array[_0xf8a831(0x168)],_0x3426fd=Math['ceil'](_0x37bef2/0x100)*0x100;if(_0x37bef2===_0x3426fd)return{'values':_0x5dcab0,'bytesPerRow':_0x3426fd};const _0x5d82ed=_0x3426fd/Float32Array[_0xf8a831(0x168)],_0x227580=new Float32Array(_0x5d82ed*_0x591fc0*_0x1c0ab7);for(let _0x30aec3=0x0;_0x30aec3<_0x1c0ab7;_0x30aec3+=0x1){for(let _0x1e4a0d=0x0;_0x1e4a0d<_0x591fc0;_0x1e4a0d+=0x1){const _0x25220d=(_0x30aec3*_0x591fc0+_0x1e4a0d)*_0x2c7d07,_0x533132=(_0x30aec3*_0x591fc0+_0x1e4a0d)*_0x5d82ed;_0x227580['set'](_0x5dcab0[_0xf8a831(0x16c)](_0x25220d,_0x25220d+_0x2c7d07),_0x533132);}}return{'values':_0x227580,'bytesPerRow':_0x3426fd};};export class WebgpuBrickAtlas{['device'];[_0x5b67da(0x196)];[_0x5b67da(0x160)];[_0x5b67da(0x17c)]=null;[_0x5b67da(0x178)]=null;['atlasTextures']=[];['atlasViews']=[];[_0x5b67da(0x17a)]=null;['pageTableValues']=new Uint32Array(0x0);['residentByLogicalIndex']=new Map();[_0x5b67da(0x176)]=new Map();['generation']=0x0;constructor(_0x52f23a,_0x52d80e=DEFAULT_MEMORY_TARGET_BYTES,_0x49b4b1=_0x52d80e){const _0x3f68e9=_0x5b67da;if(!Number[_0x3f68e9(0x17f)](_0x52d80e)||!Number[_0x3f68e9(0x17f)](_0x49b4b1)||_0x52d80e<=0x0||_0x49b4b1<=0x0)throw new Error(_0x3f68e9(0x15f));this[_0x3f68e9(0x1be)]=_0x52f23a,this[_0x3f68e9(0x196)]=Math[_0x3f68e9(0x187)](_0x52d80e,_0x49b4b1),this[_0x3f68e9(0x160)]=_0x49b4b1;}get['volumeMetadata'](){const _0x2569e2=_0x5b67da;if(!this[_0x2569e2(0x17c)])throw new Error(_0x2569e2(0x1aa));return this['metadata'];}get[_0x5b67da(0x1b6)](){const _0x3e4b26=_0x5b67da;if(!this['layout'])throw new Error(_0x3e4b26(0x1b4));return this['layout'];}get['residentBrickCount'](){const _0x3ac276=_0x5b67da;return this[_0x3ac276(0x1b1)][_0x3ac276(0x1a0)];}get['statistics'](){const _0x2d35a2=_0x5b67da;if(!this[_0x2d35a2(0x17c)]||!this[_0x2d35a2(0x178)])return{'logicalBrickCount':0x0,'atlasCapacity':0x0,'gpuBytes':0x0,'memoryLimitBytes':this[_0x2d35a2(0x160)],'budgetLimited':![],'skippedSamples':0x0,'skippedCells':0x0};const _0xfc612e=getBrickCount(this[_0x2d35a2(0x17c)]),_0x4f5652=_0xfc612e[0x0]*_0xfc612e[0x1]*_0xfc612e[0x2],_0x83eb19=this[_0x2d35a2(0x17c)][_0x2d35a2(0x1a7)]+HALO_SIZE*0x2,_0xcf16fc=this[_0x2d35a2(0x17c)][_0x2d35a2(0x1c0)]+HALO_SIZE*0x2,_0x2a4be0=this[_0x2d35a2(0x17c)][_0x2d35a2(0x16a)]+HALO_SIZE*0x2,_0x23ea08=_0x83eb19*_0xcf16fc*_0x2a4be0*this[_0x2d35a2(0x178)][_0x2d35a2(0x189)]*Float32Array[_0x2d35a2(0x168)],_0x3493b9=_0x4f5652*PAGE_ENTRY_UINT_COUNT*Uint32Array['BYTES_PER_ELEMENT'];let _0x3abe17=0x0,_0x261325=0x0;for(const _0x52f31f of this[_0x2d35a2(0x1b1)][_0x2d35a2(0x1a5)]()){if(_0x52f31f[_0x2d35a2(0x1b3)])continue;_0x261325+=0x1,_0x3abe17+=_0x52f31f[_0x2d35a2(0x1a3)];}return{'logicalBrickCount':_0x4f5652,'atlasCapacity':this[_0x2d35a2(0x178)][_0x2d35a2(0x189)],'gpuBytes':_0x23ea08+_0x3493b9,'memoryLimitBytes':this[_0x2d35a2(0x160)],'budgetLimited':this['layout'][_0x2d35a2(0x189)]<_0x4f5652,'skippedSamples':_0x3abe17,'skippedCells':_0x261325};}[_0x5b67da(0x1b7)](_0x35a086){const _0x9f5af7=_0x5b67da;validateMetadata(_0x35a086);const _0x1c4a32=_0x35a086[_0x9f5af7(0x1a7)]+HALO_SIZE*0x2,_0xbd6937=_0x35a086[_0x9f5af7(0x1c0)]+HALO_SIZE*0x2,_0x40b531=_0x35a086[_0x9f5af7(0x16a)]+HALO_SIZE*0x2,_0x4b3f42=getBrickCount(_0x35a086),_0x9daf48=_0x4b3f42[0x0]*_0x4b3f42[0x1]*_0x4b3f42[0x2],_0x26940d=_0x9daf48*PAGE_ENTRY_UINT_COUNT*Uint32Array[_0x9f5af7(0x168)],_0x1d36ad=Math[_0x9f5af7(0x187)](this['memoryTargetBytes'],this[_0x9f5af7(0x160)])-_0x26940d;if(_0x1d36ad<=0x0)throw new Error(_0x9f5af7(0x1c8));const _0x23f0dc=_0x1c4a32*_0xbd6937*_0x40b531*Float32Array[_0x9f5af7(0x168)],_0x5d14f2=Math[_0x9f5af7(0x187)](_0x9daf48,Math['floor'](_0x1d36ad/_0x23f0dc)),_0x35c09b=Math['max'](0x1,Math[_0x9f5af7(0x152)](MAX_ATLAS_TEXTURE_BYTES/_0x23f0dc)),_0x44218c=Math[_0x9f5af7(0x187)](MAX_ATLAS_TEXTURE_COUNT,Math[_0x9f5af7(0x14d)](0x1,Math['ceil'](_0x5d14f2/_0x35c09b))),_0x29725a=Math[_0x9f5af7(0x14d)](0x1,Math[_0x9f5af7(0x152)](_0x5d14f2/_0x44218c)),_0x5866fe=findAtlasLayout(_0x29725a,_0x1c4a32,_0xbd6937,_0x40b531,this['device'][_0x9f5af7(0x1bc)][_0x9f5af7(0x14f)]);if(!_0x5866fe)throw new Error(_0x9f5af7(0x155));const _0x47cd44={..._0x5866fe,'textureCount':_0x44218c,'capacity':_0x5866fe[_0x9f5af7(0x184)]*_0x44218c},_0x587831=_0x1c4a32*_0x47cd44[_0x9f5af7(0x195)],_0x12d436=_0xbd6937*_0x47cd44[_0x9f5af7(0x1c6)],_0x4f7e4c=_0x40b531*_0x47cd44[_0x9f5af7(0x182)],_0x565b41=Array[_0x9f5af7(0x172)]({'length':_0x44218c},(_0x499e8d,_0x31b03c)=>this[_0x9f5af7(0x1be)][_0x9f5af7(0x173)]({'label':'volume\x20brick\x20atlas\x20'+_0x31b03c,'size':[_0x587831,_0x12d436,_0x4f7e4c],'dimension':'3d','format':_0x9f5af7(0x16b),'usage':GPUTextureUsage[_0x9f5af7(0x158)]|GPUTextureUsage[_0x9f5af7(0x18a)]|GPUTextureUsage[_0x9f5af7(0x1c1)]})),_0x5a6e8e=this[_0x9f5af7(0x1be)][_0x9f5af7(0x1bf)]({'label':_0x9f5af7(0x19a),'size':Math[_0x9f5af7(0x14d)](0x10,_0x26940d),'usage':GPUBufferUsage[_0x9f5af7(0x15c)]|GPUBufferUsage[_0x9f5af7(0x18a)]});this[_0x9f5af7(0x174)](),this[_0x9f5af7(0x17c)]={..._0x35a086},this[_0x9f5af7(0x178)]=_0x47cd44,this[_0x9f5af7(0x169)]=_0x565b41,this['atlasViews']=_0x565b41['map'](_0x553fd0=>_0x553fd0[_0x9f5af7(0x17e)]({'dimension':'3d'})),this[_0x9f5af7(0x17a)]=_0x5a6e8e,this[_0x9f5af7(0x18c)]=new Uint32Array(_0x9daf48*PAGE_ENTRY_UINT_COUNT),this['device']['queue'][_0x9f5af7(0x1b9)](_0x5a6e8e,0x0,this[_0x9f5af7(0x18c)]);for(const _0x45e1a5 of _0x565b41)this['clearAtlasTexture'](_0x45e1a5,_0x587831,_0x12d436,_0x4f7e4c);this['generation']+=0x1;}[_0x5b67da(0x164)](_0x1dbca9,_0x1daff7){const _0x19c232=_0x5b67da,_0x55b00e=this[_0x19c232(0x177)],_0x2cec9b=this['atlasLayout'],_0x207fd8=getBrickCount(_0x55b00e),_0x14decc=_0x207fd8[0x0]*_0x207fd8[0x1]*_0x207fd8[0x2];if(!Number[_0x19c232(0x1c3)](_0x1dbca9['logicalIndex'])||_0x1dbca9['logicalIndex']<0x0||_0x1dbca9[_0x19c232(0x179)]>=_0x14decc)throw new Error('Invalid\x20logical\x20volume\x20brick\x20index:\x20'+_0x1dbca9[_0x19c232(0x179)]+_0x19c232(0x156));const _0x1f926d=_0x55b00e[_0x19c232(0x1a7)]+HALO_SIZE*0x2,_0x4bc40b=_0x55b00e[_0x19c232(0x1c0)]+HALO_SIZE*0x2,_0x586326=_0x55b00e['brickDepth']+HALO_SIZE*0x2,_0x50bc0f=_0x1f926d*_0x4bc40b*_0x586326;if(_0x1dbca9[_0x19c232(0x1a5)][_0x19c232(0x15e)]!==_0x50bc0f)throw new Error('Volume\x20brick\x20'+_0x1dbca9[_0x19c232(0x179)]+'\x20requires\x20'+_0x50bc0f+_0x19c232(0x16e)+_0x1dbca9[_0x19c232(0x1a5)][_0x19c232(0x15e)]+_0x19c232(0x1a2));const _0x43f042=this[_0x19c232(0x1b1)][_0x19c232(0x1b8)](_0x1dbca9['logicalIndex'])??this[_0x19c232(0x1c5)](_0x1dbca9[_0x19c232(0x179)],_0x1daff7),_0x17ca26=analyzeBrickOccupancy(_0x1dbca9,_0x55b00e,_0x207fd8),_0x298207=Math[_0x19c232(0x152)](_0x43f042[_0x19c232(0x1a6)]/_0x2cec9b[_0x19c232(0x184)]),_0x2f1944=getSlotCoordinate(_0x43f042[_0x19c232(0x1a6)]%_0x2cec9b[_0x19c232(0x184)],_0x2cec9b),_0x4e02ae=createPaddedTextureData(new Float32Array(_0x1dbca9[_0x19c232(0x1a5)]),_0x1f926d,_0x4bc40b,_0x586326);return _0x43f042[_0x19c232(0x183)]=_0x1daff7,_0x43f042[_0x19c232(0x170)]=this[_0x19c232(0x170)],_0x43f042[_0x19c232(0x1b3)]=_0x17ca26[_0x19c232(0x1b3)],_0x43f042[_0x19c232(0x1a3)]=_0x17ca26[_0x19c232(0x175)],this[_0x19c232(0x1bb)](_0x43f042),{'values':_0x4e02ae[_0x19c232(0x1a5)],'bytesPerRow':_0x4e02ae[_0x19c232(0x19e)],'rowsPerImage':_0x4bc40b,'origin':{'x':_0x2f1944[0x0]*_0x1f926d,'y':_0x2f1944[0x1]*_0x4bc40b,'z':_0x2f1944[0x2]*_0x586326},'extent':[_0x1f926d,_0x4bc40b,_0x586326],'atlasIndex':_0x298207};}[_0x5b67da(0x188)](_0x1a707d,_0x30f5d7,_0x36f31b,_0xe9d048){const _0x12f571=_0x5b67da;_0x1a707d[_0x12f571(0x16f)]({'buffer':_0x30f5d7,'offset':_0x36f31b,'bytesPerRow':_0xe9d048['bytesPerRow'],'rowsPerImage':_0xe9d048['rowsPerImage']},{'texture':this[_0x12f571(0x191)](_0xe9d048[_0x12f571(0x17d)]),'origin':_0xe9d048[_0x12f571(0x1ab)]},_0xe9d048[_0x12f571(0x1ba)]);}[_0x5b67da(0x14c)](_0x2933ba,_0x1b90c9){const _0x4bf770=_0x5b67da;for(const _0x578888 of _0x2933ba){const _0x500db7=this[_0x4bf770(0x1b1)][_0x4bf770(0x1b8)](_0x578888);if(_0x500db7)_0x500db7[_0x4bf770(0x183)]=_0x1b90c9;}}[_0x5b67da(0x154)](_0x5323bd,_0xe182df){const _0x565ad6=_0x5b67da;if(this[_0x565ad6(0x197)][_0x565ad6(0x15e)]===0x0||!this[_0x565ad6(0x17a)])throw new Error('WebGPU\x20volume\x20atlas\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积图集资源不完整。');return this['device']['createBindGroup']({'label':_0x565ad6(0x171),'layout':_0x5323bd,'entries':[...Array[_0x565ad6(0x172)]({'length':MAX_ATLAS_TEXTURE_COUNT},(_0x78b98c,_0xc3adcd)=>({'binding':_0xc3adcd,'resource':this['atlasViews'][_0xc3adcd]??this[_0x565ad6(0x197)][0x0]})),{'binding':MAX_ATLAS_TEXTURE_COUNT,'resource':{'buffer':this[_0x565ad6(0x17a)]}},{'binding':MAX_ATLAS_TEXTURE_COUNT+0x1,'resource':{'buffer':_0xe182df}}]});}[_0x5b67da(0x1a8)](){const _0x1ed538=_0x5b67da;this[_0x1ed538(0x174)](),this['metadata']=null,this[_0x1ed538(0x178)]=null,this[_0x1ed538(0x18c)]=new Uint32Array(0x0);}[_0x5b67da(0x1c5)](_0x25bd08,_0x2d9aa2){const _0x440fb5=_0x5b67da,_0xf49d01=this[_0x440fb5(0x1b6)];let _0x19da9e=this[_0x440fb5(0x176)][_0x440fb5(0x1a0)];if(_0x19da9e>=_0xf49d01[_0x440fb5(0x189)]){const _0x3ff111=findLeastRecentlyUsed(this[_0x440fb5(0x176)][_0x440fb5(0x1a5)](),_0x2d9aa2);if(!_0x3ff111)throw new Error(_0x440fb5(0x161));_0x19da9e=_0x3ff111[_0x440fb5(0x1a6)],this[_0x440fb5(0x18e)](_0x3ff111[_0x440fb5(0x179)]),this[_0x440fb5(0x1b1)][_0x440fb5(0x153)](_0x3ff111['logicalIndex']),this['residentBySlotIndex'][_0x440fb5(0x153)](_0x19da9e);}const _0x40d8fd={'logicalIndex':_0x25bd08,'slotIndex':_0x19da9e,'lastUsedFrame':_0x2d9aa2,'generation':this[_0x440fb5(0x170)],'occupied':![],'skippedSampleCount':0x0};return this['residentByLogicalIndex']['set'](_0x25bd08,_0x40d8fd),this['residentBySlotIndex'][_0x440fb5(0x1a4)](_0x19da9e,_0x40d8fd),_0x40d8fd;}[_0x5b67da(0x1bb)](_0x4410ed){const _0xe7316f=_0x5b67da,_0x16e45f=_0x4410ed['logicalIndex']*PAGE_ENTRY_UINT_COUNT;this[_0xe7316f(0x18c)][_0x16e45f]=_0x4410ed[_0xe7316f(0x1a6)]%this[_0xe7316f(0x1b6)][_0xe7316f(0x184)]+0x1,this['pageTableValues'][_0x16e45f+0x1]=_0x4410ed[_0xe7316f(0x170)],this[_0xe7316f(0x18c)][_0x16e45f+0x2]=_0x4410ed['occupied']?0x1:0x0,this[_0xe7316f(0x18c)][_0x16e45f+0x3]=Math[_0xe7316f(0x152)](_0x4410ed['slotIndex']/this['atlasLayout'][_0xe7316f(0x184)]),this[_0xe7316f(0x1be)][_0xe7316f(0x166)][_0xe7316f(0x1b9)](this['getPageTableBuffer'](),_0x16e45f*Uint32Array[_0xe7316f(0x168)],this['pageTableValues'],_0x16e45f,PAGE_ENTRY_UINT_COUNT);}['clearPageEntry'](_0x44ed69){const _0x4535ae=_0x5b67da,_0x2901ba=_0x44ed69*PAGE_ENTRY_UINT_COUNT;this[_0x4535ae(0x18c)][_0x4535ae(0x1c9)](0x0,_0x2901ba,_0x2901ba+PAGE_ENTRY_UINT_COUNT),this[_0x4535ae(0x1be)][_0x4535ae(0x166)]['writeBuffer'](this[_0x4535ae(0x1a9)](),_0x2901ba*Uint32Array['BYTES_PER_ELEMENT'],this[_0x4535ae(0x18c)],_0x2901ba,PAGE_ENTRY_UINT_COUNT);}[_0x5b67da(0x191)](_0x47792c){const _0xf7fbd7=_0x5b67da,_0x1bbdfc=this[_0xf7fbd7(0x169)][_0x47792c];if(!_0x1bbdfc)throw new Error(_0xf7fbd7(0x193));return _0x1bbdfc;}[_0x5b67da(0x1ac)](_0x45549e,_0x39561b,_0x4bd20e,_0x48e2cd){const _0xab9f2b=_0x5b67da,_0x13bd51=this[_0xab9f2b(0x1be)][_0xab9f2b(0x15d)]({'label':'volume\x20atlas\x20clear\x20shader','code':ATLAS_CLEAR_SHADER}),_0x3cd6c6=this['device'][_0xab9f2b(0x1b0)]({'label':_0xab9f2b(0x165),'layout':'auto','compute':{'module':_0x13bd51,'entryPoint':_0xab9f2b(0x18f)}}),_0x2c5c8d=this[_0xab9f2b(0x1be)][_0xab9f2b(0x154)]({'label':_0xab9f2b(0x16d),'layout':_0x3cd6c6[_0xab9f2b(0x15a)](0x0),'entries':[{'binding':0x0,'resource':_0x45549e[_0xab9f2b(0x17e)]({'dimension':'3d'})}]}),_0x53d303=this[_0xab9f2b(0x1be)][_0xab9f2b(0x194)]({'label':'volume\x20atlas\x20clear'}),_0x1881ab=_0x53d303[_0xab9f2b(0x1ad)]({'label':_0xab9f2b(0x150)});_0x1881ab['setPipeline'](_0x3cd6c6),_0x1881ab[_0xab9f2b(0x14e)](0x0,_0x2c5c8d),_0x1881ab[_0xab9f2b(0x167)](Math[_0xab9f2b(0x1ae)](_0x39561b/ATLAS_CLEAR_WORKGROUP_SIZE),Math[_0xab9f2b(0x1ae)](_0x4bd20e/ATLAS_CLEAR_WORKGROUP_SIZE),Math[_0xab9f2b(0x1ae)](_0x48e2cd/ATLAS_CLEAR_WORKGROUP_SIZE)),_0x1881ab[_0xab9f2b(0x190)](),this[_0xab9f2b(0x1be)]['queue'][_0xab9f2b(0x185)]([_0x53d303[_0xab9f2b(0x17b)]()]);}[_0x5b67da(0x1a9)](){const _0x2e3a18=_0x5b67da;if(!this['pageTableBuffer'])throw new Error(_0x2e3a18(0x199));return this[_0x2e3a18(0x17a)];}[_0x5b67da(0x174)](){const _0x2089c8=_0x5b67da;for(const _0x359ce9 of this['atlasTextures'])_0x359ce9[_0x2089c8(0x1a8)]();this[_0x2089c8(0x17a)]?.[_0x2089c8(0x1a8)](),this[_0x2089c8(0x169)]=[],this[_0x2089c8(0x197)]=[],this[_0x2089c8(0x17a)]=null,this[_0x2089c8(0x1b1)][_0x2089c8(0x1c7)](),this['residentBySlotIndex']['clear']();}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0xbe47(_0x159a8a,_0x182ac1){const _0x48ba38=_0x48ba();return _0xbe47=function(_0xbe4748,_0x3863bc){_0xbe4748=_0xbe4748-0x132;let _0x4a5832=_0x48ba38[_0xbe4748];return _0x4a5832;},_0xbe47(_0x159a8a,_0x182ac1);}const _0x558253=_0xbe47;(function(_0x8c5491,_0x46fab3){const _0x599969=_0xbe47,_0x5342a1=_0x8c5491();while(!![]){try{const _0x5f22bd=-parseInt(_0x599969(0x13e))/0x1+parseInt(_0x599969(0x147))/0x2+parseInt(_0x599969(0x13b))/0x3*(-parseInt(_0x599969(0x139))/0x4)+-parseInt(_0x599969(0x149))/0x5*(parseInt(_0x599969(0x141))/0x6)+-parseInt(_0x599969(0x13d))/0x7*(parseInt(_0x599969(0x140))/0x8)+parseInt(_0x599969(0x146))/0x9*(parseInt(_0x599969(0x143))/0xa)+parseInt(_0x599969(0x145))/0xb;if(_0x5f22bd===_0x46fab3)break;else _0x5342a1['push'](_0x5342a1['shift']());}catch(_0x4d73c3){_0x5342a1['push'](_0x5342a1['shift']());}}}(_0x48ba,0x38e32));export class WebgpuSceneAttachments{['device'];[_0x558253(0x132)]=null;['depthView']=null;['width']=0x0;['height']=0x0;constructor(_0x3bf1b0){const _0x37c70b=_0x558253;this[_0x37c70b(0x142)]=_0x3bf1b0;}get['sceneDepthView'](){const _0x196830=_0x558253;if(!this[_0x196830(0x137)])throw new Error(_0x196830(0x133));return this[_0x196830(0x137)];}[_0x558253(0x13a)](_0x5802a0,_0x6d4116){const _0x5cebaa=_0x558253;if(this[_0x5cebaa(0x148)]===_0x5802a0&&this[_0x5cebaa(0x13c)]===_0x6d4116)return;const _0x56a7a7=this[_0x5cebaa(0x142)][_0x5cebaa(0x136)]({'label':_0x5cebaa(0x144),'size':[_0x5802a0,_0x6d4116],'format':_0x5cebaa(0x134),'usage':GPUTextureUsage[_0x5cebaa(0x135)]|GPUTextureUsage['TEXTURE_BINDING']}),_0x569ae7=this[_0x5cebaa(0x132)];this[_0x5cebaa(0x132)]=_0x56a7a7,this[_0x5cebaa(0x137)]=_0x56a7a7[_0x5cebaa(0x138)](),this[_0x5cebaa(0x148)]=_0x5802a0,this[_0x5cebaa(0x13c)]=_0x6d4116,_0x569ae7?.[_0x5cebaa(0x13f)]();}['destroy'](){const _0x5e3b74=_0x558253;this[_0x5e3b74(0x132)]?.[_0x5e3b74(0x13f)](),this['depthTexture']=null,this[_0x5e3b74(0x137)]=null,this['width']=0x0,this[_0x5e3b74(0x13c)]=0x0;}}function _0x48ba(){const _0x50f58c=['height','7KytxKR','423969bIbPPs','destroy','845088aLSRTJ','144qkHWkh','device','110DjnQZn','volume\x20scene\x20depth','9740225lLxqdV','182106CpWfGM','157880iMMPTj','width','60005bHnuRR','depthTexture','WebGPU\x20scene\x20depth\x20attachment\x20is\x20not\x20initialized.\x20WebGPU\x20场景深度附件尚未初始化。','depth32float','RENDER_ATTACHMENT','createTexture','depthView','createView','7272QkfQMX','resize','225Qmaibj'];_0x48ba=function(){return _0x50f58c;};return _0x48ba();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function _0x5df9(){const _0x365f88=['length','topology','createBuffer','632910CKCmoa','Scene\x20mesh\x20','buffer','45HRRjKB','46071YFwJiY','push','createResource','depthMode','device','vertexCount','1591630ZXFmpF','584DJGlFG','VERTEX','COPY_DST','vertices','destroyResources','59244xXIUoZ','resources','draw','329034DGElyu','1710762tbFfpk','replace','33JHGQUP','destroy','7CAOUGI','queue','byteLength','28553wcHrPo'];_0x5df9=function(){return _0x365f88;};return _0x5df9();}function _0x1ffb(_0x879ecf,_0x66b988){const _0x5df9c7=_0x5df9();return _0x1ffb=function(_0x1ffb30,_0x3d1bfa){_0x1ffb30=_0x1ffb30-0x1b4;let _0x1de1ad=_0x5df9c7[_0x1ffb30];return _0x1de1ad;},_0x1ffb(_0x879ecf,_0x66b988);}const _0x18e001=_0x1ffb;(function(_0xffa9ec,_0x585800){const _0x4dd597=_0x1ffb,_0x9d0a5e=_0xffa9ec();while(!![]){try{const _0x5ce712=-parseInt(_0x4dd597(0x1c2))/0x1+parseInt(_0x4dd597(0x1ba))/0x2+parseInt(_0x4dd597(0x1c9))/0x3*(parseInt(_0x4dd597(0x1b7))/0x4)+parseInt(_0x4dd597(0x1d0))/0x5+parseInt(_0x4dd597(0x1bb))/0x6*(-parseInt(_0x4dd597(0x1bf))/0x7)+parseInt(_0x4dd597(0x1d1))/0x8*(-parseInt(_0x4dd597(0x1ca))/0x9)+parseInt(_0x4dd597(0x1c6))/0xa*(parseInt(_0x4dd597(0x1bd))/0xb);if(_0x5ce712===_0x585800)break;else _0x9d0a5e['push'](_0x9d0a5e['shift']());}catch(_0x216573){_0x9d0a5e['push'](_0x9d0a5e['shift']());}}}(_0x5df9,0x32a9a));export class WebgpuSceneMeshResources{[_0x18e001(0x1ce)];[_0x18e001(0x1b8)]=[];constructor(_0x16f420){const _0x19c91a=_0x18e001;this[_0x19c91a(0x1ce)]=_0x16f420;}get['count'](){const _0x1af3c9=_0x18e001;return this[_0x1af3c9(0x1b8)]['length'];}[_0x18e001(0x1bc)](_0xe47461){const _0x24e069=_0x18e001,_0x2857c1=[];try{for(const _0x1e6a72 of _0xe47461)_0x2857c1[_0x24e069(0x1cb)](this[_0x24e069(0x1cc)](_0x1e6a72));}catch(_0xcd879f){for(const _0x53113a of _0x2857c1)_0x53113a['buffer'][_0x24e069(0x1be)]();throw _0xcd879f;}this['destroyResources'](),this['resources']=_0x2857c1;}['draw'](_0x20d686,_0x4c5adf,_0xdc16fb){const _0x1f1115=_0x18e001;for(const _0x5cb424 of this[_0x1f1115(0x1b8)]){if(_0x5cb424[_0x1f1115(0x1c4)]!==_0x4c5adf||_0x5cb424[_0x1f1115(0x1cd)]!==_0xdc16fb)continue;_0x20d686['setVertexBuffer'](0x0,_0x5cb424[_0x1f1115(0x1c8)]),_0x20d686[_0x1f1115(0x1b9)](_0x5cb424[_0x1f1115(0x1cf)]);}}[_0x18e001(0x1be)](){this['destroyResources']();}['createResource'](_0x52631f){const _0x292da0=_0x18e001;if(_0x52631f['vertices']['length']===0x0||_0x52631f['vertices'][_0x292da0(0x1c3)]%0x7!==0x0)throw new Error(_0x292da0(0x1c7)+_0x52631f['id']+'\x20must\x20contain\x20position\x20and\x20RGBA\x20values\x20for\x20every\x20vertex.\x20场景网格顶点必须包含位置和\x20RGBA。');const _0x361f3a=new Float32Array(_0x52631f[_0x292da0(0x1b5)]),_0x27db59=this[_0x292da0(0x1ce)][_0x292da0(0x1c5)]({'label':'volume\x20scene\x20mesh\x20'+_0x52631f['id'],'size':_0x361f3a[_0x292da0(0x1c1)],'usage':GPUBufferUsage[_0x292da0(0x1d2)]|GPUBufferUsage[_0x292da0(0x1b4)]});return this[_0x292da0(0x1ce)][_0x292da0(0x1c0)]['writeBuffer'](_0x27db59,0x0,_0x361f3a),{'id':_0x52631f['id'],'topology':_0x52631f[_0x292da0(0x1c4)],'depthMode':_0x52631f[_0x292da0(0x1cd)],'buffer':_0x27db59,'vertexCount':_0x52631f['vertices']['length']/0x7};}[_0x18e001(0x1b6)](){const _0x4711fc=_0x18e001;for(const _0x22a4b5 of this[_0x4711fc(0x1b8)])_0x22a4b5[_0x4711fc(0x1c8)]['destroy']();this['resources']=[];}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x3d2e(_0x3d2d08,_0xeecf4c){const _0x34c540=_0x34c5();return _0x3d2e=function(_0x3d2e2c,_0x11081a){_0x3d2e2c=_0x3d2e2c-0x167;let _0x4eb491=_0x34c540[_0x3d2e2c];return _0x4eb491;},_0x3d2e(_0x3d2d08,_0xeecf4c);}const _0x2d097f=_0x3d2e;(function(_0x20d64c,_0x2e998c){const _0x3d8d3d=_0x3d2e,_0x411d9e=_0x20d64c();while(!![]){try{const _0x36145c=parseInt(_0x3d8d3d(0x178))/0x1+parseInt(_0x3d8d3d(0x184))/0x2*(parseInt(_0x3d8d3d(0x175))/0x3)+parseInt(_0x3d8d3d(0x16d))/0x4+-parseInt(_0x3d8d3d(0x171))/0x5+parseInt(_0x3d8d3d(0x18a))/0x6+parseInt(_0x3d8d3d(0x182))/0x7+parseInt(_0x3d8d3d(0x180))/0x8*(-parseInt(_0x3d8d3d(0x181))/0x9);if(_0x36145c===_0x2e998c)break;else _0x411d9e['push'](_0x411d9e['shift']());}catch(_0x45bbe6){_0x411d9e['push'](_0x411d9e['shift']());}}}(_0x34c5,0x736e1));const SLICE_GRID_SIZE=0x20,SLICE_VERTEX_COUNT=SLICE_GRID_SIZE*SLICE_GRID_SIZE*0x6;export class WebgpuSliceResources{['device'];[_0x2d097f(0x168)];['resources']=[];[_0x2d097f(0x17f)]=0x0;[_0x2d097f(0x18e)]=0x0;constructor(_0x1a283a,_0x346826){const _0x43af8e=_0x2d097f;this[_0x43af8e(0x193)]=_0x1a283a,this['layout']=_0x346826;}get[_0x2d097f(0x194)](){const _0x16d450=_0x2d097f;return this[_0x16d450(0x17c)]['length'];}get[_0x2d097f(0x16c)](){const _0xb4671=_0x2d097f;return{'uniformUpdateCount':this[_0xb4671(0x17f)],'resourceRebuildCount':this[_0xb4671(0x18e)]};}['replace'](_0x1528be){const _0x4c331e=_0x2d097f,_0x511399=new Map(this[_0x4c331e(0x17c)][_0x4c331e(0x17d)](_0x6d9f7=>[_0x6d9f7['id'],_0x6d9f7])),_0x3307af=[],_0x53c712=new Set();try{for(const _0x37a255 of _0x1528be){if(!_0x37a255['visible'])continue;if(_0x53c712['has'](_0x37a255['id']))throw new Error(_0x4c331e(0x18d)+_0x37a255['id']+'\x20is\x20duplicated.\x20体积切面\x20ID\x20重复。');_0x53c712['add'](_0x37a255['id']);const _0x39ccba=this[_0x4c331e(0x18c)](_0x37a255),_0x4c70a2=_0x511399[_0x4c331e(0x189)](_0x37a255['id']);if(!_0x4c70a2){_0x3307af[_0x4c331e(0x186)](this['createResource'](_0x37a255,_0x39ccba));continue;}_0x511399['delete'](_0x37a255['id']),_0x4c70a2[_0x4c331e(0x167)]=_0x37a255['depthMode'],!this[_0x4c331e(0x198)](_0x4c70a2[_0x4c331e(0x18b)],_0x39ccba)&&(this[_0x4c331e(0x193)]['queue']['writeBuffer'](_0x4c70a2[_0x4c331e(0x174)],0x0,_0x39ccba),_0x4c70a2[_0x4c331e(0x18b)]=_0x39ccba,this[_0x4c331e(0x17f)]+=0x1),_0x3307af[_0x4c331e(0x186)](_0x4c70a2);}}catch(_0x4174eb){for(const _0x1d0286 of _0x3307af)if(!this[_0x4c331e(0x17c)][_0x4c331e(0x16a)](_0x1d0286))_0x1d0286['buffer']['destroy']();throw _0x4174eb;}for(const _0x106a05 of _0x511399[_0x4c331e(0x18b)]())_0x106a05[_0x4c331e(0x174)][_0x4c331e(0x192)]();this[_0x4c331e(0x17c)]=_0x3307af;}[_0x2d097f(0x17a)](_0x286d32,_0x1d4ae7,_0x3033d5){const _0x1a1b14=_0x2d097f;_0x286d32[_0x1a1b14(0x16f)](_0x1d4ae7);for(const _0x3da534 of this['resources']){if(_0x3da534[_0x1a1b14(0x167)]!==_0x3033d5)continue;_0x286d32[_0x1a1b14(0x169)](0x3,_0x3da534[_0x1a1b14(0x16b)]),_0x286d32[_0x1a1b14(0x17a)](SLICE_VERTEX_COUNT);}}[_0x2d097f(0x192)](){const _0x1fe994=_0x2d097f;this[_0x1fe994(0x183)]();}['createValues'](_0x329e62){const _0x283e13=_0x2d097f;if(!Number[_0x283e13(0x190)](_0x329e62['position'])||_0x329e62[_0x283e13(0x191)]<0x0||_0x329e62[_0x283e13(0x191)]>0x1)throw new Error(_0x283e13(0x196)+_0x329e62['id']+_0x283e13(0x185));const _0x39d31f=_0x329e62[_0x283e13(0x197)]==='x'?0x0:_0x329e62[_0x283e13(0x197)]==='y'?0x1:0x2,_0x3a6aae=_0x329e62[_0x283e13(0x16e)]??[0x0,0x0,0x0,0x0];if(_0x3a6aae[_0x283e13(0x18f)](_0x2a0c92=>!Number[_0x283e13(0x190)](_0x2a0c92)||_0x2a0c92<0x0||_0x2a0c92>0x1))throw new Error(_0x283e13(0x196)+_0x329e62['id']+_0x283e13(0x17e));return new Float32Array([_0x39d31f,_0x329e62[_0x283e13(0x191)],_0x329e62[_0x283e13(0x188)]??0x1,0x0,..._0x3a6aae]);}[_0x2d097f(0x172)](_0x5a4681,_0x19fe40){const _0x14d511=_0x2d097f,_0x10a0c0=this[_0x14d511(0x193)][_0x14d511(0x17b)]({'label':_0x14d511(0x187)+_0x5a4681['id'],'size':0x20,'usage':GPUBufferUsage[_0x14d511(0x195)]|GPUBufferUsage[_0x14d511(0x176)]});this[_0x14d511(0x193)][_0x14d511(0x170)][_0x14d511(0x177)](_0x10a0c0,0x0,_0x19fe40);const _0xa3102b=this[_0x14d511(0x193)][_0x14d511(0x173)]({'layout':this[_0x14d511(0x168)],'entries':[{'binding':0x0,'resource':{'buffer':_0x10a0c0}}]});return this[_0x14d511(0x18e)]+=0x1,{'id':_0x5a4681['id'],'depthMode':_0x5a4681[_0x14d511(0x167)],'buffer':_0x10a0c0,'bindGroup':_0xa3102b,'values':_0x19fe40};}[_0x2d097f(0x198)](_0x1e1ea7,_0x4b251e){const _0x55a5e2=_0x2d097f;for(let _0x2d0738=0x0;_0x2d0738<_0x1e1ea7[_0x55a5e2(0x179)];_0x2d0738+=0x1)if(_0x1e1ea7[_0x2d0738]!==_0x4b251e[_0x2d0738])return![];return!![];}[_0x2d097f(0x183)](){const _0x54d3ec=_0x2d097f;for(const _0x2a0641 of this[_0x54d3ec(0x17c)])_0x2a0641['buffer']['destroy']();this[_0x54d3ec(0x17c)]=[];}}function _0x34c5(){const _0x5d9716=['952585YsaEWZ','createResource','createBindGroup','buffer','1835214igpSGY','COPY_DST','writeBuffer','663717QfPtcg','length','draw','createBuffer','resources','map','\x20plate\x20color\x20must\x20use\x20values\x20from\x20zero\x20through\x20one.\x20体积切面底板颜色必须位于零至一。','uniformUpdateCount','3044856werZIl','54RDkqLT','441105QtMvsE','destroyResources','2ctheBH','\x20position\x20must\x20be\x20normalized\x20to\x20zero\x20through\x20one.\x20体积切面位置必须归一化到零至一。','push','volume\x20slice\x20','opacity','get','4970670CiSGin','values','createValues','Volume\x20slice\x20ID\x20','resourceRebuildCount','some','isFinite','position','destroy','device','count','UNIFORM','Volume\x20slice\x20','axis','valuesEqual','depthMode','layout','setBindGroup','includes','bindGroup','statistics','3120180vMpPMH','plateColor','setPipeline','queue'];_0x34c5=function(){return _0x5d9716;};return _0x34c5();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x3e5e(){const _0x38ba4c=['colorBuffer','counts','4473020imynCZ','opacity','max','STORAGE','9624160OxVMbV','queue','writeBuffer','volume\x20opacity\x20stop\x20values','device','colorStopCount','Volume\x20color\x20and\x20opacity\x20stops\x20cannot\x20be\x20empty.\x20体积颜色和透明度色标不能为空。','length','byteLength','colorValuesBuffer','525447gUhHFe','update','volume\x20opacity\x20stop\x20alphas','volume\x20transfer\x20bind\x20group','3117285DFsZwv','createBuffer','destroy','opacityStopCount','createBindGroup','color','COPY_DST','298gSZybo','opacityBuffer','destroyBuffers','volume\x20color\x20stop\x20values','440WbmZoD','1735410HgQeZm','opacityValuesBuffer','value','9330oMavzT','volume\x20color\x20stop\x20colors','28mvOSoV','513375qczZEu'];_0x3e5e=function(){return _0x38ba4c;};return _0x3e5e();}const _0x203228=_0x35f6;function _0x35f6(_0x174c9d,_0x5ac9b6){const _0x3e5e32=_0x3e5e();return _0x35f6=function(_0x35f646,_0x1d7bfb){_0x35f646=_0x35f646-0xb5;let _0x5230cd=_0x3e5e32[_0x35f646];return _0x5230cd;},_0x35f6(_0x174c9d,_0x5ac9b6);}(function(_0x15be5b,_0x51f619){const _0x3b1d60=_0x35f6,_0x59f77a=_0x15be5b();while(!![]){try{const _0x3b9580=parseInt(_0x3b1d60(0xd7))/0x1+-parseInt(_0x3b1d60(0xcc))/0x2*(parseInt(_0x3b1d60(0xd4))/0x3)+parseInt(_0x3b1d60(0xda))/0x4+-parseInt(_0x3b1d60(0xc5))/0x5+-parseInt(_0x3b1d60(0xd1))/0x6*(parseInt(_0x3b1d60(0xd6))/0x7)+-parseInt(_0x3b1d60(0xb7))/0x8+-parseInt(_0x3b1d60(0xc1))/0x9*(-parseInt(_0x3b1d60(0xd0))/0xa);if(_0x3b9580===_0x51f619)break;else _0x59f77a['push'](_0x59f77a['shift']());}catch(_0x1cd618){_0x59f77a['push'](_0x59f77a['shift']());}}}(_0x3e5e,0xb800b));const createStorageBuffer=(_0xeeef77,_0x3a15c9,_0x391155)=>{const _0xe9d6c9=_0x35f6,_0x19a062=_0xeeef77[_0xe9d6c9(0xc6)]({'label':_0x391155,'size':Math[_0xe9d6c9(0xb5)](0x4,_0x3a15c9['byteLength']),'usage':GPUBufferUsage[_0xe9d6c9(0xb6)]|GPUBufferUsage[_0xe9d6c9(0xcb)]});if(_0x3a15c9[_0xe9d6c9(0xbf)]>0x0)_0xeeef77[_0xe9d6c9(0xb8)][_0xe9d6c9(0xb9)](_0x19a062,0x0,_0x3a15c9);return _0x19a062;},validateStops=(_0x13d891,_0x332d3c)=>{const _0xdc2b73=_0x35f6;if(_0x13d891[_0xdc2b73(0xbe)]===0x0||_0x332d3c['length']===0x0)throw new Error(_0xdc2b73(0xbd));for(let _0x3c752e=0x1;_0x3c752e<_0x13d891[_0xdc2b73(0xbe)];_0x3c752e+=0x1){if(_0x13d891[_0x3c752e]['value']<_0x13d891[_0x3c752e-0x1][_0xdc2b73(0xd3)])throw new Error('Volume\x20color\x20stops\x20must\x20be\x20sorted\x20by\x20value.\x20体积颜色色标必须按数值升序排列。');}for(let _0x1ce602=0x0;_0x1ce602<_0x332d3c[_0xdc2b73(0xbe)];_0x1ce602+=0x1){if(_0x332d3c[_0x1ce602]['opacity']<0x0||_0x332d3c[_0x1ce602][_0xdc2b73(0xdb)]>0x1)throw new Error('Volume\x20opacity\x20stops\x20must\x20be\x20between\x20zero\x20and\x20one.\x20体积透明度色标必须位于零到一之间。');if(_0x1ce602>0x0&&_0x332d3c[_0x1ce602]['value']<_0x332d3c[_0x1ce602-0x1][_0xdc2b73(0xd3)])throw new Error('Volume\x20opacity\x20stops\x20must\x20be\x20sorted\x20by\x20value.\x20体积透明度色标必须按数值升序排列。');}};export class WebgpuTransferResources{['device'];[_0x203228(0xc0)]=null;[_0x203228(0xd8)]=null;[_0x203228(0xd2)]=null;[_0x203228(0xcd)]=null;[_0x203228(0xbc)]=0x0;[_0x203228(0xc8)]=0x0;constructor(_0x5191f9){this['device']=_0x5191f9;}get[_0x203228(0xd9)](){const _0x388c90=_0x203228;return[this[_0x388c90(0xbc)],this[_0x388c90(0xc8)]];}[_0x203228(0xc2)](_0x4b20ef,_0x5a65f8){const _0x46ed4b=_0x203228;validateStops(_0x4b20ef,_0x5a65f8);const _0x712cde=new Float32Array(_0x4b20ef[_0x46ed4b(0xbe)]),_0x12d0be=new Float32Array(_0x4b20ef[_0x46ed4b(0xbe)]*0x4),_0x489ba7=new Float32Array(_0x5a65f8[_0x46ed4b(0xbe)]),_0x2e5966=new Float32Array(_0x5a65f8[_0x46ed4b(0xbe)]);for(let _0x22b2d4=0x0;_0x22b2d4<_0x4b20ef['length'];_0x22b2d4+=0x1){_0x712cde[_0x22b2d4]=_0x4b20ef[_0x22b2d4]['value'],_0x12d0be['set'](_0x4b20ef[_0x22b2d4][_0x46ed4b(0xca)],_0x22b2d4*0x4);}for(let _0x55dbf7=0x0;_0x55dbf7<_0x5a65f8[_0x46ed4b(0xbe)];_0x55dbf7+=0x1){_0x489ba7[_0x55dbf7]=_0x5a65f8[_0x55dbf7][_0x46ed4b(0xd3)],_0x2e5966[_0x55dbf7]=_0x5a65f8[_0x55dbf7][_0x46ed4b(0xdb)];}const _0xb65ccb=[createStorageBuffer(this[_0x46ed4b(0xbb)],_0x712cde,_0x46ed4b(0xcf)),createStorageBuffer(this[_0x46ed4b(0xbb)],_0x12d0be,_0x46ed4b(0xd5)),createStorageBuffer(this['device'],_0x489ba7,_0x46ed4b(0xba)),createStorageBuffer(this['device'],_0x2e5966,_0x46ed4b(0xc3))];this[_0x46ed4b(0xce)](),this[_0x46ed4b(0xc0)]=_0xb65ccb[0x0],this[_0x46ed4b(0xd8)]=_0xb65ccb[0x1],this[_0x46ed4b(0xd2)]=_0xb65ccb[0x2],this[_0x46ed4b(0xcd)]=_0xb65ccb[0x3],this[_0x46ed4b(0xbc)]=_0x4b20ef[_0x46ed4b(0xbe)],this[_0x46ed4b(0xc8)]=_0x5a65f8['length'];}[_0x203228(0xc9)](_0x4a3402){const _0x3639b3=_0x203228;if(!this[_0x3639b3(0xc0)]||!this[_0x3639b3(0xd8)]||!this[_0x3639b3(0xd2)]||!this[_0x3639b3(0xcd)])throw new Error('WebGPU\x20volume\x20transfer\x20resources\x20are\x20incomplete.\x20WebGPU\x20体积传递函数资源不完整。');return this[_0x3639b3(0xbb)][_0x3639b3(0xc9)]({'label':_0x3639b3(0xc4),'layout':_0x4a3402,'entries':[{'binding':0x0,'resource':{'buffer':this[_0x3639b3(0xc0)]}},{'binding':0x1,'resource':{'buffer':this[_0x3639b3(0xd8)]}},{'binding':0x2,'resource':{'buffer':this[_0x3639b3(0xd2)]}},{'binding':0x3,'resource':{'buffer':this['opacityBuffer']}}]});}[_0x203228(0xc7)](){const _0x317129=_0x203228;this[_0x317129(0xce)](),this[_0x317129(0xbc)]=0x0,this[_0x317129(0xc8)]=0x0;}['destroyBuffers'](){const _0x3f6477=_0x203228;this[_0x3f6477(0xc0)]?.[_0x3f6477(0xc7)](),this[_0x3f6477(0xd8)]?.[_0x3f6477(0xc7)](),this[_0x3f6477(0xd2)]?.[_0x3f6477(0xc7)](),this[_0x3f6477(0xcd)]?.[_0x3f6477(0xc7)](),this[_0x3f6477(0xc0)]=null,this['colorBuffer']=null,this['opacityValuesBuffer']=null,this[_0x3f6477(0xcd)]=null;}}
|