Threejs r165文档梳理
- [Three.js 核心类与几何体类](#Three.js 核心类与几何体类)
- [Three.js 材质类与光照类](#Three.js 材质类与光照类)
- [Three.js 网格类与纹理类](#Three.js 网格类与纹理类)
- [Three.js 动画类与加载器类](#Three.js 动画类与加载器类)
- [Three.js 控件类与辅助工具类](#Three.js 控件类与辅助工具类)
Three.js 核心类与几何体类
核心类 (Core Classes)
-
THREE.Object3D
- 用途: 所有 3D 对象的基类,提供了位置、旋转、缩放和层级关系的支持。
- 子类:
THREE.Mesh
: 表示可渲染的 3D 对象,由几何体和材质组成。THREE.InstancedMesh
: 用于渲染多个相同的几何体实例,提高渲染性能。THREE.SkinnedMesh
: 用于骨骼动画的网格。
THREE.Line
: 用于绘制线条。THREE.LineSegments
: 绘制一系列不连续的线段。
THREE.Points
: 用于绘制点云。THREE.Sprite
: 用于显示 2D 精灵图像。THREE.Group
: 用于组织多个 3D 对象,便于管理和操作。THREE.Scene
: 场景类,所有对象的容器。
-
THREE.Scene
- 用途: 表示一个 3D 场景,包含了所有可见对象和光源。
- 子类:
THREE.Fog
(线性雾效果),THREE.FogExp2
(指数雾效果)
-
THREE.Camera
- 用途: 表示观察场景的视角,决定了如何将 3D 场景转换为 2D 图像。
- 子类:
THREE.PerspectiveCamera
: 透视投影相机,模拟人眼的视觉效果。THREE.OrthographicCamera
: 正交投影相机,不考虑透视效果,适用于 2D 场景或 CAD 等应用。THREE.ArrayCamera
: 多视角相机,适用于 VR 等应用。THREE.CubeCamera
: 用于生成环境贴图的相机。
-
THREE.Renderer
- 用途: 渲染器,用于将场景绘制到画布上。
- 基类:
THREE.WebGLRenderer
(主要渲染器,使用 WebGL 技术)
几何体类 (Geometry Classes)
THREE.BufferGeometry
- 用途: 现代几何体类,使用缓冲区存储顶点数据,效率更高。
- 子类:
THREE.BoxGeometry
: 立方体几何体。THREE.CircleGeometry
: 圆形几何体。THREE.ConeGeometry
: 圆锥几何体。THREE.CylinderGeometry
: 圆柱几何体。THREE.DodecahedronGeometry
: 十二面体几何体。THREE.ExtrudeGeometry
: 挤出几何体,通过将 2D 形状挤出为 3D 对象。THREE.IcosahedronGeometry
: 二十面体几何体。THREE.LatheGeometry
: 车削几何体,通过旋转 2D 形状生成 3D 对象。THREE.OctahedronGeometry
: 八面体几何体。THREE.ParametricGeometry
: 参数化几何体,通过函数生成几何体。THREE.PlaneGeometry
: 平面几何体。THREE.PolyhedronGeometry
: 多面体几何体。THREE.RingGeometry
: 环形几何体。THREE.ShapeGeometry
: 形状几何体,通过 2D 形状生成 3D 对象。THREE.SphereGeometry
: 球体几何体。THREE.TetrahedronGeometry
: 四面体几何体。THREE.TorusGeometry
: 圆环几何体。THREE.TorusKnotGeometry
: 圆环结几何体。THREE.TubeGeometry
: 管道几何体,通过 3D 曲线生成管状物体。THREE.WireframeGeometry
: 线框几何体,显示几何体的线框结构。
- 旧版类:
THREE.Geometry
(已弃用): 旧版几何体类,已经被BufferGeometry
取代。
Three.js 材质类与光照类
材质类 (Material Classes)
THREE.Material
- 用途: 材质基类,定义了物体的外观特性,如颜色、纹理等。
- 子类:
THREE.MeshBasicMaterial
: 基础材质,不受光照影响,适合简单的颜色和纹理。THREE.MeshLambertMaterial
: Lambert 材质,具有漫反射效果,适合基本的光照。THREE.MeshPhongMaterial
: Phong 材质,支持镜面高光和反射,适合较为复杂的光照效果。THREE.MeshStandardMaterial
: 标准材质,基于物理渲染 (PBR),适合真实感渲染。THREE.MeshPhysicalMaterial
: 物理材质,扩展了标准材质,支持透明度和折射率。THREE.MeshDepthMaterial
: 深度材质,用于绘制深度信息。THREE.MeshNormalMaterial
: 法线材质,用于显示法线方向。THREE.MeshToonMaterial
: 漫画材质,产生卡通效果的渲染。THREE.LineBasicMaterial
: 线条材质,用于绘制线条。THREE.LineDashedMaterial
: 虚线材质,用于绘制虚线。THREE.PointsMaterial
: 点材质,用于绘制点云。THREE.ShaderMaterial
: 着色器材质,允许自定义 GLSL 着色器代码。THREE.RawShaderMaterial
: 原始着色器材质,提供更底层的着色器编写支持。THREE.SpriteMaterial
: 精灵材质,用于 2D 精灵图像。
光照类 (Lighting Classes)
THREE.Light
- 用途: 光源基类,用于模拟场景中的光照效果。
- 子类:
THREE.AmbientLight
: 环境光,为整个场景提供全局的光照,不产生阴影。THREE.DirectionalLight
: 方向光,从特定方向照射的光,类似于太阳光,支持产生阴影。THREE.DirectionalLightShadow
: 方向光的阴影。
THREE.HemisphereLight
: 半球光,从上方和下方提供不同颜色的光源,模拟天空和地面的光照。THREE.PointLight
: 点光源,从一个点向所有方向发射光线,类似于灯泡,支持阴影。THREE.PointLightShadow
: 点光源的阴影。
THREE.RectAreaLight
: 矩形区域光,从矩形区域发射光线,适合模拟窗户等光源。THREE.SpotLight
: 聚光灯,从一个点发射锥形光束,适合模拟手电筒等光源,支持阴影。THREE.SpotLightShadow
: 聚光灯的阴影。
- 辅助类:
THREE.LightProbe
: 光探针,用于捕捉场景的环境光照信息,适合全局光照计算。
Three.js 网格类与纹理类
网格类 (Mesh Classes)
THREE.Mesh
- 用途: 网格类,用于表示可渲染的 3D 对象,由几何体和材质组成。
纹理类 (Texture Classes)
THREE.Texture
- 用途: 纹理基类,用于定义物体表面的图像或图案。
- 子类:
THREE.CanvasTexture
: 基于 HTML5 画布的纹理。THREE.CompressedTexture
: 压缩纹理,使用压缩格式存储,提高渲染性能。THREE.CubeTexture
: 立方纹理,用于环境贴图,生成反射和折射效果。THREE.DataTexture
: 数据纹理,从二进制数据生成的纹理。THREE.DataTexture2DArray
: 二维数组数据纹理,支持 3D 数据。THREE.DataTexture3D
: 三维数据纹理,用于体积数据。THREE.DepthTexture
: 深度纹理,用于存储深度信息。THREE.VideoTexture
: 视频纹理,从视频源生成的纹理,支持动态内容。
Three.js 动画类与加载器类
动画类 (Animation Classes)
THREE.AnimationMixer
- 用途: 动画混合器,用于控制和管理对象的动画。
- 子类:
THREE.AnimationAction
: 动画动作,表示单个动画片段的状态。THREE.AnimationClip
: 动画剪辑,表示一段动画序列。THREE.KeyframeTrack
: 关键帧轨道,定义了动画属性的变化。THREE.NumberKeyframeTrack
: 数值关键帧轨道,用于动画数值属性。THREE.StringKeyframeTrack
: 字符串关键帧轨道,用于动画字符串属性。THREE.VectorKeyframeTrack
: 向量关键帧轨道,用于动画向量属性。THREE.QuaternionKeyframeTrack
: 四元数关键帧轨道,用于动画旋转属性。THREE.ColorKeyframeTrack
: 颜色关键帧轨道,用于动画颜色属性。THREE.BooleanKeyframeTrack
: 布尔关键帧轨道,用于动画布尔属性。
加载器类 (Loader Classes)
THREE.Loader
- 用途: 加载器基类,用于加载各种资源,如模型、纹理、动画等。
- 子类:
THREE.AnimationLoader
: 加载动画数据。THREE.AudioLoader
: 加载音频文件。THREE.BufferGeometryLoader
: 加载缓冲几何体数据。THREE.Cache
: 缓存管理器,用于管理资源缓存。THREE.CompressedTextureLoader
: 加载压缩纹理。THREE.CubeTextureLoader
: 加载立方纹理。THREE.DataTextureLoader
: 加载数据纹理。THREE.FileLoader
: 加载任意文件。THREE.FontLoader
: 加载字体文件。THREE.ImageBitmapLoader
: 加载位图图像。THREE.ImageLoader
: 加载图像文件。THREE.MaterialLoader
: 加载材质数据。THREE.ObjectLoader
: 加载 3D 对象。THREE.TextureLoader
: 加载纹理图像。THREE.InstancedBufferGeometryLoader
: 加载实例化几何体数据。THREE.MaterialLoader
: 加载材质数据。
Three.js 控件类与辅助工具类
控件类 (Control Classes)
THREE.OrbitControls
- 用途: 控件类,用于在场景中围绕目标进行旋转、缩放和平移。
- 其他控件:
THREE.TrackballControls
: 提供自由旋转、平移和缩放的控件。THREE.FlyControls
: 提供自由飞行的控件,适用于飞行模拟。THREE.FirstPersonControls
: 第一人称视角控件,适用于角色控制。THREE.PointerLockControls
: 提供鼠标锁定和第一人称视角的控件。
辅助工具类 (Helper Classes)
THREE.AxesHelper
- 用途: 辅助工具,显示场景中的三轴线,便于调试。
THREE.GridHelper
- 用途: 辅助工具,在地面上显示网格,用于场景对齐。
THREE.PolarGridHelper
- 用途: 辅助工具,显示极坐标网格,用于极坐标系对齐。
THREE.BoxHelper
- 用途: 辅助工具,显示对象的包围盒。
THREE.Box3Helper
- 用途: 辅助工具,显示 3D 包围盒。
THREE.CameraHelper
- 用途: 辅助工具,显示相机的视锥体,便于调试视角。
THREE.DirectionalLightHelper
- 用途: 辅助工具,显示方向光的方向和位置。
THREE.HemisphereLightHelper
- 用途: 辅助工具,显示半球光的范围和影响。
THREE.PointLightHelper
- 用途: 辅助工具,显示点光源的位置和范围。
THREE.SkeletonHelper
- 用途: 辅助工具,显示骨骼系统的结构,便于调试骨骼动画。
THREE.SpotLightHelper
- 用途: 辅助工具,显示聚光灯的方向和范围。