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
    • 用途: 辅助工具,显示聚光灯的方向和范围。
相关推荐
冥界摄政王1 天前
CesiumJS学习第四章 替换指定3D建筑模型
3d·vue·html·webgl·js·cesium
温宇飞3 天前
高效的线性采样高斯模糊
javascript·webgl
冥界摄政王4 天前
Cesium学习第一章 安装下载 基于vue3引入Cesium项目开发
vue·vue3·html5·webgl·cesium
光影少年7 天前
三维前端需要会哪些东西
前端·webgl
nnsix7 天前
Unity WebGL jslib 通信时,传入字符串,变成数值 问题
webgl
二狗哈7 天前
Cesium快速入门34:3dTile高级样式设置
前端·javascript·算法·3d·webgl·cesium·地图可视化
AlanHou7 天前
Three.js:Web 最重要的 3D 渲染引擎的技术综述
前端·webgl·three.js
二狗哈8 天前
Cesium快速入门33:tile3d设置样式
3d·状态模式·webgl·cesium·地图可视化
Horizon3D9 天前
Cesium大气散射+全球体积云效果
webgl·可视化·cesium效果
EliseL9 天前
SuperMap iClient3D for WebGL如何加载iDesktopX 场景美化绘制资产
3d·webgl·三维