Threejs——Helper

Threejs——Helper

引言

在使用threejs的过程中,发现threejs内置了很多helper类,让我们可以通过几行代码来实现一些很常用的功能,简单方便使用。

下面就简单介绍一下threejs中内置的helper类。

箭头(ArrowHelper)

简介

箭头Helper,用于模拟方向的一个3D箭头对象。

官方文档:ArrowHelper – three.js docs (threejs.org)

参数

参数介绍
dir基于箭头原点的方向. 必须为单位向量.
origin箭头的原点
length箭头的长度. 默认为 1.
hex定义的16进制颜色值. 默认为 0xffff00.
headLength箭头头部(锥体)的长度. 默认为箭头长度的0.2倍(0.2 * length).
headWidth箭头头部(锥体)的宽度. 默认为箭头头部长度的0.2倍(0.2 * headLength).

效果图

在这里插入图片描述

坐标轴(AxesHelper)

简介

用于简单模拟3个坐标轴的对象.
红色代表 X 轴. 绿色代表 Y 轴. 蓝色代表 Z 轴.

官方文档:AxesHelper – three.js docs (threejs.org)

参数

参数介绍
size(可选的) 表示代表轴的线段长度. 默认为 1.

效果图

在这里插入图片描述

包围盒(BoxHelper)

简介

用于图形化地展示对象世界轴心对齐的包围盒的辅助对象。注意:

  • 要想能正常运行,目标对象必须包含 BufferGeometry , 所以当目标对象是精灵 Sprites 时将不能正常运行.
  • 此包围盒包含对象的所有子对象。

官方文档:BoxHelper – three.js docs (threejs.org)

参数

参数介绍
object(可选的) 被展示世界轴心对齐的包围盒的对象.
color(可选的) 线框盒子的16进制颜色值. 默认为 0xffff00.

效果图

在这里插入图片描述

包围盒3(Box3Helper)

简介

模拟3维包围盒 Box3 的辅助对象.

官方文档:Box3Helper – three.js docs (threejs.org)

参数

参数介绍
box被模拟的3维包围盒.
color(可选的) 线框盒子的颜色. 默认为 0xffff00.

效果图

效果同BoxHelper

摄像机(CameraHelper)

简介

用于模拟相机视锥体的辅助对象.
它使用 LineSegments 来模拟相机视锥体.

官方文档:CameraHelper – three.js docs (threejs.org)

参数

参数介绍
camera被模拟的相机.

效果图

在这里插入图片描述

平行光(DirectionalLightHelper)

简介

用于模拟场景中平行光 DirectionalLight 的辅助对象. 其中包含了表示光位置的平面和表示光方向的线段.

官方文档:DirectionalLightHelper – three.js docs (threejs.org)

参数

参数介绍
light被模拟的光源.
size(可选的) 平面的尺寸. 默认为 1.
color(可选的) 如果没有设置颜色将使用光源的颜色.

效果图

在这里插入图片描述

网格(GridHelper)

简介

坐标格辅助对象. 坐标格实际上是2维线数组.

官方文档:GridHelper – three.js docs (threejs.org)

参数

参数介绍
size坐标格尺寸. 默认为 10.
divisions坐标格细分次数. 默认为 10.
colorCenterLine中线颜色. 值可以为 Color 类型, 16进制 和 CSS 颜色名. 默认为 0x444444
colorGrid中线颜色. 值可以为 Color 类型, 16进制 和 CSS 颜色名. 默认为 0x444444

效果图

在这里插入图片描述

极坐标格(PolarGridHelper)

简介

极坐标格辅助对象. 坐标格实际上是2维线数组.

官方文档:PolarGridHelper – three.js docs (threejs.org)

参数

参数介绍
radius极坐标格半径. 可以为任何正数. 默认为 10.
sectors网格将划分为的扇区数。这可以是任何正整数。默认值为16。
rings环的数量。这可以是任何正整数。默认值为8。
divisions圆圈细分段数. 可以为任何大于或等于3的正整数. 默认为 64.
color1极坐标格使用的第一个颜色. 值可以为 Color 类型, 16进制 和 CSS 颜色名. 默认为 0x444444
color2极坐标格使用的第二个颜色. 值可以为 Color 类型, 16进制 和 CSS 颜色名. 默认为 0x888888

效果图

在这里插入图片描述

半球形光源(HemisphereLightHelper)

简介

创建一个虚拟的球形网格 Mesh 的辅助对象来模拟 半球形光源 HemisphereLight.

官方文档:HemisphereLightHelper – three.js docs (threejs.org)

参数

参数介绍
light被模拟的光源.
sphereSize用于模拟光源的网格尺寸.
color(可选的) 如果没有赋值辅助对象将使用光源的颜色.

效果图

在这里插入图片描述

平面(PlaneHelper)

简介

用于模拟平面 Plane 的辅助对象.

官方文档:PlaneHelper – three.js docs (threejs.org)

参数

参数介绍
plane被模拟的平面.
size(可选的) 辅助对象的单边长度. 默认为 1.
hex(可选的) 辅助对象的颜色. 默认为 0xffff00.

效果图

在这里插入图片描述

点光源(PointLightHelper)

简介

创建一个虚拟的球形网格 Mesh 的辅助对象来模拟 点光源 PointLight.

官方文档:PointLightHelper – three.js docs (threejs.org)

参数

参数介绍
light要模拟的光源.
sphereSize(可选的) 球形辅助对象的尺寸. 默认为 1.
color(可选的) 如果没有赋值辅助对象将使用光源的颜色.

效果图

在这里插入图片描述

骨骼(SkeletonHelper)

简介

用来模拟骨骼 Skeleton 的辅助对象. 该辅助对象使用 LineBasicMaterial 材质.

官方文档:SkeletonHelper – three.js docs (threejs.org)

参数

参数介绍
object通常是SkinnedMesh的实例。但是,如果Object3D的任何实例表示骨骼的层次结构(通过Object3D.childs),则可以使用该实例。

效果图

在这里插入图片描述

聚光灯(SpotLightHelper)

简介

用于模拟聚光灯 SpotLight 的锥形辅助对象.

官方文档:https://threejs.org/docs/api/zh/helpers/SpotLightHelper.html

参数

参数介绍
light被模拟的聚光灯 SpotLight .
color(可选的) 如果没有赋值辅助对象将使用光源的颜色.

效果图

在这里插入图片描述

尾语:

本人是一个初学threejs的,写的不对的地方欢迎各位大佬批评指正。

要在Vue中使用Three.js,并显示辅助线,可以按照以下步骤进行操作: 1. 安装Three.js和vue-threejs库 ``` npm install three vue-threejs --save ``` 2. 在Vue组件中导入Three.js和vue-threejs库 ```javascript import Vue from 'vue' import * as THREE from 'three' import { ThreeBSP } from 'three-js-csg-es6' import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' import { DragControls } from 'three/examples/jsm/controls/DragControls.js' import { TransformControls } from 'three/examples/jsm/controls/TransformControls.js' import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js' import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js' import { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader.js' import { VueThreejs } from 'vue-threejs' ``` 3. 在Vue组件中使用VueThreejs组件,并添加辅助线 ```html <template> <vue-threejs :renderer="renderer" :camera="camera" :scene="scene" :width="width" :height="height" :clearColor="0xffffff"> <template slot-scope="{ renderer, camera, scene, width, height }"> <OrbitControls :camera="camera" :renderer="renderer" :enableDamping="true" /> <axes-helper :size="100" /> <grid-helper :size="100" :divisions="10" /> <!-- Your 3D objects here --> </template> </vue-threejs> </template> ``` 4. 运行Vue应用,即可看到带有辅助线的Three.js场景 ```javascript new Vue({ el: '#app', components: { VueThreejs }, data() { return { width: window.innerWidth, height: window.innerHeight, renderer: null, camera: null, scene: null } }, mounted() { this.init() }, methods: { init() { this.renderer = new THREE.WebGLRenderer({ antialias: true }) this.renderer.setSize(this.width, this.height) document.body.appendChild(this.renderer.domElement) this.camera = new THREE.PerspectiveCamera(75, this.width / this.height, 0.1, 1000) this.camera.position.z = 10 this.scene = new THREE.Scene() } } }) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡定九号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值