Threejs r165文档梳理

Threejs r165文档梳理

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
    • 用途: 辅助工具,显示聚光灯的方向和范围。
相关推荐
程序员_三木2 小时前
Three.js入门-Raycaster鼠标拾取详解与应用
开发语言·javascript·计算机外设·webgl·three.js
汪洪墩1 天前
【Mars3d】设置backgroundImage、map.scene.skyBox、backgroundImage来回切换
开发语言·javascript·python·ecmascript·webgl·cesium
m0_748234341 天前
webGL硬核知识:图形渲染管渲染流程,各个阶段对应的API调用方式
图形渲染·webgl
MossGrower2 天前
36. Three.js案例-创建带光照和阴影的球体与平面
3d图形·webgl·three.js·光照与阴影
MossGrower2 天前
34. Three.js案例-创建球体与模糊阴影
webgl·three.js·3d渲染·阴影效果
程序员_三木3 天前
Three.js资源-贴图材质网站推荐
javascript·webgl·three.js·材质·贴图
程序员_三木4 天前
React和Three.js结合-React Three Fiber
前端·javascript·react.js·前端框架·webgl·材质
MossGrower4 天前
37. Three.js案例-绘制部分球体
3d图形·webgl·three.js·球体几何体
3dconvet4 天前
3MF格式转换为STL格式
webgl·3mf转stl·3mf在线转换·3mf在线预览
3dconvet5 天前
NSDT 3DConvert:高效实现大模型文件在线预览与转换
webgl·nsdt 3dconvert·3d模型在线预览·大体量模型预览