threejs 三维物体(Object3D)

这是Three.js中大部分对象的基类,提供了一系列的属性和方法来对三维空间中的物体进行操纵。
请注意,可以通过.add( object )方法来将对象进行组合,该方法将对象添加为子对象,但为此最好使用Group(来作为父对象)。

构造器

Object3D()

构造器中不带有参数。

属性

.animations : AnimationClip

Array with object's animation clips.

.castShadow : Boolean

对象是否被渲染到阴影贴图中。默认值为false

.children : Object3D

含有对象的子级的数组。请参阅Group来了解将手动对象进行分组的相关信息。

.customDepthMaterial : Material

渲染到深度贴图时此材质要使用的自定义深度材质。 当使用DirectionalLight或SpotLight进行阴影投射时,如果您正在(a)修改顶点着色器中的顶点位置, (b)使用位移贴图,(c)alphaTest中使用alpha贴图,或(d)alphaTest中使用透明纹理, 您必须指定customDepthMaterial以得到合适的阴影。默认值undefined

.customDistanceMaterial : Material

与customDepthMaterial相同,但与PointLight一起使用。默认值为undefined

.frustumCulled : Boolean

When this is set, it checks every frame if the object is in the frustum of the camera before rendering the object. If set to `false` the object gets rendered every frame even if it is not in the frustum of the camera. Default is `true`.

.id : Integer

只读 —— 表示该对象实例ID的唯一数字。

.layers : Layers

物体的层级关系。 物体只有和一个正在使用的Camera至少在同一个层时才可见。This property can also be used to filter out unwanted objects in ray-intersection tests when using Raycaster.

.matrix : Matrix4

局部变换矩阵。

.matrixAutoUpdate : Boolean

当这个属性设置了之后,它将计算每一帧的位移、旋转(四元变换)和缩放矩阵,并重新计算matrixWorld属性。默认值是Object3D.DefaultMatrixAutoUpdate (true)。

.matrixWorld : Matrix4

物体的世界变换。若这个Object3D没有父级,则它将和local transform .matrix(局部变换矩阵)相同。

.matrixWorldNeedsUpdate : Boolean

当这个属性设置了之后,它将计算在那一帧中的matrixWorld,并将这个值重置为false。默认值为false

.modelViewMatrix : Matrix4

这个值传递给着色器,用于计算物体的位置。

.name : String

对象的名称,可选、不必唯一。默认值是一个空字符串。

.normalMatrix : Matrix3

这个值传递给着色器,用于计算物体的光照。 它是物体的modelViewMatrix矩阵中,左上角3x3子矩阵的逆的转置矩阵。

使用这个特殊矩阵的原因,是只需使用modelViewMatrix就可以得出一个法线(缩放时)的非单位长度或者非垂直的方向(不规则缩放时)。

另一方面,modelViewMatrix矩阵中的位移部分和法线的计算无关,因此Matrix3就已经足够了。

.onAfterRender : Function

一个可选的回调函数,在Object3D渲染之后直接执行。 使用以下参数来调用此函数:renderer,scene,camera,geometry,material,group。

Please notice that this callback is only executed for renderable 3D objects. Meaning 3D objects which define their visual appearance with geometries and materials like instances of Mesh, Line, Points or Sprite. Instances of Object3D, Group or Bone are not renderable and thus this callback is not executed for such objects.

.onBeforeRender : Function

一个可选的回调函数,在Object3D渲染之前直接执行。 使用以下参数来调用此函数:renderer,scene,camera,geometry,material,group。

Please notice that this callback is only executed for renderable 3D objects. Meaning 3D objects which define their visual appearance with geometries and materials like instances of Mesh, Line, Points or Sprite. Instances of Object3D, Group or Bone are not renderable and thus this callback is not executed for such objects.

.parent : Object3D

在scene graph(场景图)中,一个对象的父级对象。 一个对象最多仅能有一个父级对象。

.position : Vector3

表示对象局部位置的Vector3。默认值为(0, 0, 0)。

.quaternion : Quaternion

表示对象局部旋转的Quaternion(四元数)。

.receiveShadow : Boolean

材质是否接收阴影。默认值为false

.renderOrder : Number

这个值将使得scene graph(场景图)中默认的的渲染顺序被覆盖, 即使不透明对象和透明对象保持独立顺序。 渲染顺序是由低到高来排序的,默认值为0

.rotation : Euler

物体的局部旋转,以弧度来表示。(请参阅Euler angles-欧拉角)

.scale : Vector3

物体的局部缩放。默认值是Vector3( 1, 1, 1 )。

.up : Vector3

这个属性由lookAt方法所使用,例如,来决定结果的朝向。 默认值是Object3D.DefaultUp,即( 0, 1, 0 )。

.userData : Object

一个用于存储Object3D自定义数据的对象。 它不应当包含对函数的引用,因为这些函数将不会被克隆。

.uuid : String

该对象实例的UUID。 这是一个自动生成的值,不应当对其进行修改。

.visible : Boolean

可见性。这个值为true时,物体将被渲染。默认值为true

静态属性

静态属性和方法由每个类所定义,并非由每个类的实例所定义。 也就是说,改变Object3D.DefaultUp或Object3D.DefaultMatrixAutoUpdate的值, 将改变每个在此之后由Object3D类(或派生类)创建的实例中的up和matrixAutoUpdate的值。(已经创建好的Object3D不会受到影响)。

.DefaultUp : Vector3

默认的物体的up方向,同时也作为DirectionalLight、HemisphereLight和Spotlight(自顶向下创建的灯光)的默认方向。 默认设为( 0, 1, 0 )。

.DefaultMatrixAutoUpdate : Boolean

matrixAutoUpdate的默认设置,用于新创建的Object3D。

方法

EventDispatcher 方法在这个类上是可用的。

.add ( object : Object3D, ... ) : null

添加对象到这个对象的子级,可以添加任意数量的对象。 当前传入的对象中的父级将在这里被移除,因为一个对象仅能有一个父级。

请参阅Group来查看手动编组对象的相关信息。

.applyMatrix4 ( matrix : Matrix4 ) : null

对当前物体应用这个变换矩阵,并更新物体的位置、旋转和缩放。

.applyQuaternion ( quaternion : Quaternion ) : Object3D

对当前物体应用由四元数所表示的变换。

.attach ( object : Object3D ) : this

object作为子级来添加到该对象中,同时保持该object的世界变换。

.clone ( recursive : Boolean ) : Object3D

recursive —— 如果值为true,则该物体的后代也会被克隆。默认值为true。

返回对象前物体的克隆(以及可选的所有后代)。

.copy ( object : Object3D, recursive : Boolean ) : this

recursive —— 如果值为true,则该物体的后代也会被复制。默认值为true。

复制给定的对象到这个对象中。 请注意,事件监听器和用户定义的回调函数(.onAfterRender 和 .onBeforeRender)不会被复制。

.getObjectById ( id : Integer ) : Object3D

id —— 标识该对象实例的唯一数字。

从该对象开始,搜索一个对象及其子级,返回第一个带有匹配id的子对象。
请注意,id是按照时间顺序来分配的:1、2、3、……,每增加一个新的对象就自增1。

.getObjectByName ( name : String ) : Object3D

name —— 用于来匹配子物体中Object3D.name属性的字符串。

从该对象开始,搜索一个对象及其子级,返回第一个带有匹配name的子对象。
请注意,大多数的对象中name默认是一个空字符串,要使用这个方法,你将需要手动地设置name属性。

.getObjectByProperty ( name : String, value : Any ) : Object3D

name —— 将要用于查找的属性的名称。
value —— 给定的属性的值。

从该对象开始,搜索一个对象及其子级,返回第一个给定的属性中包含有匹配的值的子对象。

.getWorldPosition ( target : Vector3 ) : Vector3

target — 结果将被复制到这个Vector3中。

返回一个表示该物体在世界空间中位置的矢量。

.getWorldQuaternion ( target : Quaternion ) : Quaternion

target — 结果将被复制到这个Quaternion中。

返回一个表示该物体在世界空间中旋转的四元数。

.getWorldScale ( target : Vector3 ) : Vector3

target — 结果将被复制到这个Vector3中。

返回一个包含着该物体在世界空间中各个轴向上所应用的缩放因数的矢量。

.getWorldDirection ( target : Vector3 ) : Vector3

target — 结果将被复制到这个Vector3中。

返回一个表示该物体在世界空间中Z轴正方向的矢量。

.localToWorld ( vector : Vector3 ) : Vector3

vector - 一个表示在该物体局部空间中位置的向量。

将该向量从物体的局部空间转换到世界空间。

.lookAt ( vector : Vector3 ) : null
.lookAt ( x : Float, y : Float, z : Float ) : null

vector - 一个表示世界空间中位置的向量。

也可以使用世界空间中x、y和z的位置分量。

旋转物体使其在世界空间中面朝一个点。

这一方法不支持其父级被旋转过或者被位移过的物体。

.raycast ( raycaster : Raycaster, intersects : Array ) : Array

抽象(空方法),在一条被投射出的射线与这个物体之间获得交点。 在一些子类,例如Mesh, Line, and Points实现了这个方法,以用于光线投射。

.remove ( object : Object3D, ... ) : null

从当前对象的子级中移除对象。可以移除任意数量的对象。

.removeFromParent () : this

Removes this object from its current parent.

.rotateOnAxis ( axis : Vector3, angle : Float ) : this

axis —— 一个在局部空间中的标准化向量。
angle —— 角度,以弧度来表示。

在局部空间中绕着该物体的轴来旋转一个物体,假设这个轴已被标准化。

.rotateOnWorldAxis ( axis : Vector3, angle : Float ) : this

axis -- 一个在世界空间中的标准化向量。
angle -- 角度,以弧度来表示。

在世界空间中绕着该物体的轴来旋转一个物体,假设这个轴已被标准化。 方法假设该物体没有旋转过的父级。

.rotateX ( rad : Float ) : this

rad - 将要旋转的角度(以弧度来表示)。

绕局部空间的X轴旋转这个物体。

.rotateY ( rad : Float ) : this

rad - 将要旋转的角度(以弧度来表示)。

绕局部空间的Y轴旋转这个物体。

.rotateZ ( rad : Float ) : this

rad - 将要旋转的角度(以弧度来表示)。

绕局部空间的Z轴旋转这个物体。

.setRotationFromAxisAngle ( axis : Vector3, angle : Float ) : null

axis -- 一个在局部空间中的标准化向量。
angle -- 角度(以弧度来表示)。

调用.quaternion中的setFromAxisAngle( axis, angle )。

.setRotationFromEuler ( euler : Euler ) : null

euler -- 指定了旋转量的欧拉角。
调用.quaternion中的setRotationFromEuler( euler)。

.setRotationFromMatrix ( m : Matrix4 ) : null

m -- 通过该矩阵中的旋转分量来旋转四元数。
调用.quaternion中的setFromRotationMatrix( m)。

请注意,这里假设m上的3x3矩阵是一个纯旋转矩阵(即未缩放的矩阵)。

.setRotationFromQuaternion ( q : Quaternion ) : null

q -- 标准化的四元数。

将所给的四元数复制到.quaternion中。

.toJSON ( meta : Object ) : Object

meta -- 包含有元数据的对象,例如该对象的材质、纹理或图片。 将对象转换为 three.js JSON Object/Scene format(three.js JSON 物体/场景格式)。

.translateOnAxis ( axis : Vector3, distance : Float ) : this

axis -- 一个在局部空间中的标准化向量。
distance -- 将要平移的距离。

在局部空间中沿着一条轴来平移物体,假设轴已被标准化。

.translateX ( distance : Float ) : this

沿着X轴将平移distance个单位。

.translateY ( distance : Float ) : this

沿着Y轴将平移distance个单位。

.translateZ ( distance : Float ) : this

沿着Z轴将平移distance个单位。

.traverse ( callback : Function ) : null

callback - 以一个object3D对象作为第一个参数的函数。

在对象以及后代中执行的回调函数。

.traverseVisible ( callback : Function ) : null

callback - 以一个object3D对象作为第一个参数的函数。

类似traverse函数,但在这里,回调函数仅对可见的对象执行,不可见对象的后代将不遍历。

.traverseAncestors ( callback : Function ) : null

callback - 以一个object3D对象作为第一个参数的函数。

在所有的祖先中执行回调函数。

.updateMatrix () : null

更新局部变换。

.updateMatrixWorld ( force : Boolean ) : null

更新物体及其后代的全局变换。

.updateWorldMatrix ( updateParents : Boolean, updateChildren : Boolean ) : null

updateParents - recursively updates global transform of ancestors.
updateChildren - recursively updates global transform of descendants.

Updates the global transform of the object.

.worldToLocal ( vector : Vector3 ) : Vector3

vector - 一个表示在世界空间中位置的向量。

将该向量从世界空间转换到物体的局部空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/55800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32-HAL库 - MAX30102心率血氧传感器 —— 2024.10.15

一、教程简介 本教程使用CubeMX配合Keil5编写代码,带你10分钟拿下MAX30102。在官方例程的基础上进行移植和封装,测量数据准确。采用模拟I2C,任意三个引脚均可驱动。 二、MAX30102简介 MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器…

Spark 基础概念

Apache Spark 是一个快速、分布式的计算系统,用于大规模数据处理和分析。它提供了一个高级 API,用于编写并行处理的任务,可以在大规模集群上运行。 Spark 的基本概念包括以下几个方面: Resilient Distributed Datasets (RDDs)&a…

Tortoise SVN 安装汉化教程(乌龟SVN)

1.首先下载 去官网下载 如果下载比较慢的,链接自取 https://pan.quark.cn/s/cb6f2eee3f90 2. 安装Tortoise SVN 无脑next到完成 最后到桌面右键 你就发现svn出来了,但是是英文的!!!! 像我这种英文不好的…

流体力学笔记

目录 1、名词2、湍流与涡流3 涡激振动4 压力面与吸力面参考:[空气动力学的“他山之石”](https://zhuanlan.zhihu.com/p/412542513) 1、名词 转列:transition 涡脱落:vortex shedding 涡分离:vortex rupture 气动噪声&#xff1a…

【java Web如何开发?】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

【Mysql】MVCC原理说明

MySQL 的 InnoDB 存储引擎使用多版本并发控制(Multiversion Concurrency Control, MVCC)来提高数据库的并发性能,同时保持事务的隔离性。MVCC 通过为每个事务提供一个数据的一致性视图来实现这一点,而不需要在读取时加锁。以下是 …

rel,npt时间服务器

服务器端配置 配置文件/etc/chrony.conf 开放端口 查看123端口是否开放 关闭防火墙 客户端配置 配置文件/etc/chrony.conf 重启文件和查看是否成功 注意事项要在ping通下实现,要是能ping通配置好了还是不行可以查看防火墙是否关闭

EMCMO--多任务优化求解约束多目标问题

EMCMO–多任务优化求解约束多目标问题 title: An Evolutionary Multitasking Optimization Framework for Constrained Multi-objective Optimization Problems author: Kangjia Qiao, Kunjie Yu, BoyangQu, Jing Liang, Hui Song, and Caitong Yue. …

Spring Cloud LoadBalancer

什么是负载均衡? 如果一个服务对应多个实例,我们需要把流量合理的分配给多个实例;当服务流量增⼤时, 通常会采⽤增加机器的⽅式进⾏扩容, 负载均衡就是⽤来在多个机器或者其他资源,中, 按照⼀定的规则合理分配负载. 服务端负载…

java-collection集合整理0.9.4

java-集合整理0.9.0 基本结构基本概念实例化举例遍历获取指定值 2024年10月17日09:43:16–0.9.0 2024年10月18日11:00:59—0.9.4 基本结构 Collection 是最顶级的接口。分为 List 和 Set 两大类。List 分为:ArrayList、LinkedList、Vector。Set 分为:Ha…

Redis7 数据类型

Redis7 数据类型 文章目录 Redis7 数据类型1. Redis键(Key)2. Redis字符串(String)3. Redis列表(List)4. Redis哈希表(Hash)5. Redis集合(Set)5.1 常用操作5.…

docker 微服务实践

Docker 是一个容器工具,提供虚拟环境。站在 Docker 的角度,软件就是容器的组合:业务逻辑容器、数据库容器、储存容器、队列容器…Docker 使得软件可以拆分成若干个标准化容器,然后像搭积木一样组合起来。微服务(micros…

Atlas800昇腾服务器(型号:3000)—驱动与固件安装(一)

服务器配置如下: CPU/NPU:鲲鹏 CPU(ARM64)A300I pro推理卡 系统:Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本: Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-…

《环境感知:开启智能生活新视角》

《环境感知:开启智能生活新视角》 一、环境感知的定义与作用二、环境感知的技术与方法(一)传感器技术(二)数据融合技术(三)机器学习与深度学习技术 三、环境感知在不同领域的应用(一…

Vue3学习:vite项目中图片不能显示,报错 require is not defined

今天做了一个案例“给你喜欢的人送花”,如果喜欢谁,就给谁送花,最多可以送5朵。运行效果如下。 这个项目是使用 npm create vitelatest 命令创建的。 包括2个组件: 根组件App.vue子组件HelloVote.vue。 目录结构如图所示&#x…

秋招面试题记录_半结构化面试

c八股(可能问的多一点) 1.简单说说C11语法特性 答: 1.auto以及decltype自动类型推导,避免手动声明复杂类型,减少冗长代码提升了可读性和安全性。 2.智能指针 自动释放内存 (具体说说) 有shared和unique 差异主要体现在所有权、内存开销、…

Java项目-基于springboot框架的校园在线拍卖系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…

Java的walkFileTree方法用法【FileVisitor接口】

在Java旧版本中遍历文件系统只能通过File类通过递归来实现,但是这种方法不仅消耗资源大而且效率低。 NIO.2的Files工具类提供了两个静态工具方法walk()和walkFileTree()可用来高效并优雅地遍历文件系统。walkFileTree()功能更强,可自定义实现更多功能&am…

Git中Update和Pull的区别

在本文中,我们将介绍Git中的两个操作——”Update”和”Pull”,并解释它们之间的区别。 1、“Update”的含义和用法 “Update”是Git中用于更新本地仓库和工作区的操作。它的作用是将远程仓库中的最新变更同步到本地。当我们执行”Update”操作时&…

(二十)、从宿主机访问 k8s(minikube) 发布的 redis 服务

文章目录 1、环境准备2、具体操作2.1、启动 minikube (start/stop)2.2、准备 redis-deployment.yaml2.3、执行 redis-deployment.yaml2.3.1、查看 pod 信息和日志 2.4、检查部署和服务状态2.4.1、如果需要删除 3、查看 IP 的几个命令3.1、查看IP的几个命令3.2、解读3.3、宿主机…