three-base 1.129.17 → 2.0.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/{lib/planeModal1 → PlaneModal1}/PlaneModal1.d.ts +1 -1
- package/{lib/planeModal1 → PlaneModal1}/PlaneModal1.js +3 -2
- package/{lib/planeModal1 → PlaneModal1}/PlaneModal1.ts +3 -2
- package/PlaneModal1/index.d.ts +1 -0
- package/PlaneModal1/index.js +1 -0
- package/PlaneModal1/index.ts +1 -0
- package/PlaneText.d.ts +37 -0
- package/PointLight/index.d.ts +1 -0
- package/PointLight/index.js +1 -0
- package/PointLight/index.ts +1 -0
- package/README.md +1 -0
- package/Sky/index.d.ts +1 -0
- package/Sky/index.js +1 -0
- package/Sky/index.ts +1 -0
- package/{lib/spriteModal1 → SpriteModal1}/SpriteModal1.d.ts +1 -1
- package/{lib/spriteModal1 → SpriteModal1}/SpriteModal1.js +3 -2
- package/{lib/spriteModal1 → SpriteModal1}/SpriteModal1.ts +2 -1
- package/SpriteModal1/index.d.ts +1 -0
- package/SpriteModal1/index.js +1 -0
- package/SpriteModal1/index.ts +1 -0
- package/{lib/SpriteText.d.ts → SpriteText.d.ts} +3 -3
- package/{lib/SpriteText.ts → SpriteText.ts} +1 -1
- package/{lib/Text3D → Text3D}/Text3D.js +4 -3
- package/{lib/Text3D → Text3D}/Text3D.ts +4 -3
- package/{lib/Text3D → Text3D}/fontController.d.ts +1 -1
- package/{lib/Text3D → Text3D}/fontController.js +2 -2
- package/{lib/Text3D → Text3D}/fontController.ts +2 -2
- package/Text3D/index.d.ts +1 -0
- package/Text3D/index.js +1 -0
- package/Text3D/index.ts +1 -0
- package/{lib/ThreeBase.d.ts → ThreeBase.d.ts} +3 -1
- package/{lib/ThreeBase.js → ThreeBase.js} +24 -18
- package/{lib/ThreeBase.ts → ThreeBase.ts} +26 -19
- package/{lib/ThreeMouse.js → ThreeMouse.js} +2 -0
- package/{lib/ThreeMouse.ts → ThreeMouse.ts} +2 -1
- package/index.d.ts +1 -0
- package/index.js +1 -37
- package/index.ts +1 -61
- package/{lib/keyContorls.d.ts → keyContorls.d.ts} +2 -2
- package/{lib/keyContorls.ts → keyContorls.ts} +2 -2
- package/package.json +17 -22
- package/{lib/stroke_pass → pass}/FullScreenQuad.d.ts +1 -1
- package/{lib/threeLoader.d.ts → threeLoader.d.ts} +2 -2
- package/{lib/threeLoader.js → threeLoader.js} +14 -6
- package/{lib/threeLoader.ts → threeLoader.ts} +19 -8
- package/{lib/threeUtils.d.ts → threeUtils.d.ts} +4 -1
- package/{lib/threeUtils.js → threeUtils.js} +59 -5
- package/{lib/threeUtils.ts → threeUtils.ts} +68 -9
- package/tsconfig.json +39 -0
- package/lib/PlaneText.d.ts +0 -37
- package/lib/index.d.ts +0 -22
- package/lib/type.d.ts +0 -0
- package/lib/type.js +0 -10
- package/lib/type.ts +0 -13
- /package/{lib/ApngTexture.d.ts → ApngTexture.d.ts} +0 -0
- /package/{lib/ApngTexture.js → ApngTexture.js} +0 -0
- /package/{lib/ApngTexture.ts → ApngTexture.ts} +0 -0
- /package/{lib/ApngTextureManage.d.ts → ApngTextureManage.d.ts} +0 -0
- /package/{lib/ApngTextureManage.js → ApngTextureManage.js} +0 -0
- /package/{lib/ApngTextureManage.ts → ApngTextureManage.ts} +0 -0
- /package/{lib/EventMesh.d.ts → EventMesh.d.ts} +0 -0
- /package/{lib/EventMesh.js → EventMesh.js} +0 -0
- /package/{lib/EventMesh.ts → EventMesh.ts} +0 -0
- /package/{lib/ExtrudeMesh.d.ts → ExtrudeMesh.d.ts} +0 -0
- /package/{lib/ExtrudeMesh.js → ExtrudeMesh.js} +0 -0
- /package/{lib/ExtrudeMesh.ts → ExtrudeMesh.ts} +0 -0
- /package/{lib/FPScontrol.d.ts → FPScontrol.d.ts} +0 -0
- /package/{lib/FPScontrol.js → FPScontrol.js} +0 -0
- /package/{lib/FPScontrol.ts → FPScontrol.ts} +0 -0
- /package/{lib/InstancedGroupMesh.d.ts → InstancedGroupMesh.d.ts} +0 -0
- /package/{lib/InstancedGroupMesh.js → InstancedGroupMesh.js} +0 -0
- /package/{lib/InstancedGroupMesh.ts → InstancedGroupMesh.ts} +0 -0
- /package/{lib/KeyFrameAnimation.d.ts → KeyFrameAnimation.d.ts} +0 -0
- /package/{lib/KeyFrameAnimation.js → KeyFrameAnimation.js} +0 -0
- /package/{lib/KeyFrameAnimation.ts → KeyFrameAnimation.ts} +0 -0
- /package/{lib/planeModal1 → PlaneModal1}/planeModal.png +0 -0
- /package/{lib/PlaneText.js → PlaneText.js} +0 -0
- /package/{lib/PlaneText.ts → PlaneText.ts} +0 -0
- /package/{lib/PlaneWithHtml.d.ts → PlaneWithHtml.d.ts} +0 -0
- /package/{lib/PlaneWithHtml.js → PlaneWithHtml.js} +0 -0
- /package/{lib/PlaneWithHtml.ts → PlaneWithHtml.ts} +0 -0
- /package/{lib/PointLight → PointLight}/PointLight.d.ts +0 -0
- /package/{lib/PointLight → PointLight}/PointLight.js +0 -0
- /package/{lib/PointLight → PointLight}/PointLight.ts +0 -0
- /package/{lib/PointLight → PointLight}/pointLight_map.png +0 -0
- /package/{lib/Sky → Sky}/Sky.d.ts +0 -0
- /package/{lib/Sky → Sky}/Sky.js +0 -0
- /package/{lib/Sky → Sky}/Sky.ts +0 -0
- /package/{lib/Sky → Sky}/bluesky.jpg +0 -0
- /package/{lib/spriteModal1 → SpriteModal1}/spriteModal1.png +0 -0
- /package/{lib/SpriteText.js → SpriteText.js} +0 -0
- /package/{lib/SpriteText2.d.ts → SpriteText2.d.ts} +0 -0
- /package/{lib/SpriteText2.js → SpriteText2.js} +0 -0
- /package/{lib/SpriteText2.ts → SpriteText2.ts} +0 -0
- /package/{lib/Text3D → Text3D}/Text3D.d.ts +0 -0
- /package/{lib/Text3D → Text3D}/gentilis.json +0 -0
- /package/{lib/ThreeMouse.d.ts → ThreeMouse.d.ts} +0 -0
- /package/{lib/Transition.d.ts → Transition.d.ts} +0 -0
- /package/{lib/Transition.js → Transition.js} +0 -0
- /package/{lib/Transition.ts → Transition.ts} +0 -0
- /package/{lib/keyContorls.js → keyContorls.js} +0 -0
- /package/{lib/stroke_pass → pass}/FullScreenQuad.js +0 -0
- /package/{lib/stroke_pass → pass}/FullScreenQuad.ts +0 -0
- /package/{lib/stroke_pass → pass}/stroke_pass.d.ts +0 -0
- /package/{lib/stroke_pass → pass}/stroke_pass.js +0 -0
- /package/{lib/stroke_pass → pass}/stroke_pass.ts +0 -0
- /package/{lib/shaders.d.ts → shaders.d.ts} +0 -0
- /package/{lib/shaders.js → shaders.js} +0 -0
- /package/{lib/shaders.ts → shaders.ts} +0 -0
|
@@ -16,7 +16,7 @@ export default class PlaneModal1 extends Mesh {
|
|
|
16
16
|
static img: HTMLImageElement;
|
|
17
17
|
canvas: HTMLCanvasElement;
|
|
18
18
|
context: CanvasRenderingContext2D;
|
|
19
|
-
texture: CanvasTexture;
|
|
19
|
+
texture: CanvasTexture | import("three").Texture;
|
|
20
20
|
_config: {
|
|
21
21
|
size: number;
|
|
22
22
|
title: string;
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
5
|
* @Last Modified time: 2023-03-09 19:15:35
|
|
6
6
|
*/
|
|
7
|
-
import { MeshBasicMaterial, Mesh, DoubleSide,
|
|
7
|
+
import { MeshBasicMaterial, Mesh, DoubleSide, Vector2, PlaneGeometry } from "three";
|
|
8
8
|
import planeModalPNG from "./planeModal.png";
|
|
9
|
+
import threeLoader from "../threeLoader";
|
|
9
10
|
// 平面模型弹窗
|
|
10
11
|
export default class PlaneModal1 extends Mesh {
|
|
11
12
|
constructor(config = {}) {
|
|
@@ -33,7 +34,7 @@ export default class PlaneModal1 extends Mesh {
|
|
|
33
34
|
return canvas;
|
|
34
35
|
})();
|
|
35
36
|
context = this.canvas.getContext("2d");
|
|
36
|
-
texture =
|
|
37
|
+
texture = threeLoader.getTexture(this.canvas);
|
|
37
38
|
// 配置
|
|
38
39
|
_config = {
|
|
39
40
|
size: 10,
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* @Last Modified time: 2023-03-09 19:15:35
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { MeshBasicMaterial, Mesh, DoubleSide, CanvasTexture, Vector2, BufferGeometry, PlaneGeometry } from "three";
|
|
8
|
+
import { MeshBasicMaterial, Mesh, DoubleSide, CanvasTexture, Vector2, BufferGeometry, PlaneGeometry, SRGBColorSpace } from "three";
|
|
9
9
|
import planeModalPNG from "./planeModal.png";
|
|
10
|
+
import threeLoader from "../threeLoader";
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
export type PlaneModal1Config = {
|
|
@@ -54,7 +55,7 @@ export default class PlaneModal1 extends Mesh {
|
|
|
54
55
|
|
|
55
56
|
context = this.canvas.getContext("2d")!;
|
|
56
57
|
|
|
57
|
-
texture =
|
|
58
|
+
texture = threeLoader.getTexture(this.canvas);
|
|
58
59
|
|
|
59
60
|
// 配置
|
|
60
61
|
_config: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./PlaneModal1";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./PlaneModal1";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./PlaneModal1";
|
package/PlaneText.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Mesh, MeshBasicMaterial, PlaneGeometry, Vector3 } from "three";
|
|
2
|
+
import SpriteText from "./SpriteText";
|
|
3
|
+
type Props = {
|
|
4
|
+
text?: string;
|
|
5
|
+
textHeight?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
backgroundColor?: string;
|
|
8
|
+
fontFace?: string;
|
|
9
|
+
fontSize?: number;
|
|
10
|
+
fontWeight?: string;
|
|
11
|
+
padding?: number | [number, number];
|
|
12
|
+
borderWidth?: number;
|
|
13
|
+
borderRadius?: number;
|
|
14
|
+
borderColor?: string;
|
|
15
|
+
strokeWidth?: number;
|
|
16
|
+
strokeColor?: string;
|
|
17
|
+
};
|
|
18
|
+
export default class PlaneText extends Mesh {
|
|
19
|
+
constructor(text?: string);
|
|
20
|
+
type: string;
|
|
21
|
+
static geometry: PlaneGeometry;
|
|
22
|
+
spriteText: SpriteText;
|
|
23
|
+
material: MeshBasicMaterial;
|
|
24
|
+
set(parame: Props): void;
|
|
25
|
+
get(prop: keyof SpriteText): string | number | boolean | ((event: import("three").Event) => void) | Vector3 | import("three").Object3D<import("three").Event> | import("three").BufferGeometry<import("three").NormalBufferAttributes> | ((force?: boolean) => void) | import("three").Object3D<import("three").Event>[] | HTMLCanvasElement | import("three").Vector2 | import("three").Material | import("three").Matrix4 | import("three").Quaternion | import("three").Euler | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | import("three").Matrix3 | import("three").Layers | import("three").AnimationClip[] | {
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
} | ((renderer: import("three").WebGLRenderer, scene: import("three").Scene, camera: import("three").Camera, geometry: import("three").BufferGeometry<import("three").NormalBufferAttributes>, material: import("three").Material, group: import("three").Group) => void) | ((renderer: import("three").WebGLRenderer, scene: import("three").Scene, camera: import("three").Camera, geometry: import("three").BufferGeometry<import("three").NormalBufferAttributes>, material: import("three").Material, group: import("three").Group) => void) | ((matrix: import("three").Matrix4) => void) | ((axis: Vector3, angle: number) => void) | ((euler: import("three").Euler) => void) | ((m: import("three").Matrix4) => void) | ((q: import("three").Quaternion) => void) | ((vector: Vector3) => Vector3) | ((vector: Vector3) => Vector3) | {
|
|
28
|
+
(vector: Vector3): void;
|
|
29
|
+
(x: number, y: number, z: number): void;
|
|
30
|
+
} | ((id: number) => import("three").Object3D<import("three").Event>) | ((name: string) => import("three").Object3D<import("three").Event>) | ((name: string, value: any) => import("three").Object3D<import("three").Event>) | ((name: string, value: any) => import("three").Object3D<import("three").Event>[]) | ((target: Vector3) => Vector3) | ((target: import("three").Quaternion) => import("three").Quaternion) | ((target: Vector3) => Vector3) | ((target: Vector3) => Vector3) | ((raycaster: import("three").Raycaster, intersects: import("three").Intersection<import("three").Object3D<import("three").Event>>[]) => void) | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | (() => void) | ((updateParents: boolean, updateChildren: boolean) => void) | ((meta?: {
|
|
31
|
+
geometries: any;
|
|
32
|
+
materials: any;
|
|
33
|
+
textures: any;
|
|
34
|
+
images: any;
|
|
35
|
+
}) => any) | import("three").SpriteMaterial | ((source: SpriteText, recursive?: boolean) => SpriteText) | (() => void) | ((quaternion: import("three").Quaternion) => SpriteText) | ((axis: Vector3, angle: number) => SpriteText) | ((axis: Vector3, angle: number) => SpriteText) | ((angle: number) => SpriteText) | ((angle: number) => SpriteText) | ((angle: number) => SpriteText) | ((axis: Vector3, distance: number) => SpriteText) | ((distance: number) => SpriteText) | ((distance: number) => SpriteText) | ((distance: number) => SpriteText) | ((...object: import("three").Object3D<import("three").Event>[]) => SpriteText) | ((...object: import("three").Object3D<import("three").Event>[]) => SpriteText) | (() => SpriteText) | (() => SpriteText) | ((object: import("three").Object3D<import("three").Event>) => SpriteText) | ((recursive?: boolean) => SpriteText) | (<T extends string>(type: T, listener: import("three").EventListener<import("three").Event, T, SpriteText>) => void) | (<T_1 extends string>(type: T_1, listener: import("three").EventListener<import("three").Event, T_1, SpriteText>) => boolean) | (<T_2 extends string>(type: T_2, listener: import("three").EventListener<import("three").Event, T_2, SpriteText>) => void);
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./PointLight";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./PointLight";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./PointLight";
|
package/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
.创建一个 homeRender.ts 模块
|
|
3
3
|
import { AmbientLight, BoxGeometry, Mesh, MeshLambertMaterial, PointLight } from "three";
|
|
4
4
|
import ThreeBase, { Transition } from "three-base";
|
|
5
|
+
import Transition from "three-base/Transition";
|
|
5
6
|
|
|
6
7
|
// 做项目找我 qq:389652405
|
|
7
8
|
class HomeRender extends ThreeBase {
|
package/Sky/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./Sky";
|
package/Sky/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./Sky";
|
package/Sky/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./Sky";
|
|
@@ -14,7 +14,7 @@ export default class SpritModal1 extends Sprite {
|
|
|
14
14
|
static img: HTMLImageElement;
|
|
15
15
|
canvas: HTMLCanvasElement;
|
|
16
16
|
context: CanvasRenderingContext2D;
|
|
17
|
-
texture: CanvasTexture;
|
|
17
|
+
texture: CanvasTexture | import("three").Texture;
|
|
18
18
|
_config: {
|
|
19
19
|
size: number;
|
|
20
20
|
title: string;
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
5
|
* @Last Modified time: 2023-03-08 02:05:25
|
|
6
6
|
*/
|
|
7
|
-
import { Sprite,
|
|
7
|
+
import { Sprite, Vector2 } from "three";
|
|
8
8
|
import spriteModal1PNG from "./spriteModal1.png";
|
|
9
|
+
import threeLoader from "../threeLoader";
|
|
9
10
|
// sprit弹窗1
|
|
10
11
|
export default class SpritModal1 extends Sprite {
|
|
11
12
|
constructor(config = {}) {
|
|
@@ -28,7 +29,7 @@ export default class SpritModal1 extends Sprite {
|
|
|
28
29
|
return canvas;
|
|
29
30
|
})();
|
|
30
31
|
context = this.canvas.getContext("2d");
|
|
31
|
-
texture =
|
|
32
|
+
texture = threeLoader.getTexture(this.canvas);
|
|
32
33
|
// 配置
|
|
33
34
|
_config = {
|
|
34
35
|
size: 10,
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
import { Sprite, CanvasTexture, Vector2, Raycaster, Intersection } from "three";
|
|
13
13
|
import spriteModal1PNG from "./spriteModal1.png";
|
|
14
|
+
import threeLoader from "../threeLoader";
|
|
14
15
|
|
|
15
16
|
export type SpritModal1Config = {
|
|
16
17
|
size?: number,
|
|
@@ -50,7 +51,7 @@ export default class SpritModal1 extends Sprite {
|
|
|
50
51
|
|
|
51
52
|
context = this.canvas.getContext("2d")!;
|
|
52
53
|
|
|
53
|
-
texture =
|
|
54
|
+
texture = threeLoader.getTexture(this.canvas);
|
|
54
55
|
|
|
55
56
|
// 配置
|
|
56
57
|
_config: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./SpriteModal1";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./SpriteModal1";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./SpriteModal1";
|
|
@@ -4,7 +4,7 @@ export default class SpriteText extends Sprite {
|
|
|
4
4
|
_text: string;
|
|
5
5
|
_textHeight: number;
|
|
6
6
|
_color: `#${string}` | `rgba(${string})`;
|
|
7
|
-
_backgroundColor: boolean
|
|
7
|
+
_backgroundColor: boolean | `#${string}` | `rgba(${string})`;
|
|
8
8
|
_padding: number;
|
|
9
9
|
_borderWidth: number;
|
|
10
10
|
_borderRadius: number;
|
|
@@ -21,8 +21,8 @@ export default class SpriteText extends Sprite {
|
|
|
21
21
|
set textHeight(textHeight: number);
|
|
22
22
|
get color(): `#${string}` | `rgba(${string})`;
|
|
23
23
|
set color(color: `#${string}` | `rgba(${string})`);
|
|
24
|
-
get backgroundColor(): boolean
|
|
25
|
-
set backgroundColor(color: boolean);
|
|
24
|
+
get backgroundColor(): boolean | `#${string}` | `rgba(${string})`;
|
|
25
|
+
set backgroundColor(color: boolean | `#${string}` | `rgba(${string})`);
|
|
26
26
|
get padding(): number;
|
|
27
27
|
set padding(padding: number);
|
|
28
28
|
get borderWidth(): number;
|
|
@@ -22,7 +22,7 @@ export default class SpriteText extends Sprite {
|
|
|
22
22
|
_text: string = "";
|
|
23
23
|
_textHeight: number = 10;
|
|
24
24
|
_color: `#${string}` | `rgba(${string})` = "#fffff";
|
|
25
|
-
_backgroundColor = false; // no background color
|
|
25
|
+
_backgroundColor: boolean | `#${string}` | `rgba(${string})` = false; // no background color
|
|
26
26
|
|
|
27
27
|
_padding: number = 0;
|
|
28
28
|
_borderWidth: number = 0;
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
5
|
* @Last Modified time: 2023-04-07 21:52:03
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { TextGeometry } from 'three/examples/jsm/geometries/TextGeometry.js';
|
|
8
|
+
import { Mesh, MeshStandardMaterial } from "three";
|
|
8
9
|
import fontContorller from "./fontController";
|
|
9
10
|
// 3D文字模型
|
|
10
11
|
export default class Text3D extends Mesh {
|
|
@@ -13,9 +14,9 @@ export default class Text3D extends Mesh {
|
|
|
13
14
|
this.setText({ text });
|
|
14
15
|
}
|
|
15
16
|
// 字体的存储路径 例如 : "http://drm.gitee.io/three-base-font/simhei/字.js"
|
|
16
|
-
static path = "
|
|
17
|
+
static path = "//drm.gitee.io/three-base-font/";
|
|
17
18
|
material = new MeshStandardMaterial({
|
|
18
|
-
metalness:
|
|
19
|
+
metalness: 1,
|
|
19
20
|
roughness: 0.5, // 粗糙度,值为0到1
|
|
20
21
|
});
|
|
21
22
|
// 配置
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @Last Modified time: 2023-04-07 21:52:03
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { TextGeometry, TextGeometryParameters } from 'three/examples/jsm/geometries/TextGeometry.js';
|
|
9
|
+
import { Mesh, MeshStandardMaterial } from "three";
|
|
9
10
|
import fontContorller from "./fontController";
|
|
10
11
|
|
|
11
12
|
|
|
@@ -33,11 +34,11 @@ export default class Text3D extends Mesh {
|
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
// 字体的存储路径 例如 : "http://drm.gitee.io/three-base-font/simhei/字.js"
|
|
36
|
-
static path = "
|
|
37
|
+
static path = "//drm.gitee.io/three-base-font/";
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
material = new MeshStandardMaterial({
|
|
40
|
-
metalness:
|
|
41
|
+
metalness: 1, // 金属度,值为0到1
|
|
41
42
|
roughness: 0.5, // 粗糙度,值为0到1
|
|
42
43
|
});
|
|
43
44
|
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* @Author: xiaosihan
|
|
3
3
|
* @Date: 2021-04-15 00:34:44
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
|
-
* @Last Modified time:
|
|
5
|
+
* @Last Modified time: 2022-06-08 14:33:45
|
|
6
6
|
*/
|
|
7
7
|
import Dexie from "dexie";
|
|
8
8
|
import { filter, first, isEmpty } from "lodash";
|
|
9
|
-
import { Font } from "three";
|
|
9
|
+
import { Font } from "three/examples/jsm/loaders/FontLoader.js";
|
|
10
10
|
import threeUtils from "../threeUtils";
|
|
11
11
|
import gentilisJSON from "./gentilis.json";
|
|
12
12
|
class indexBD extends Dexie {
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* @Author: xiaosihan
|
|
3
3
|
* @Date: 2021-04-15 00:34:44
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
|
-
* @Last Modified time:
|
|
5
|
+
* @Last Modified time: 2022-06-08 14:33:45
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import Dexie, { Table } from "dexie";
|
|
9
9
|
import { filter, first, isEmpty } from "lodash";
|
|
10
|
-
import { Font } from "three";
|
|
10
|
+
import { Font } from "three/examples/jsm/loaders/FontLoader.js";
|
|
11
11
|
import threeUtils from "../threeUtils";
|
|
12
12
|
import gentilisJSON from "./gentilis.json";
|
|
13
13
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./Text3D";
|
package/Text3D/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./Text3D";
|
package/Text3D/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./Text3D";
|
|
@@ -16,9 +16,11 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
16
16
|
controls: OrbitControls;
|
|
17
17
|
isRendererContextLost: boolean;
|
|
18
18
|
setContainer(div: HTMLDivElement | null): Promise<void>;
|
|
19
|
-
|
|
19
|
+
setSize(width: number, height: number): void;
|
|
20
20
|
controlsPosition: Transition;
|
|
21
21
|
controlsCenter: Transition;
|
|
22
|
+
gridHelper: void;
|
|
23
|
+
axesHelper: void;
|
|
22
24
|
init(): void;
|
|
23
25
|
resetLookAt({ position, center, }: {
|
|
24
26
|
position?: Vector3;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: xiaosihan
|
|
3
3
|
* @Date: 2021-12-20 13:38:22
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
|
-
* @Last Modified time: 2023-05-
|
|
5
|
+
* @Last Modified time: 2023-05-23 23:54:13
|
|
6
6
|
*/
|
|
7
7
|
import { round } from "lodash";
|
|
8
8
|
import { AxesHelper, EventDispatcher, GridHelper, LinearFilter, Mesh, MOUSE, NoBlending, NormalBlending, PerspectiveCamera, RGBAFormat, Scene, TOUCH, Vector2, Vector3, WebGLRenderer, WebGLRenderTarget } from "three";
|
|
@@ -13,7 +13,7 @@ import threeLoader from "./threeLoader";
|
|
|
13
13
|
import ThreeMouse from "./ThreeMouse";
|
|
14
14
|
import threeUtils from "./threeUtils";
|
|
15
15
|
import Transition from "./Transition";
|
|
16
|
-
import stroke_pass from "./
|
|
16
|
+
import stroke_pass from "./pass/stroke_pass";
|
|
17
17
|
// three.js 的基础对象
|
|
18
18
|
export default class ThreeBase extends EventDispatcher {
|
|
19
19
|
constructor() {
|
|
@@ -48,9 +48,12 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
48
48
|
return renderer;
|
|
49
49
|
})();
|
|
50
50
|
//透视相机
|
|
51
|
-
camera = new PerspectiveCamera(45, 1, 0.0001,
|
|
51
|
+
camera = new PerspectiveCamera(45, 1, 0.0001, 1000000);
|
|
52
52
|
// 场景对象
|
|
53
|
-
scene =
|
|
53
|
+
scene = (() => {
|
|
54
|
+
const scene = new Scene();
|
|
55
|
+
return scene;
|
|
56
|
+
})();
|
|
54
57
|
///鼠标事件对象
|
|
55
58
|
threeMouse = new ThreeMouse(this.renderer, this.camera, this.scene);
|
|
56
59
|
// 轨道控制器
|
|
@@ -76,20 +79,19 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
76
79
|
div.append(this.renderer.domElement);
|
|
77
80
|
// 如果上下文被销毁了, 就恢复上下文
|
|
78
81
|
if (this.isRendererContextLost) {
|
|
79
|
-
|
|
80
|
-
this.renderer['forceContextRestore']();
|
|
82
|
+
this.renderer.forceContextRestore();
|
|
81
83
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
82
84
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
83
85
|
this.renderer.domElement.style.opacity = "1";
|
|
84
86
|
}
|
|
85
|
-
this.
|
|
87
|
+
this.setSize(div.clientWidth, div.clientHeight);
|
|
86
88
|
// 开启时时渲染
|
|
87
89
|
threeUtils.removeEventListener("requestAnimationFrame", this.renderBindThis);
|
|
88
90
|
threeUtils.addEventListener("requestAnimationFrame", this.renderBindThis);
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
// 修改尺寸
|
|
92
|
-
|
|
94
|
+
setSize(width, height) {
|
|
93
95
|
if (this.camera instanceof PerspectiveCamera) {
|
|
94
96
|
this.camera.aspect = width / height;
|
|
95
97
|
this.camera.updateProjectionMatrix();
|
|
@@ -123,15 +125,19 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
123
125
|
});
|
|
124
126
|
return controlsCenter;
|
|
125
127
|
})();
|
|
128
|
+
// 网格辅助线
|
|
129
|
+
gridHelper = (() => {
|
|
130
|
+
const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
|
|
131
|
+
gridHelper.visible = threeUtils.isDev;
|
|
132
|
+
this.scene.add(gridHelper);
|
|
133
|
+
})();
|
|
134
|
+
//坐标轴线
|
|
135
|
+
axesHelper = (() => {
|
|
136
|
+
const axesHelper = new AxesHelper(10000);
|
|
137
|
+
axesHelper.visible = threeUtils.isDev;
|
|
138
|
+
this.scene.add(axesHelper);
|
|
139
|
+
})();
|
|
126
140
|
init() {
|
|
127
|
-
// 非开发模式添加网格辅助线
|
|
128
|
-
if (threeUtils.isDev) {
|
|
129
|
-
const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
|
|
130
|
-
gridHelper.position.set(0, -0.001, 0);
|
|
131
|
-
this.scene.add(gridHelper);
|
|
132
|
-
const axesHelper = new AxesHelper(10000);
|
|
133
|
-
this.scene.add(axesHelper);
|
|
134
|
-
}
|
|
135
141
|
// 资源加载进度有更新时, 需要渲染
|
|
136
142
|
threeLoader.addEventListener("progress", () => {
|
|
137
143
|
this.needRender = true;
|
|
@@ -224,7 +230,7 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
224
230
|
this.renderer.forceContextLoss();
|
|
225
231
|
// 标记上下文被销毁了
|
|
226
232
|
this.isRendererContextLost = true;
|
|
227
|
-
this.
|
|
233
|
+
this.setSize(100, 100);
|
|
228
234
|
this.renderer.domElement.style.opacity = "0";
|
|
229
235
|
}
|
|
230
236
|
// 渲染场景
|
|
@@ -239,7 +245,7 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
239
245
|
//判断尺寸发生改变时重置尺寸
|
|
240
246
|
const parentNode = this.renderer.domElement.parentNode;
|
|
241
247
|
if (parentNode.clientWidth !== this.size.x || parentNode.clientHeight !== this.size.y) {
|
|
242
|
-
this.
|
|
248
|
+
this.setSize(parentNode.clientWidth, parentNode.clientHeight);
|
|
243
249
|
}
|
|
244
250
|
// 分发鼠标事件
|
|
245
251
|
this.threeMouse.dispatchEvent();
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: xiaosihan
|
|
3
3
|
* @Date: 2021-12-20 13:38:22
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
|
-
* @Last Modified time: 2023-05-
|
|
5
|
+
* @Last Modified time: 2023-05-23 23:54:13
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { round } from "lodash";
|
|
@@ -14,7 +14,7 @@ import threeLoader from "./threeLoader";
|
|
|
14
14
|
import ThreeMouse from "./ThreeMouse";
|
|
15
15
|
import threeUtils from "./threeUtils";
|
|
16
16
|
import Transition from "./Transition";
|
|
17
|
-
import stroke_pass from "./
|
|
17
|
+
import stroke_pass from "./pass/stroke_pass";
|
|
18
18
|
|
|
19
19
|
// three.js 的基础对象
|
|
20
20
|
export default class ThreeBase extends EventDispatcher {
|
|
@@ -59,10 +59,13 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
59
59
|
})();
|
|
60
60
|
|
|
61
61
|
//透视相机
|
|
62
|
-
camera: Camera = new PerspectiveCamera(45, 1, 0.0001,
|
|
62
|
+
camera: Camera = new PerspectiveCamera(45, 1, 0.0001, 1000000);
|
|
63
63
|
|
|
64
64
|
// 场景对象
|
|
65
|
-
scene =
|
|
65
|
+
scene = (() => {
|
|
66
|
+
const scene = new Scene();
|
|
67
|
+
return scene;
|
|
68
|
+
})();
|
|
66
69
|
|
|
67
70
|
///鼠标事件对象
|
|
68
71
|
threeMouse = new ThreeMouse(this.renderer, this.camera, this.scene);
|
|
@@ -93,14 +96,13 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
93
96
|
|
|
94
97
|
// 如果上下文被销毁了, 就恢复上下文
|
|
95
98
|
if (this.isRendererContextLost) {
|
|
96
|
-
|
|
97
|
-
this.renderer['forceContextRestore']();
|
|
99
|
+
this.renderer.forceContextRestore();
|
|
98
100
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
99
101
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
100
102
|
this.renderer.domElement.style.opacity = "1";
|
|
101
103
|
}
|
|
102
104
|
|
|
103
|
-
this.
|
|
105
|
+
this.setSize(div.clientWidth, div.clientHeight);
|
|
104
106
|
|
|
105
107
|
// 开启时时渲染
|
|
106
108
|
threeUtils.removeEventListener("requestAnimationFrame", this.renderBindThis);
|
|
@@ -109,7 +111,7 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
109
111
|
}
|
|
110
112
|
|
|
111
113
|
// 修改尺寸
|
|
112
|
-
|
|
114
|
+
setSize(width: number, height: number) {
|
|
113
115
|
if (this.camera instanceof PerspectiveCamera) {
|
|
114
116
|
this.camera.aspect = width / height;
|
|
115
117
|
this.camera.updateProjectionMatrix();
|
|
@@ -147,16 +149,21 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
147
149
|
return controlsCenter;
|
|
148
150
|
})();
|
|
149
151
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const axesHelper = new AxesHelper(10000);
|
|
157
|
-
this.scene.add(axesHelper);
|
|
158
|
-
}
|
|
152
|
+
// 网格辅助线
|
|
153
|
+
gridHelper = (() => {
|
|
154
|
+
const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
|
|
155
|
+
gridHelper.visible = threeUtils.isDev;
|
|
156
|
+
this.scene.add(gridHelper);
|
|
157
|
+
})();
|
|
159
158
|
|
|
159
|
+
//坐标轴线
|
|
160
|
+
axesHelper = (() => {
|
|
161
|
+
const axesHelper = new AxesHelper(10000);
|
|
162
|
+
axesHelper.visible = threeUtils.isDev;
|
|
163
|
+
this.scene.add(axesHelper);
|
|
164
|
+
})();
|
|
165
|
+
|
|
166
|
+
init() {
|
|
160
167
|
// 资源加载进度有更新时, 需要渲染
|
|
161
168
|
threeLoader.addEventListener("progress", () => {
|
|
162
169
|
this.needRender = true;
|
|
@@ -268,7 +275,7 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
268
275
|
this.renderer.forceContextLoss();
|
|
269
276
|
// 标记上下文被销毁了
|
|
270
277
|
this.isRendererContextLost = true;
|
|
271
|
-
this.
|
|
278
|
+
this.setSize(100, 100);
|
|
272
279
|
this.renderer.domElement.style.opacity = "0";
|
|
273
280
|
}
|
|
274
281
|
|
|
@@ -287,7 +294,7 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
287
294
|
//判断尺寸发生改变时重置尺寸
|
|
288
295
|
const parentNode = this.renderer.domElement.parentNode as HTMLDivElement;
|
|
289
296
|
if (parentNode.clientWidth !== this.size.x || parentNode.clientHeight !== this.size.y) {
|
|
290
|
-
this.
|
|
297
|
+
this.setSize(parentNode.clientWidth, parentNode.clientHeight);
|
|
291
298
|
}
|
|
292
299
|
|
|
293
300
|
// 分发鼠标事件
|
|
@@ -107,6 +107,8 @@ export default class ThreeMouse {
|
|
|
107
107
|
// 拾取模型
|
|
108
108
|
let intersection = this._getSelected(meshs);
|
|
109
109
|
if (intersection) {
|
|
110
|
+
const { face, object } = intersection;
|
|
111
|
+
face && face.normal.applyMatrix4(object.matrixWorld);
|
|
110
112
|
const MouseEvent = Object.assign(intersection, {
|
|
111
113
|
renderer: this._renderer,
|
|
112
114
|
camera: this._camera,
|
|
@@ -151,7 +151,8 @@ export default class ThreeMouse {
|
|
|
151
151
|
let intersection = this._getSelected(meshs);
|
|
152
152
|
|
|
153
153
|
if (intersection) {
|
|
154
|
-
|
|
154
|
+
const { face, object } = intersection;
|
|
155
|
+
face && face.normal.applyMatrix4(object.matrixWorld);
|
|
155
156
|
const MouseEvent: ThreeMouseEvent = Object.assign(intersection, { // 将来可能用到的对象
|
|
156
157
|
renderer: this._renderer,
|
|
157
158
|
camera: this._camera,
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./ThreeBase";
|
package/index.js
CHANGED
|
@@ -1,38 +1,2 @@
|
|
|
1
1
|
// 基类
|
|
2
|
-
export { default } from "./
|
|
3
|
-
// 事件对象
|
|
4
|
-
export { default as EventMesh } from "./lib/EventMesh";
|
|
5
|
-
// 挤出模型
|
|
6
|
-
export { default as ExtrudeMesh } from "./lib/ExtrudeMesh";
|
|
7
|
-
// 关键帧动画对象
|
|
8
|
-
export { default as KeyFrameAnimation } from "./lib/KeyFrameAnimation";
|
|
9
|
-
//实例模型组对象
|
|
10
|
-
export { default as InstancedGroupMesh } from "./lib/InstancedGroupMesh";
|
|
11
|
-
//点光源
|
|
12
|
-
export { default as PointLight } from "./lib/PointLight/PointLight";
|
|
13
|
-
//天空球
|
|
14
|
-
export { default as Sky } from "./lib/Sky/Sky";
|
|
15
|
-
//键盘控制器
|
|
16
|
-
export { default as keyContorls } from "./lib/keyContorls";
|
|
17
|
-
// 动画过度对象
|
|
18
|
-
export { default as Transition } from "./lib/Transition";
|
|
19
|
-
// 公共方法
|
|
20
|
-
export { default as threeUtils } from "./lib/threeUtils";
|
|
21
|
-
// 加载器
|
|
22
|
-
export { default as threeLoader } from "./lib/threeLoader";
|
|
23
|
-
// 第一人称控制器
|
|
24
|
-
export { default as FPScontrol } from "./lib/FPScontrol";
|
|
25
|
-
// 平面文字
|
|
26
|
-
export { default as PlaneText } from "./lib/PlaneText";
|
|
27
|
-
// 精灵文字
|
|
28
|
-
export { default as SpriteText } from "./lib/SpriteText";
|
|
29
|
-
// 精灵文字样式2
|
|
30
|
-
export { default as SpriteText2 } from "./lib/SpriteText2";
|
|
31
|
-
//精灵文本框
|
|
32
|
-
export { default as SpriteModal1 } from "./lib/spriteModal1/SpriteModal1";
|
|
33
|
-
//平面文本框
|
|
34
|
-
export { default as PlaneModal1 } from "./lib/planeModal1/PlaneModal1";
|
|
35
|
-
// 3D文字
|
|
36
|
-
export { default as Text3D } from "./lib/Text3D/Text3D";
|
|
37
|
-
// html面板
|
|
38
|
-
export { default as PlaneWithHtml } from "./lib/PlaneWithHtml";
|
|
2
|
+
export { default } from "./ThreeBase";
|