lythreeframe 1.0.1 → 1.0.5
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/LICENSE +8 -0
- package/README.md +3 -0
- package/dist/index.ts +80 -0
- package/package.json +18 -12
- package/rollup.config.js +31 -0
- package/src/draco/README.md +32 -0
- package/src/draco/draco_decoder.js +34 -0
- package/src/draco/draco_decoder.wasm +0 -0
- package/src/draco/draco_encoder.js +33 -0
- package/src/draco/draco_wasm_wrapper.js +117 -0
- package/src/draco/gltf/draco_decoder.js +33 -0
- package/src/draco/gltf/draco_decoder.wasm +0 -0
- package/src/draco/gltf/draco_encoder.js +33 -0
- package/src/draco/gltf/draco_wasm_wrapper.js +116 -0
- package/src/index.ts +44 -0
- package/{lythreeFrame/src → src/lythreeframe}/AssetManagement/AssetManager.ts +8 -6
- package/{lythreeFrame/src → src/lythreeframe}/AssetManagement/AssetPointer/AssetPointer.ts +1 -1
- package/{lythreeFrame/src → src/lythreeframe}/Frame/Controller.ts +7 -7
- package/{lythreeFrame/src → src/lythreeframe}/Frame/Viewport.ts +58 -58
- package/{lythreeFrame/src → src/lythreeframe}/Frame/World.ts +4 -4
- package/{lythreeFrame/src → src/lythreeframe}/Frame.ts +1 -1
- package/src/lythreeframe/Library/MaterialLibrary.ts +292 -0
- package/{lythreeFrame/src → src/lythreeframe}/Library/Math.ts +4 -4
- package/{lythreeFrame/src → src/lythreeframe}/Object/Actor.ts +2 -2
- package/{lythreeFrame/src → src/lythreeframe}/Object/Actors/Camera/CameraActor.ts +1 -1
- package/{lythreeFrame/src → src/lythreeframe}/Object/Actors/Light/DirectionalLightActor.ts +2 -2
- package/{lythreeFrame/src → src/lythreeframe}/Object/Actors/Shape/BoxActor.ts +2 -2
- package/{lythreeFrame/src → src/lythreeframe}/Object/Actors/Shape/PlaneActor.ts +2 -2
- package/src/lythreeframe/Object/Actors/Shape/TubeActor.ts +37 -0
- package/{lythreeFrame/src → src/lythreeframe}/Object/Components/2D/2DComponent.ts +1 -1
- package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Camera/CameraComponent.ts +1 -1
- package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Component.ts +1 -1
- package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Light/LightComponent.ts +1 -1
- package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Mesh/InstanceMesh/MultiInstanceMeshComponent.ts +2 -2
- package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Mesh/MeshComponent.ts +2 -2
- package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Mesh/Sprite/SpriteComponent.ts +1 -1
- package/{lythreeFrame/src → src/lythreeframe}/Object/Components/SceneComponent.ts +10 -8
- package/{lythreeFrame/src → src/lythreeframe}/Object/Controller/Controller.ts +2 -2
- package/{lythreeFrame/src → src/lythreeframe}/Object/Pawn/CameraStatus.ts +1 -1
- package/src/lythreeframe/Object/Pawn/FirstPerson.ts +230 -0
- package/src/lythreeframe/Object/Pawn/Oribital.ts +276 -0
- package/src/lythreeframe/Object/Pawn/PawnBase.ts +189 -0
- package/src/lythreeframe/Object/Pawn/TopView.ts +205 -0
- package/src/lythreeframe/Object/Pawn/TransformControl.ts +215 -0
- package/src/lythreeframe/Object/Pawn/staticCamera.ts +80 -0
- package/{lythreeFrame/src → src/lythreeframe}/Object/PawnV2/FirstPerson.ts +3 -3
- package/{lythreeFrame/src → src/lythreeframe}/Object/PawnV2/Oribital.ts +2 -2
- package/{lythreeFrame/src → src/lythreeframe}/Object/PawnV2/Pawn.ts +1 -1
- package/{lythreeFrame/src → src/lythreeframe}/Object/PawnV2/TransformControl.ts +6 -5
- package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/DOF.ts +1 -2
- package/{lythreeFrame/src → src/lythreeframe}/PostProcess/PostProcessParam.ts +5 -5
- package/{lythreeFrame/src → src/lythreeframe}/ThreeJsApp.ts +4 -4
- package/tsconfig.json +105 -0
- package/lythreeFrame/index.js +0 -48
- package/lythreeFrame/src/Library/MaterialLibrary.ts +0 -288
- package/lythreeFrame/src/Object/Actors/Shape/TubeActor.ts +0 -37
- package/lythreeFrame/src/Object/Pawn/FirstPerson.ts +0 -230
- package/lythreeFrame/src/Object/Pawn/Oribital.ts +0 -276
- package/lythreeFrame/src/Object/Pawn/PawnBase.ts +0 -189
- package/lythreeFrame/src/Object/Pawn/TopView.ts +0 -205
- package/lythreeFrame/src/Object/Pawn/TransformControl.ts +0 -215
- package/lythreeFrame/src/Object/Pawn/staticCamera.ts +0 -80
- /package/{lythreeFrame/src → src/lythreeframe}/AssetManagement/AssetDefines.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/AssetManagement/Task/Task.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Container/SmartPointer.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Defines.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Delegate.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Factory/CameraFactory.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Factory/RendererFactory.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Geometry/PlaneGeometry.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Geometry/TriangleGeometry.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Library/ContainerLibrary.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Library/ResourceLibrary.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Object/Actors/Shape/CurveActor.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Object/BaseObject.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Light/DirectionalLight/DirectionalLightComponent.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Mesh/InstanceMesh/InstanceMeshComponent.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Mesh/Line/CurveComponent.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Mesh/Shape/BoxComponent.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Mesh/Shape/PlaneComponent.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Object/Components/Mesh/Shape/SphereComponent.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/Bloom.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/Denoise.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/GTAO.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/LensFlare.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/MotionBlur.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/Outline.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/SSR.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/Param/ToneMapping.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/PostProcess/WebGPUPostProcessFactory.ts +0 -0
- /package/{lythreeFrame/src → src/lythreeframe}/Shader/Postprocess/ColorShader.ts +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
Copyright (c) <year> <copyright holders>
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
5
|
+
|
|
6
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
7
|
+
|
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
package/dist/index.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
typeof define === 'function' && define.amd ? define(factory) :
|
|
3
|
+
factory();
|
|
4
|
+
})((function () { 'use strict';
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.FirstPerson = exports.Orbital = exports.LabelComponent = exports.DirectionalLightComponent = exports.SphereComponent = exports.PlaneComponent = exports.BoxComponent = exports.MeshComponent = exports.SceneComponent = exports.ToneMappingOptions = exports.DefaultToneMappingParams = exports.DefaultSSRParam = exports.DefaultOutlineParams = exports.DefaultGTAOParam = exports.DefaultDOFParam = exports.DefaultDenoiseParam = exports.DefaultBloomParam = exports.DefaultPostProcessParam = exports.WebGPUPostProcessFactory = exports.PlaneActor = exports.BoxActor = exports.DirectionalLightActor = exports.Actor = exports.World = exports.Viewport = exports.Controller = exports.DefaultAppParam = exports.DefaultCameraParam = exports.DefaultRenderParam = exports.ThreeJsApp = exports.Delegate = exports.AttachmentRules = exports.LYAssetManager = exports.LYLoadTask = void 0;
|
|
8
|
+
//Loading functionality
|
|
9
|
+
var Task_1 = require("./lythreeframe/AssetManagement/Task/Task");
|
|
10
|
+
Object.defineProperty(exports, "LYLoadTask", { enumerable: true, get: function () { return Task_1.LYLoadTask; } });
|
|
11
|
+
var AssetManager_1 = require("./lythreeframe/AssetManagement/AssetManager");
|
|
12
|
+
Object.defineProperty(exports, "LYAssetManager", { enumerable: true, get: function () { return AssetManager_1.LYAssetManager; } });
|
|
13
|
+
//Tools
|
|
14
|
+
var Defines_1 = require("./lythreeframe/Defines");
|
|
15
|
+
Object.defineProperty(exports, "AttachmentRules", { enumerable: true, get: function () { return Defines_1.AttachmentRules; } });
|
|
16
|
+
var Delegate_1 = require("./lythreeframe/Delegate");
|
|
17
|
+
Object.defineProperty(exports, "Delegate", { enumerable: true, get: function () { return Delegate_1.Delegate; } });
|
|
18
|
+
//Frame
|
|
19
|
+
var ThreeJsApp_1 = require("./lythreeframe/ThreeJsApp");
|
|
20
|
+
Object.defineProperty(exports, "ThreeJsApp", { enumerable: true, get: function () { return ThreeJsApp_1.ThreeJsApp; } });
|
|
21
|
+
Object.defineProperty(exports, "DefaultRenderParam", { enumerable: true, get: function () { return ThreeJsApp_1.DefaultRenderParam; } });
|
|
22
|
+
Object.defineProperty(exports, "DefaultCameraParam", { enumerable: true, get: function () { return ThreeJsApp_1.DefaultCameraParam; } });
|
|
23
|
+
Object.defineProperty(exports, "DefaultAppParam", { enumerable: true, get: function () { return ThreeJsApp_1.DefaultAppParam; } });
|
|
24
|
+
var Controller_1 = require("./lythreeframe/Frame/Controller");
|
|
25
|
+
Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return Controller_1.Controller; } });
|
|
26
|
+
var Viewport_1 = require("./lythreeframe/Frame/Viewport");
|
|
27
|
+
Object.defineProperty(exports, "Viewport", { enumerable: true, get: function () { return Viewport_1.Viewport; } });
|
|
28
|
+
var World_1 = require("./lythreeframe/Frame/World");
|
|
29
|
+
Object.defineProperty(exports, "World", { enumerable: true, get: function () { return World_1.World; } });
|
|
30
|
+
// Actors
|
|
31
|
+
var Actor_1 = require("./lythreeframe/Object/Actor");
|
|
32
|
+
Object.defineProperty(exports, "Actor", { enumerable: true, get: function () { return Actor_1.Actor; } });
|
|
33
|
+
var DirectionalLightActor_1 = require("./lythreeframe/Object/Actors/Light/DirectionalLightActor");
|
|
34
|
+
Object.defineProperty(exports, "DirectionalLightActor", { enumerable: true, get: function () { return DirectionalLightActor_1.DirectionalLightActor; } });
|
|
35
|
+
var BoxActor_1 = require("./lythreeframe/Object/Actors/Shape/BoxActor");
|
|
36
|
+
Object.defineProperty(exports, "BoxActor", { enumerable: true, get: function () { return BoxActor_1.BoxActor; } });
|
|
37
|
+
var PlaneActor_1 = require("./lythreeframe/Object/Actors/Shape/PlaneActor");
|
|
38
|
+
Object.defineProperty(exports, "PlaneActor", { enumerable: true, get: function () { return PlaneActor_1.PlaneActor; } });
|
|
39
|
+
// Post process
|
|
40
|
+
var WebGPUPostProcessFactory_1 = require("./lythreeframe/PostProcess/WebGPUPostProcessFactory");
|
|
41
|
+
Object.defineProperty(exports, "WebGPUPostProcessFactory", { enumerable: true, get: function () { return WebGPUPostProcessFactory_1.WebGPUPostProcessFactory; } });
|
|
42
|
+
var PostProcessParam_1 = require("./lythreeframe/PostProcess/PostProcessParam");
|
|
43
|
+
Object.defineProperty(exports, "DefaultPostProcessParam", { enumerable: true, get: function () { return PostProcessParam_1.DefaultPostProcessParam; } });
|
|
44
|
+
var Bloom_1 = require("./lythreeframe/PostProcess/Param/Bloom");
|
|
45
|
+
Object.defineProperty(exports, "DefaultBloomParam", { enumerable: true, get: function () { return Bloom_1.DefaultBloomParam; } });
|
|
46
|
+
var Denoise_1 = require("./lythreeframe/PostProcess/Param/Denoise");
|
|
47
|
+
Object.defineProperty(exports, "DefaultDenoiseParam", { enumerable: true, get: function () { return Denoise_1.DefaultDenoiseParam; } });
|
|
48
|
+
var DOF_1 = require("./lythreeframe/PostProcess/Param/DOF");
|
|
49
|
+
Object.defineProperty(exports, "DefaultDOFParam", { enumerable: true, get: function () { return DOF_1.DefaultDOFParam; } });
|
|
50
|
+
var GTAO_1 = require("./lythreeframe/PostProcess/Param/GTAO");
|
|
51
|
+
Object.defineProperty(exports, "DefaultGTAOParam", { enumerable: true, get: function () { return GTAO_1.DefaultGTAOParam; } });
|
|
52
|
+
var Outline_1 = require("./lythreeframe/PostProcess/Param/Outline");
|
|
53
|
+
Object.defineProperty(exports, "DefaultOutlineParams", { enumerable: true, get: function () { return Outline_1.DefaultOutlineParams; } });
|
|
54
|
+
var SSR_1 = require("./lythreeframe/PostProcess/Param/SSR");
|
|
55
|
+
Object.defineProperty(exports, "DefaultSSRParam", { enumerable: true, get: function () { return SSR_1.DefaultSSRParam; } });
|
|
56
|
+
var ToneMapping_1 = require("./lythreeframe/PostProcess/Param/ToneMapping");
|
|
57
|
+
Object.defineProperty(exports, "DefaultToneMappingParams", { enumerable: true, get: function () { return ToneMapping_1.DefaultToneMappingParams; } });
|
|
58
|
+
Object.defineProperty(exports, "ToneMappingOptions", { enumerable: true, get: function () { return ToneMapping_1.ToneMappingOptions; } });
|
|
59
|
+
// Components
|
|
60
|
+
var SceneComponent_1 = require("./lythreeframe/Object/Components/SceneComponent");
|
|
61
|
+
Object.defineProperty(exports, "SceneComponent", { enumerable: true, get: function () { return SceneComponent_1.SceneComponent; } });
|
|
62
|
+
var MeshComponent_1 = require("./lythreeframe/Object/Components/Mesh/MeshComponent");
|
|
63
|
+
Object.defineProperty(exports, "MeshComponent", { enumerable: true, get: function () { return MeshComponent_1.MeshComponent; } });
|
|
64
|
+
var BoxComponent_1 = require("./lythreeframe/Object/Components/Mesh/Shape/BoxComponent");
|
|
65
|
+
Object.defineProperty(exports, "BoxComponent", { enumerable: true, get: function () { return BoxComponent_1.BoxComponent; } });
|
|
66
|
+
var PlaneComponent_1 = require("./lythreeframe/Object/Components/Mesh/Shape/PlaneComponent");
|
|
67
|
+
Object.defineProperty(exports, "PlaneComponent", { enumerable: true, get: function () { return PlaneComponent_1.PlaneComponent; } });
|
|
68
|
+
var SphereComponent_1 = require("./lythreeframe/Object/Components/Mesh/Shape/SphereComponent");
|
|
69
|
+
Object.defineProperty(exports, "SphereComponent", { enumerable: true, get: function () { return SphereComponent_1.SphereComponent; } });
|
|
70
|
+
var DirectionalLightComponent_1 = require("./lythreeframe/Object/Components/Light/DirectionalLight/DirectionalLightComponent");
|
|
71
|
+
Object.defineProperty(exports, "DirectionalLightComponent", { enumerable: true, get: function () { return DirectionalLightComponent_1.DirectionalLightComponent; } });
|
|
72
|
+
var _2DComponent_1 = require("./lythreeframe/Object/Components/2D/2DComponent");
|
|
73
|
+
Object.defineProperty(exports, "LabelComponent", { enumerable: true, get: function () { return _2DComponent_1.LabelComponent; } });
|
|
74
|
+
// Pawn
|
|
75
|
+
var Oribital_1 = require("./lythreeframe/Object/PawnV2/Oribital");
|
|
76
|
+
Object.defineProperty(exports, "Orbital", { enumerable: true, get: function () { return Oribital_1.Orbital; } });
|
|
77
|
+
var FirstPerson_1 = require("./lythreeframe/Object/PawnV2/FirstPerson");
|
|
78
|
+
Object.defineProperty(exports, "FirstPerson", { enumerable: true, get: function () { return FirstPerson_1.FirstPerson; } });
|
|
79
|
+
|
|
80
|
+
}));
|
package/package.json
CHANGED
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lythreeframe",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.5",
|
|
4
|
+
"description": "Three.js 封装",
|
|
5
5
|
"main": "index.js",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"scripts": {
|
|
7
8
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
9
|
},
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
},
|
|
10
|
+
"keywords": [],
|
|
11
|
+
"author": "",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"browser": "dist/index.ts",
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"@
|
|
16
|
-
"
|
|
17
|
-
"typescript": "
|
|
15
|
+
"@rollup/plugin-commonjs": "^28.0.3",
|
|
16
|
+
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
17
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
18
|
+
"rollup": "^4.35.0",
|
|
19
|
+
"tslib": "^2.8.1",
|
|
20
|
+
"typescript": "^5.8.2"
|
|
18
21
|
},
|
|
19
|
-
"
|
|
20
|
-
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@types/three": "^0.174.0",
|
|
24
|
+
"gsap": "^3.12.7",
|
|
25
|
+
"three": "^0.174.0"
|
|
26
|
+
}
|
|
21
27
|
}
|
package/rollup.config.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import resolve from '@rollup/plugin-node-resolve';
|
|
2
|
+
import commonjs from '@rollup/plugin-commonjs';
|
|
3
|
+
import typescript from '@rollup/plugin-typescript';
|
|
4
|
+
|
|
5
|
+
import { createRequire } from 'module';
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const pkg = require('./package.json');
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
input: 'src/index.ts', // 打包入口
|
|
11
|
+
output: { // 打包出口
|
|
12
|
+
file: pkg.browser, // 最终打包出来的文件路径和文件名,这里是在package.json的browser: 'dist/index.js'字段中配置的
|
|
13
|
+
format: 'umd', // umd是兼容amd/cjs/iife的通用打包格式,适合浏览器
|
|
14
|
+
name: 'lythreeframe',
|
|
15
|
+
|
|
16
|
+
},
|
|
17
|
+
plugins: [ // 打包插件
|
|
18
|
+
resolve(), // 查找和打包node_modules中的第三方模块
|
|
19
|
+
commonjs(), // 将 CommonJS 转换成 ES2015 模块供 Rollup 处理
|
|
20
|
+
typescript() // 解析TypeScript
|
|
21
|
+
],
|
|
22
|
+
onwarn(warning, warn) {
|
|
23
|
+
// 忽略来自three.js依赖的eval警告
|
|
24
|
+
if (warning.code === 'EVAL' &&
|
|
25
|
+
(warning.id.includes('three/examples/jsm/libs') ||
|
|
26
|
+
warning.id.includes('chevrotain'))) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
warn(warning);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Draco 3D Data Compression
|
|
2
|
+
|
|
3
|
+
Draco is an open-source library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.
|
|
4
|
+
|
|
5
|
+
[Website](https://google.github.io/draco/) | [GitHub](https://github.com/google/draco)
|
|
6
|
+
|
|
7
|
+
## Contents
|
|
8
|
+
|
|
9
|
+
This folder contains three utilities:
|
|
10
|
+
|
|
11
|
+
* `draco_decoder.js` — Emscripten-compiled decoder, compatible with any modern browser.
|
|
12
|
+
* `draco_decoder.wasm` — WebAssembly decoder, compatible with newer browsers and devices.
|
|
13
|
+
* `draco_wasm_wrapper.js` — JavaScript wrapper for the WASM decoder.
|
|
14
|
+
|
|
15
|
+
Each file is provided in two variations:
|
|
16
|
+
|
|
17
|
+
* **Default:** Latest stable builds, tracking the project's [master branch](https://github.com/google/draco).
|
|
18
|
+
* **glTF:** Builds targeted by the [glTF mesh compression extension](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression), tracking the [corresponding Draco branch](https://github.com/google/draco/tree/gltf_2.0_draco_extension).
|
|
19
|
+
|
|
20
|
+
Either variation may be used with `THREE.DRACOLoader`:
|
|
21
|
+
|
|
22
|
+
```js
|
|
23
|
+
var dracoLoader = new THREE.DRACOLoader();
|
|
24
|
+
dracoLoader.setDecoderPath('path/to/decoders/');
|
|
25
|
+
dracoLoader.setDecoderConfig({type: 'js'}); // (Optional) Override detection of WASM support.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Further [documentation on GitHub](https://github.com/google/draco/tree/master/javascript/example#static-loading-javascript-decoder).
|
|
29
|
+
|
|
30
|
+
## License
|
|
31
|
+
|
|
32
|
+
[Apache License 2.0](https://github.com/google/draco/blob/master/LICENSE)
|