lythreeframe 1.0.5 → 1.0.6

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.
Files changed (135) hide show
  1. package/dist/bundle.cjs.js +2646 -0
  2. package/dist/bundle.esm.js +2612 -0
  3. package/{src/index.ts → dist/index.d.ts} +40 -44
  4. package/dist/lythreeframe/AssetManagement/AssetDefines.d.ts +6 -0
  5. package/dist/lythreeframe/AssetManagement/AssetManager.d.ts +23 -0
  6. package/dist/lythreeframe/AssetManagement/AssetPointer/AssetPointer.d.ts +9 -0
  7. package/dist/lythreeframe/AssetManagement/Task/Task.d.ts +7 -0
  8. package/dist/lythreeframe/Container/SmartPointer.d.ts +10 -0
  9. package/dist/lythreeframe/Defines.d.ts +4 -0
  10. package/dist/lythreeframe/Delegate.d.ts +8 -0
  11. package/dist/lythreeframe/Factory/CameraFactory.d.ts +20 -0
  12. package/dist/lythreeframe/Factory/RendererFactory.d.ts +2 -0
  13. package/dist/lythreeframe/Frame/Controller.d.ts +40 -0
  14. package/dist/lythreeframe/Frame/Viewport.d.ts +50 -0
  15. package/dist/lythreeframe/Frame/World.d.ts +18 -0
  16. package/dist/lythreeframe/Geometry/PlaneGeometry.d.ts +3 -0
  17. package/dist/lythreeframe/Geometry/TriangleGeometry.d.ts +3 -0
  18. package/dist/lythreeframe/Library/ContainerLibrary.d.ts +3 -0
  19. package/dist/lythreeframe/Library/Math.d.ts +27 -0
  20. package/dist/lythreeframe/Library/ResourceLibrary.d.ts +6 -0
  21. package/dist/lythreeframe/Object/Actor.d.ts +86 -0
  22. package/dist/lythreeframe/Object/Actors/Camera/CameraActor.d.ts +4 -0
  23. package/dist/lythreeframe/Object/Actors/Light/DirectionalLightActor.d.ts +7 -0
  24. package/dist/lythreeframe/Object/Actors/Shape/BoxActor.d.ts +5 -0
  25. package/dist/lythreeframe/Object/Actors/Shape/PlaneActor.d.ts +9 -0
  26. package/dist/lythreeframe/Object/BaseObject.d.ts +10 -0
  27. package/dist/lythreeframe/Object/Components/2D/2DComponent.d.ts +13 -0
  28. package/dist/lythreeframe/Object/Components/Camera/CameraComponent.d.ts +26 -0
  29. package/dist/lythreeframe/Object/Components/Component.d.ts +17 -0
  30. package/dist/lythreeframe/Object/Components/Light/DirectionalLight/DirectionalLightComponent.d.ts +15 -0
  31. package/dist/lythreeframe/Object/Components/Light/LightComponent.d.ts +12 -0
  32. package/dist/lythreeframe/Object/Components/Mesh/InstanceMesh/InstanceMeshComponent.d.ts +7 -0
  33. package/dist/lythreeframe/Object/Components/Mesh/InstanceMesh/MultiInstanceMeshComponent.d.ts +13 -0
  34. package/dist/lythreeframe/Object/Components/Mesh/MeshComponent.d.ts +22 -0
  35. package/dist/lythreeframe/Object/Components/Mesh/Shape/BoxComponent.d.ts +5 -0
  36. package/dist/lythreeframe/Object/Components/Mesh/Shape/PlaneComponent.d.ts +5 -0
  37. package/dist/lythreeframe/Object/Components/Mesh/Shape/SphereComponent.d.ts +5 -0
  38. package/dist/lythreeframe/Object/Components/Mesh/Sprite/SpriteComponent.d.ts +8 -0
  39. package/dist/lythreeframe/Object/Components/SceneComponent.d.ts +66 -0
  40. package/dist/lythreeframe/Object/PawnV2/FirstPerson.d.ts +5 -0
  41. package/dist/lythreeframe/Object/PawnV2/Oribital.d.ts +12 -0
  42. package/dist/lythreeframe/Object/PawnV2/Pawn.d.ts +14 -0
  43. package/dist/lythreeframe/Object/PawnV2/TransformControl.d.ts +46 -0
  44. package/dist/lythreeframe/PostProcess/Param/Bloom.d.ts +6 -0
  45. package/dist/lythreeframe/PostProcess/Param/DOF.d.ts +6 -0
  46. package/dist/lythreeframe/PostProcess/Param/Denoise.d.ts +7 -0
  47. package/dist/lythreeframe/PostProcess/Param/GTAO.d.ts +11 -0
  48. package/dist/lythreeframe/PostProcess/Param/LensFlare.d.ts +6 -0
  49. package/dist/lythreeframe/PostProcess/Param/MotionBlur.d.ts +4 -0
  50. package/dist/lythreeframe/PostProcess/Param/Outline.d.ts +17 -0
  51. package/dist/lythreeframe/PostProcess/Param/SSR.d.ts +6 -0
  52. package/dist/lythreeframe/PostProcess/Param/ToneMapping.d.ts +9 -0
  53. package/dist/lythreeframe/PostProcess/PostProcessParam.d.ts +16 -0
  54. package/dist/lythreeframe/PostProcess/WebGPUPostProcessFactory.d.ts +43 -0
  55. package/dist/lythreeframe/Shader/Postprocess/ColorShader.d.ts +29 -0
  56. package/dist/lythreeframe/ThreeJsApp.d.ts +35 -0
  57. package/package.json +26 -14
  58. package/dist/index.ts +0 -80
  59. package/rollup.config.js +0 -31
  60. package/src/draco/README.md +0 -32
  61. package/src/draco/draco_decoder.js +0 -34
  62. package/src/draco/draco_decoder.wasm +0 -0
  63. package/src/draco/draco_encoder.js +0 -33
  64. package/src/draco/draco_wasm_wrapper.js +0 -117
  65. package/src/draco/gltf/draco_decoder.js +0 -33
  66. package/src/draco/gltf/draco_decoder.wasm +0 -0
  67. package/src/draco/gltf/draco_encoder.js +0 -33
  68. package/src/draco/gltf/draco_wasm_wrapper.js +0 -116
  69. package/src/lythreeframe/AssetManagement/AssetDefines.ts +0 -8
  70. package/src/lythreeframe/AssetManagement/AssetManager.ts +0 -288
  71. package/src/lythreeframe/AssetManagement/AssetPointer/AssetPointer.ts +0 -41
  72. package/src/lythreeframe/AssetManagement/Task/Task.ts +0 -24
  73. package/src/lythreeframe/Container/SmartPointer.ts +0 -54
  74. package/src/lythreeframe/Defines.ts +0 -11
  75. package/src/lythreeframe/Delegate.ts +0 -37
  76. package/src/lythreeframe/Factory/CameraFactory.ts +0 -81
  77. package/src/lythreeframe/Factory/RendererFactory.ts +0 -7
  78. package/src/lythreeframe/Frame/Controller.ts +0 -261
  79. package/src/lythreeframe/Frame/Viewport.ts +0 -516
  80. package/src/lythreeframe/Frame/World.ts +0 -59
  81. package/src/lythreeframe/Frame.ts +0 -511
  82. package/src/lythreeframe/Geometry/PlaneGeometry.ts +0 -53
  83. package/src/lythreeframe/Geometry/TriangleGeometry.ts +0 -50
  84. package/src/lythreeframe/Library/ContainerLibrary.ts +0 -21
  85. package/src/lythreeframe/Library/MaterialLibrary.ts +0 -292
  86. package/src/lythreeframe/Library/Math.ts +0 -154
  87. package/src/lythreeframe/Library/ResourceLibrary.ts +0 -21
  88. package/src/lythreeframe/Object/Actor.ts +0 -571
  89. package/src/lythreeframe/Object/Actors/Camera/CameraActor.ts +0 -11
  90. package/src/lythreeframe/Object/Actors/Light/DirectionalLightActor.ts +0 -18
  91. package/src/lythreeframe/Object/Actors/Shape/BoxActor.ts +0 -20
  92. package/src/lythreeframe/Object/Actors/Shape/CurveActor.ts +0 -11
  93. package/src/lythreeframe/Object/Actors/Shape/PlaneActor.ts +0 -27
  94. package/src/lythreeframe/Object/Actors/Shape/TubeActor.ts +0 -37
  95. package/src/lythreeframe/Object/BaseObject.ts +0 -45
  96. package/src/lythreeframe/Object/Components/2D/2DComponent.ts +0 -64
  97. package/src/lythreeframe/Object/Components/Camera/CameraComponent.ts +0 -113
  98. package/src/lythreeframe/Object/Components/Component.ts +0 -67
  99. package/src/lythreeframe/Object/Components/Light/DirectionalLight/DirectionalLightComponent.ts +0 -78
  100. package/src/lythreeframe/Object/Components/Light/LightComponent.ts +0 -54
  101. package/src/lythreeframe/Object/Components/Mesh/InstanceMesh/InstanceMeshComponent.ts +0 -39
  102. package/src/lythreeframe/Object/Components/Mesh/InstanceMesh/MultiInstanceMeshComponent.ts +0 -115
  103. package/src/lythreeframe/Object/Components/Mesh/Line/CurveComponent.ts +0 -221
  104. package/src/lythreeframe/Object/Components/Mesh/MeshComponent.ts +0 -162
  105. package/src/lythreeframe/Object/Components/Mesh/Shape/BoxComponent.ts +0 -17
  106. package/src/lythreeframe/Object/Components/Mesh/Shape/PlaneComponent.ts +0 -10
  107. package/src/lythreeframe/Object/Components/Mesh/Shape/SphereComponent.ts +0 -10
  108. package/src/lythreeframe/Object/Components/Mesh/Sprite/SpriteComponent.ts +0 -32
  109. package/src/lythreeframe/Object/Components/SceneComponent.ts +0 -811
  110. package/src/lythreeframe/Object/Controller/Controller.ts +0 -764
  111. package/src/lythreeframe/Object/Pawn/CameraStatus.ts +0 -262
  112. package/src/lythreeframe/Object/Pawn/FirstPerson.ts +0 -230
  113. package/src/lythreeframe/Object/Pawn/Oribital.ts +0 -276
  114. package/src/lythreeframe/Object/Pawn/PawnBase.ts +0 -189
  115. package/src/lythreeframe/Object/Pawn/TopView.ts +0 -205
  116. package/src/lythreeframe/Object/Pawn/TransformControl.ts +0 -215
  117. package/src/lythreeframe/Object/Pawn/staticCamera.ts +0 -80
  118. package/src/lythreeframe/Object/PawnV2/FirstPerson.ts +0 -12
  119. package/src/lythreeframe/Object/PawnV2/Oribital.ts +0 -45
  120. package/src/lythreeframe/Object/PawnV2/Pawn.ts +0 -50
  121. package/src/lythreeframe/Object/PawnV2/TransformControl.ts +0 -202
  122. package/src/lythreeframe/PostProcess/Param/Bloom.ts +0 -12
  123. package/src/lythreeframe/PostProcess/Param/DOF.ts +0 -13
  124. package/src/lythreeframe/PostProcess/Param/Denoise.ts +0 -14
  125. package/src/lythreeframe/PostProcess/Param/GTAO.ts +0 -21
  126. package/src/lythreeframe/PostProcess/Param/LensFlare.ts +0 -11
  127. package/src/lythreeframe/PostProcess/Param/MotionBlur.ts +0 -8
  128. package/src/lythreeframe/PostProcess/Param/Outline.ts +0 -20
  129. package/src/lythreeframe/PostProcess/Param/SSR.ts +0 -11
  130. package/src/lythreeframe/PostProcess/Param/ToneMapping.ts +0 -31
  131. package/src/lythreeframe/PostProcess/PostProcessParam.ts +0 -26
  132. package/src/lythreeframe/PostProcess/WebGPUPostProcessFactory.ts +0 -217
  133. package/src/lythreeframe/Shader/Postprocess/ColorShader.ts +0 -49
  134. package/src/lythreeframe/ThreeJsApp.ts +0 -124
  135. package/tsconfig.json +0 -105
@@ -0,0 +1,5 @@
1
+ import { MeshBasicMaterial } from "three";
2
+ import { MeshComponent } from "../MeshComponent";
3
+ export declare class SphereComponent extends MeshComponent {
4
+ constructor(radius: number, material?: MeshBasicMaterial, widthSegments?: number, heightSegments?: number);
5
+ }
@@ -0,0 +1,8 @@
1
+ import { Sprite, Texture } from "three";
2
+ import { SceneComponent } from "../../SceneComponent";
3
+ export declare class SpriteComponent extends SceneComponent {
4
+ get threeObject(): Sprite;
5
+ set threeObject(newThreeObject: Sprite);
6
+ protected obj: Sprite;
7
+ constructor(texture: Texture);
8
+ }
@@ -0,0 +1,66 @@
1
+ import { Actor } from "../Actor";
2
+ import { Box3, Euler, Matrix4, Object3D, Quaternion, Vector3 } from "three";
3
+ import { Component } from "./Component";
4
+ import { World } from "../../Frame/World";
5
+ import { AttachmentRules } from "../../Defines";
6
+ export declare class SceneComponent extends Component {
7
+ set parentActor(value: Actor | null);
8
+ get parentActor(): Actor | null;
9
+ protected bCanHover: boolean;
10
+ protected bCanClick: boolean;
11
+ protected world: World | null;
12
+ constructor(newThreeObject: Object3D);
13
+ createDefaultThreeObject(): void;
14
+ get isVisible(): boolean;
15
+ setVisible(bVisible: boolean): void;
16
+ setLayers(layer: number): void;
17
+ getBoundsCenterPositionWS(): Vector3;
18
+ getBoundsTopCenterPositionWS(): Vector3;
19
+ getBoundsBottomCenterPositionWS(): Vector3;
20
+ getBounds(): Box3;
21
+ get parentComponent(): SceneComponent | null;
22
+ get childrenComponents(): any[];
23
+ onAddedToWorld(world: World): void;
24
+ destroy(): void;
25
+ destroyObject(): void;
26
+ getPosition(): Vector3;
27
+ setPosition(position: Vector3): void;
28
+ setPosition(x: number, y: number, z: number): void;
29
+ getRotation(): Euler;
30
+ setRotation(rotation: Euler): void;
31
+ setRotation(x: number, y: number, z: number): void;
32
+ getQuaternion(): Quaternion;
33
+ setQuaternion(quat: Quaternion): void;
34
+ setQuaternion(x: number, y: number, z: number, w: number): void;
35
+ getScale(): Vector3;
36
+ setScale(position: Vector3): void;
37
+ setScale(x: number, y: number, z: number): void;
38
+ getMatrix(): Matrix4;
39
+ setMatrix(matrix: Matrix4): void;
40
+ getWorldPosition(): Vector3;
41
+ getWorldRotation(): Euler;
42
+ getWorldQuaternion(): Quaternion;
43
+ getWorldScale(): Vector3;
44
+ getWorldMatrix(): Matrix4;
45
+ setWorldMatrix(newMatrix: Matrix4): void;
46
+ getWorldForwardDirection(): Vector3;
47
+ getWorldUpDirection(): Vector3;
48
+ getWorldRightDirection(): Vector3;
49
+ worldToLocal(vec: Vector3): Vector3;
50
+ localToWorld(vec: Vector3): Vector3;
51
+ attachComponent(newComponent: SceneComponent): void;
52
+ detachComponent(target: SceneComponent): void;
53
+ addChildComponent(newComponent: SceneComponent, attachmentRule?: AttachmentRules): void;
54
+ removeChildComponent(targetComponent: SceneComponent): void;
55
+ detachFromParentComponent(): void;
56
+ detachFromParentActor(): void;
57
+ destroyChildren(): void;
58
+ set isHoverEnabled(bCanHorver: boolean);
59
+ get isHoverEnabled(): boolean;
60
+ set isClickEnabled(bCanClick: boolean);
61
+ get isClickEnabled(): boolean;
62
+ onHorveringBegin(): void;
63
+ onHorveringEnd(): void;
64
+ onClicked(): void;
65
+ onDoubleClicked(): void;
66
+ }
@@ -0,0 +1,5 @@
1
+ import { Pawn } from "./Pawn";
2
+ import { Controller } from "../../Frame/Controller";
3
+ export declare class FirstPerson extends Pawn {
4
+ constructor(controller: Controller);
5
+ }
@@ -0,0 +1,12 @@
1
+ import { Pawn } from "./Pawn";
2
+ import { Controller } from "../../Frame/Controller";
3
+ import { OrbitControls } from "three/examples/jsm/Addons.js";
4
+ export declare class Orbital extends Pawn {
5
+ get control(): OrbitControls;
6
+ protected _control: OrbitControls;
7
+ protected changeEvent: () => void;
8
+ constructor(controller: Controller);
9
+ possess(): void;
10
+ unpossess(): void;
11
+ onChange(): void;
12
+ }
@@ -0,0 +1,14 @@
1
+ import { Controller } from "../../Frame/Controller";
2
+ export declare abstract class Pawn {
3
+ get camera(): import("three").PerspectiveCamera | import("three").OrthographicCamera;
4
+ set enabled(value: boolean);
5
+ get control(): any;
6
+ protected _control: any | null;
7
+ protected controller: Controller;
8
+ protected isTickEnabled: boolean;
9
+ protected constructor(controller: Controller);
10
+ tick(deltaTime: number): void;
11
+ possess(): void;
12
+ unpossess(): void;
13
+ destroy(): void;
14
+ }
@@ -0,0 +1,46 @@
1
+ import { Pawn } from "./Pawn";
2
+ import { Matrix4 } from "three";
3
+ import { TransformControls } from "three/examples/jsm/controls/TransformControls.js";
4
+ import { Controller } from "../../Frame/Controller";
5
+ export interface TransformType {
6
+ rotate: "X" | "Y" | "Z" | "E" | "XY" | "YZ" | "XZ" | "XYZ" | "XYZE" | null;
7
+ scale: "X" | "Y" | "Z" | "E" | "XY" | "YZ" | "XZ" | "XYZ" | "XYZE" | null;
8
+ translate: "X" | "Y" | "Z" | "E" | "XY" | "YZ" | "XZ" | "XYZ" | "XYZE" | null;
9
+ }
10
+ export interface ITransforming {
11
+ isTransformAllowed(): boolean;
12
+ onTransforming(worldMatrix: Matrix4): void;
13
+ getMatrixInWorld(): Matrix4;
14
+ getAllowedTransformType(): TransformType;
15
+ }
16
+ export declare class TransformGizmo extends Pawn {
17
+ get control(): TransformControls;
18
+ protected _control: TransformControls | null;
19
+ private helperObject;
20
+ private targets;
21
+ private primaryTarget;
22
+ private targetMatrixMap;
23
+ protected onDraggingChangedEvent: (param: {
24
+ value: unknown;
25
+ }) => void;
26
+ protected onObjectChangeEvent: () => void;
27
+ protected onChangeEvent: () => void;
28
+ protected onUpdateFunctions: (() => void)[];
29
+ protected onDraggingFunctions: ((event: any) => void)[];
30
+ constructor(controller: Controller);
31
+ possess(): void;
32
+ unpossess(): void;
33
+ onChange(): void;
34
+ onDraggingChanged(event: {
35
+ value: any;
36
+ }): void;
37
+ onObjectChanged(): void;
38
+ set enable(newEnable: boolean);
39
+ setTarget(primaryTarget: ITransforming, multiTargets: ITransforming[], onUpdate?: (() => void) | null, onDragging?: ((bDragging: boolean) => void) | null): void;
40
+ getMode(): "translate" | "rotate" | "scale";
41
+ setMode(mode: "translate" | "rotate" | "scale"): void;
42
+ setSpace(space: "world" | "local"): void;
43
+ setAxis(axis: "X" | "Y" | "Z" | "E" | "XY" | "YZ" | "XZ" | "XYZ" | "XYZE" | null): void;
44
+ setSize(size: number): void;
45
+ destroy(): void;
46
+ }
@@ -0,0 +1,6 @@
1
+ export interface BloomParam {
2
+ threshold: number;
3
+ strength: number;
4
+ radius: number;
5
+ }
6
+ export declare const DefaultBloomParam: BloomParam;
@@ -0,0 +1,6 @@
1
+ export interface DOFParam {
2
+ focus: number;
3
+ aperture: number;
4
+ maxblur: number;
5
+ }
6
+ export declare const DefaultDOFParam: DOFParam;
@@ -0,0 +1,7 @@
1
+ export interface DenoiseParam {
2
+ denoiseRadius: number;
3
+ lumaPhi: number;
4
+ depthPhi: number;
5
+ normalPhi: number;
6
+ }
7
+ export declare const DefaultDenoiseParam: DenoiseParam;
@@ -0,0 +1,11 @@
1
+ import { DenoiseParam } from './Denoise';
2
+ export interface GTAOParam {
3
+ distanceExponent: number;
4
+ distanceFallOff: number;
5
+ radius: number;
6
+ scale: number;
7
+ thickness: number;
8
+ denoised: boolean;
9
+ denoiseParam: DenoiseParam;
10
+ }
11
+ export declare const DefaultGTAOParam: GTAOParam;
@@ -0,0 +1,6 @@
1
+ export interface LensFlareParam {
2
+ threshold: number;
3
+ ghostSpacing: number;
4
+ ghostAttenuationFactor: number;
5
+ }
6
+ export declare const DefaultLensFlareParam: LensFlareParam;
@@ -0,0 +1,4 @@
1
+ export interface MotionBlurParam {
2
+ blurAmount: number;
3
+ }
4
+ export declare const DefaultMotionBlurParam: MotionBlurParam;
@@ -0,0 +1,17 @@
1
+ import { ColorRepresentation } from "three";
2
+ export interface OutlineParams {
3
+ edgeStrength: number;
4
+ edgeGlow: number;
5
+ edgeThickness: number;
6
+ pulsePeriod: number;
7
+ visibleEdgeColor: ColorRepresentation;
8
+ hiddenEdgeColor: ColorRepresentation;
9
+ }
10
+ export declare const DefaultOutlineParams: {
11
+ edgeStrength: number;
12
+ edgeGlow: number;
13
+ edgeThickness: number;
14
+ pulsePeriod: number;
15
+ visibleEdgeColor: number;
16
+ hiddenEdgeColor: number;
17
+ };
@@ -0,0 +1,6 @@
1
+ export interface SSRParam {
2
+ maxDistance: number;
3
+ opacity: number;
4
+ thickness: number;
5
+ }
6
+ export declare const DefaultSSRParam: SSRParam;
@@ -0,0 +1,9 @@
1
+ export interface ToneMappingParams {
2
+ exposure: number;
3
+ toneMapping: string;
4
+ }
5
+ export declare const DefaultToneMappingParams: {
6
+ exposure: number;
7
+ toneMapping: string;
8
+ };
9
+ export declare const ToneMappingOptions: Map<string, 0 | 1 | 2 | 3 | 4 | 6 | 7>;
@@ -0,0 +1,16 @@
1
+ import { SSRParam } from './Param/SSR';
2
+ import { GTAOParam } from "./Param/GTAO";
3
+ import { BloomParam } from "./Param/Bloom";
4
+ import { ToneMappingParams } from "./Param/ToneMapping";
5
+ import { DOFParam } from "./Param/DOF";
6
+ import { OutlineParams } from './Param/Outline';
7
+ export interface PostProcessParam {
8
+ toneMapping?: ToneMappingParams;
9
+ bloom?: BloomParam | null;
10
+ dof?: DOFParam | null;
11
+ ssr?: SSRParam | null;
12
+ gtao?: GTAOParam | null;
13
+ outline?: OutlineParams | null;
14
+ aa?: "fxaa" | "smaa" | null;
15
+ }
16
+ export declare const DefaultPostProcessParam: PostProcessParam;
@@ -0,0 +1,43 @@
1
+ import { OutlineParams } from './Param/Outline';
2
+ import { Scene, Camera, Object3D } from "three";
3
+ import BloomNode from "three/examples/jsm/tsl/display/BloomNode.js";
4
+ import DenoiseNode from "three/examples/jsm/tsl/display/DenoiseNode.js";
5
+ import DepthOfFieldNode from "three/examples/jsm/tsl/display/DepthOfFieldNode.js";
6
+ import GTAONode from "three/examples/jsm/tsl/display/GTAONode.js";
7
+ import { ShaderNodeObject, NodeRepresentation } from "three/tsl";
8
+ import { PassNode, Node } from "three/webgpu";
9
+ import { BloomParam } from "./Param/Bloom";
10
+ import { DOFParam } from "./Param/DOF";
11
+ import { GTAOParam } from "./Param/GTAO";
12
+ import SSRNode from "three/examples/jsm/tsl/display/SSRNode.js";
13
+ import { SSRParam } from "./Param/SSR";
14
+ import { LensFlareParam } from "./Param/LensFlare";
15
+ import LensflareNode from "three/examples/jsm/tsl/display/LensflareNode.js";
16
+ import OutlineNode from "three/examples/jsm/tsl/display/OutlineNode.js";
17
+ import { MotionBlurParam } from './Param/MotionBlur';
18
+ import { DenoiseParam } from './Param/Denoise';
19
+ export declare class WebGPUPostProcessFactory {
20
+ static constructScenePass(scene: Scene, camera: Camera): ShaderNodeObject<PassNode>;
21
+ static updateScenePass(scenePass: ShaderNodeObject<PassNode>, outputNodes: {
22
+ [name: string]: Node;
23
+ }): void;
24
+ static constructBloomPass(scenePass: ShaderNodeObject<PassNode>, params: BloomParam): ShaderNodeObject<BloomNode>;
25
+ static updateBloomPass(bloomPass: ShaderNodeObject<BloomNode>, params: BloomParam): void;
26
+ static constructDOFPass(scenePass: ShaderNodeObject<PassNode>, params: DOFParam): ShaderNodeObject<DepthOfFieldNode>;
27
+ static updateDOFPass(dofPass: ShaderNodeObject<DepthOfFieldNode>, params: DOFParam): void;
28
+ static constructMotionBlurPass(lastNode: NodeRepresentation, scenePass: ShaderNodeObject<PassNode>, param: MotionBlurParam): ShaderNodeObject<Node>;
29
+ static constructSSRPass(scenePass: ShaderNodeObject<PassNode>, param: SSRParam): ShaderNodeObject<SSRNode>;
30
+ static updateSSRPass(ssrPass: ShaderNodeObject<SSRNode>, params: SSRParam): void;
31
+ static constructGTAOPass(scenePass: ShaderNodeObject<PassNode>, params: GTAOParam): ShaderNodeObject<GTAONode>;
32
+ static updateGTAOPass(gtaoPass: ShaderNodeObject<GTAONode>, params: GTAOParam): void;
33
+ static constructDenoisePass(scenePass: ShaderNodeObject<PassNode>, inputNode: NodeRepresentation, params: DenoiseParam): ShaderNodeObject<DenoiseNode>;
34
+ static updateDenoisePass(denoisePass: ShaderNodeObject<DenoiseNode>, params: DenoiseParam): void;
35
+ static constructGTAODenoisePass(scenePass: ShaderNodeObject<PassNode>, gtaoPass: ShaderNodeObject<GTAONode>, params: GTAOParam): ShaderNodeObject<DenoiseNode>;
36
+ static updateGTAODenoisePass(denoisePass: ShaderNodeObject<DenoiseNode>, params: GTAOParam): void;
37
+ static constructLensFlarePass(inputNode: NodeRepresentation, params: LensFlareParam): ShaderNodeObject<LensflareNode>;
38
+ static updateLensFlarPass(lensflarePass: ShaderNodeObject<LensflareNode>, params: LensFlareParam): void;
39
+ static constructOutlinePass(scene: Scene, camera: Camera, outlineObjects: Object3D[], param: OutlineParams): ShaderNodeObject<OutlineNode>;
40
+ static updateOutlinePass(outlinePass: ShaderNodeObject<OutlineNode>, outlineObjects: Object3D[], params: OutlineParams): void;
41
+ static constructFXAAPass(inputNode: NodeRepresentation): ShaderNodeObject<import("three/examples/jsm/tsl/display/FXAANode.js").default>;
42
+ static constructSMAAPass(inputNode: NodeRepresentation): ShaderNodeObject<import("three/examples/jsm/tsl/display/SMAANode.js").SMAANode>;
43
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Brightness and contrast adjustment
3
+ * https://github.com/evanw/glfx.js
4
+ * brightness: -1 to 1 (-1 is solid black, 0 is no change, and 1 is solid white)
5
+ * contrast: -1 to 1 (-1 is solid gray, 0 is no change, and 1 is maximum contrast)
6
+ */
7
+ declare const ColorShader: {
8
+ name: string;
9
+ uniforms: {
10
+ tDiffuse: {
11
+ value: null;
12
+ };
13
+ brightness: {
14
+ value: number;
15
+ };
16
+ contrast: {
17
+ value: number;
18
+ };
19
+ saturation: {
20
+ value: number;
21
+ };
22
+ exposure: {
23
+ value: number;
24
+ };
25
+ };
26
+ vertexShader: string;
27
+ fragmentShader: string;
28
+ };
29
+ export { ColorShader };
@@ -0,0 +1,35 @@
1
+ import { PostProcessParam } from './PostProcess/PostProcessParam';
2
+ import { World } from "./Frame/World";
3
+ import { Viewport } from "./Frame/Viewport";
4
+ import { Controller } from "./Frame/Controller";
5
+ import { Clock, OrthographicCamera, PerspectiveCamera } from "three";
6
+ import { CameraParam } from "./Factory/CameraFactory";
7
+ import { WebGPURendererParameters } from 'three/src/renderers/webgpu/WebGPURenderer.js';
8
+ export interface AppParam {
9
+ renderParam?: WebGPURendererParameters;
10
+ cameraParam?: CameraParam;
11
+ postProcessParam?: PostProcessParam;
12
+ }
13
+ export declare const DefaultRenderParam: WebGPURendererParameters;
14
+ export declare const DefaultCameraParam: CameraParam;
15
+ export declare const DefaultAppParam: AppParam;
16
+ export declare class ThreeJsApp {
17
+ get camera(): PerspectiveCamera | OrthographicCamera;
18
+ get clock(): Clock;
19
+ get world(): World;
20
+ get viewport(): Viewport;
21
+ get controller(): Controller;
22
+ get worldClass(): typeof World;
23
+ get viewportClass(): typeof Viewport;
24
+ get controllerClass(): typeof Controller;
25
+ protected _clock: Clock;
26
+ protected _camera: PerspectiveCamera | OrthographicCamera;
27
+ protected _world: World;
28
+ protected _viewport: Viewport;
29
+ protected _controller: Controller;
30
+ constructor(elementId: string, appParam?: AppParam);
31
+ init(): void;
32
+ tick(): void;
33
+ onWindowResize(width: number, height: number): void;
34
+ destroy(): void;
35
+ }
package/package.json CHANGED
@@ -1,27 +1,39 @@
1
1
  {
2
2
  "name": "lythreeframe",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Three.js 封装",
5
- "main": "index.js",
5
+ "main": "dist/bundle.cjs.js",
6
+ "module": "dist/bundle.esm.js",
6
7
  "type": "module",
8
+ "types": "dist/index.d.ts",
7
9
  "scripts": {
8
- "test": "echo \"Error: no test specified\" && exit 1"
10
+ "build": "rollup -c",
11
+ "prepublishOnly": "npm run build"
9
12
  },
10
- "keywords": [],
11
- "author": "",
12
- "license": "MIT",
13
- "browser": "dist/index.ts",
13
+ "peerDependencies": {
14
+ "gsap": "^3.12.2",
15
+ "three": "^0.173.0",
16
+ "@types/three": "^0.173.0"
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
14
21
  "devDependencies": {
15
- "@rollup/plugin-commonjs": "^28.0.3",
16
- "@rollup/plugin-node-resolve": "^16.0.1",
17
22
  "@rollup/plugin-typescript": "^12.1.2",
23
+ "@types/three": "^0.173.0",
24
+ "gsap": "3.12.2",
18
25
  "rollup": "^4.35.0",
26
+ "three": "0.173.0",
19
27
  "tslib": "^2.8.1",
20
28
  "typescript": "^5.8.2"
21
29
  },
22
- "dependencies": {
23
- "@types/three": "^0.174.0",
24
- "gsap": "^3.12.7",
25
- "three": "^0.174.0"
26
- }
30
+ "keywords": [
31
+ "three.js",
32
+ "webgl",
33
+ "3d",
34
+ "graphics",
35
+ "webgpu"
36
+ ],
37
+ "author": "notimportant",
38
+ "license": "MIT"
27
39
  }
package/dist/index.ts DELETED
@@ -1,80 +0,0 @@
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/rollup.config.js DELETED
@@ -1,31 +0,0 @@
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
- };
@@ -1,32 +0,0 @@
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)