ThingOrigin.js
    Preparing search index...

    Class ThingOrigin

    ThingOrigin 3D 场景引擎主类

    这是一个基于 Three.js 的 3D 场景管理引擎,提供了完整的 3D 场景创建、渲染、交互等功能。 包含相机控制、光照管理、模型加载、动画系统、物理引擎等核心模块。

    2.0

    // 创建场景实例
    const container = document.getElementById('scene-container');
    const scene = new ThingOrigin('TO', container);
    Index

    Methods - 方法

    • 清理纹理和材质缓存

      Returns void

      TO.clearCache(); // 清理所有缓存
      
    • 清理性能优化缓存

      Returns void

      TO.clearPerformanceCache(); // 清理性能缓存
      
    • 创建场景

      Parameters

      • sceneName: string

        场景名称

      • container: HTMLElement

        dom容器,用于渲染场景

      • OptionaluserSceneParam: ThingOriginParams

        场景参数,见(./public/data/sceneParams.ts)

      • OptionalonAllModelsLoaded: (thingOrigin: ThingOrigin) => void

      Returns Promise<void>

      let TO = ThingOrigin.createScene('sceneName',document.getElementById('domID'))
      
      Note

      容器必须有宽度和高度

    • 禁用性能监控

      Returns void

      TO.disablePerformanceMonitoring(); // 禁用性能监控
      
    • 销毁场景

      Returns void

      TO.dispose();
      
    • 启用性能监控

      Returns void

      TO.enablePerformanceMonitoring(); // 启用性能监控
      
    • 获取纹理和材质缓存统计信息

      Returns { materials: number; textures: number }

      缓存统计对象 {textures: number, materials: number}

      const stats = TO.getCacheStats();
      console.log(`纹理缓存: ${stats.textures}, 材质缓存: ${stats.materials}`);
    • 获取性能统计信息

      Returns {
          avgFrameTime: number;
          fps: number;
          maxFrameTime: number;
          minFrameTime: number;
      }

      性能统计对象

      const stats = TO.getPerformanceStats();
      console.log(`平均帧时间: ${stats.avgFrameTime}ms, FPS: ${stats.fps}`);
    • 标记相机需要更新投影矩阵

      Returns void

      TO.markCameraUpdate();
      
    • 场景重新适配窗口大小

      Returns void

      window.addEventListener('resize', TO.resize());
      
    • 更新渲染

      Parameters

      • currentTime: number = 0

      Returns void

      TO.update()
      

    Properties - 核心属性

    animate: TAnimate
    模块 功能
    动画 用于制作和控制模型动画的动画模块
    CAD: TCAD
    模块 说明
    CAD 处理CAD图纸及模型相关功能的CAD模块
    camera: TCamera
    模块 说明
    相机 管理场景相机和视图的相机模块
    controls: TControl
    模块 说明
    控制器 包含轨道控制器、拖拽控制器、射线控制器、变换控制器等的控制器模块
    csg: TCSG
    模块 功能
    CSG 基于 BVH 的布尔运算(差集/并集/交集等),用于切割、开洞等
    eDispatcher: TEventDispatcher
    模块 功能
    事件分发器 用于处理鼠标点击等交互事件的事件分发器
    effect: TEffect
    模块 功能
    效果 用于制作模型特效(如辉光、后处理等)的效果模块
    explode: TExplode
    模块 功能
    爆炸图 用于制作模型爆炸图效果的爆炸图模块
    exporters: TExporters
    模块 功能
    导出 用于导出场景和模型的导出模块
    font: TFont
    模块 说明
    文字 用于创建和渲染3D文字的文字模块
    generator: TGenerator
    模块 功能
    程序化生成 r185 城市/建筑/Loft 放样生成
    GUI: TGUI
    模块 说明
    图形用户界面控制器 参数实时调整界面
    helper: THelper
    模块 功能
    辅助器 提供坐标轴、网格、包围盒等辅助工具的辅助器模块
    indexedDB: TIndexedDB
    模块 功能
    本地缓存 用于缓存模型至浏览器IndexedDB的本地缓存模块
    light: TLight
    模块 功能
    光源管理 用于控制场景内光源的光源管理模块
    line: TLine
    模块 说明
    线条 用于创建线条和路径的线条模块
    machine: TMachine
    模块 功能
    成品机械 用于控制特定型号机器模型的机械模块
    marker: TMarker
    模块 功能
    标记 用于给模型添加标记和标签的标记模块
    material: TMaterial
    模块 功能
    材质 用于创建和管理材质的材质模块
    model: TModel
    模块 功能
    模型 用于创建和加载基础模型的模型模块
    physics: TPhysics
    模块 功能
    物理 用于处理物理世界和碰撞检测的物理模块
    physx: TPhysx
    模块 功能
    PhysX 用于处理PhysX物理世界的物理模块
    scene: TScene
    模块 功能
    场景 管理3D场景对象的场景模块
    snap: TSnap
    模块 说明
    吸附 用于处理模型间吸附功能的吸附模块
    tool: Tool
    模块 说明
    工具函数 提供常用的支撑创建及计算工具函数的工具函数模块
    webgpu: TWebGPU
    模块 功能
    WebGPU r185 WebGPU 特性:集群光照、TSL 后处理、体积火、物理雾等

    Properties - 普通属性

    container: HTMLElement
    属性 说明
    DOM容器 用于渲染3D场景的DOM容器元素,必须具有宽度和高度
    CSS2DRenderer: CSS2DRenderer
    属性 说明
    CSS2D渲染器 用于渲染HTML标签和UI元素的CSS2D渲染器
    mixer: AnimationMixer
    属性 说明
    动画混合器 用于控制和管理动画播放的动画混合器
    onAllModelsLoaded: (thingOrigin: ThingOrigin) => ThingOrigin
    属性 说明
    模型加载回调函数 当前场景的所有模型加载完成后的回调函数,接收 ThingOrigin 实例
    renderer: TRenderer
    属性 说明
    渲染器 负责3D场景渲染的渲染器实例
    属性 说明
    场景参数 用于描述整个场景的数据,包括相机、光照、控制器等配置
    sceneName: string
    属性 说明
    场景名称 当前场景名称,用于标识当前场景
    stats: Stats
    属性 说明
    性能监控器 用于显示渲染性能统计的性能监控器
    toUpdate: { material: any[] } = ...
    属性 说明
    需更新材质 需要手动更新的材质列表,在渲染循环中会更新这些材质的uniform值
    updateId: number
    属性 说明
    更新ID 动画帧请求ID,用于取消渲染循环