Threejs源码系列- renderer/webgl

WebGLCapabilities

用于检测和封装 WebGL 渲染上下文的各种能力与限制,为 three.js 的 WebGL 渲染器提供底层硬件和驱动的能力信息。

核心功能

  • 获取硬件限制参数
  • 纹理相关能力检测
  • 着色器精度管理
  • 扩展功能支持检测

主要应用场景

  • 为 three.js 渲染器提供硬件能力基准,辅助渲染策略决策
  • 确保渲染操作符合当前设备的硬件限制,避免执行不支持的操作
  • 自动适配不同性能的设备,例如在低性能 GPU 上降级精度设置

WebGLUtils

工具类,主要用于 three.js 的 WebGL 渲染器中,实现 three.js 内部格式与 WebGL 原生常量之间的映射转换,是连接高层 API 与底层 WebGL 接口的关键工具。

核心功能

  • 格式与类型转换
  • 压缩纹理扩展支持
  • WebGL 版本兼容

主要应用场景

  • 作为 WebGL 渲染器的内部工具,在纹理创建、帧缓冲配置等操作中提供格式转换支持
  • 简化上层代码对不同 WebGL 扩展和格式的处理,统一接口调用方式
  • 确保 three.js 使用的格式与当前设备支持的 WebGL 能力相匹配,避免执行不支持的渲染操作

WebGLState

渲染器的核心状态管理组件,负责封装和维护 WebGL 渲染上下文的各种状态,确保渲染操作的一致性和高效性。

核心功能

  • 缓冲区状态管理:颜色缓冲区(ColorBuffer)、深度缓冲区(DepthBuffer)、模板缓冲区(StencilBuffer)
  • 渲染状态控制:混合模式(Blending)、面剔除(Culling)、多边形偏移、线宽设置、模板测试
  • 资源绑定管理:纹理绑定、帧缓冲绑定、程序对象
  • 状态缓存与优化

主要应用场景

  • 作为 WebGL 渲染器的状态中枢,在渲染前根据材质(Material)属性自动配置 WebGL 状态
  • 确保连续渲染操作之间的状态一致性,避免状态污染
  • 优化渲染性能,减少冗余的 WebGL API 调用
  • 封装不同 WebGL 版本的差异(如线宽支持、扩展功能)

WebGLInfo

主要用于跟踪和管理 three.js WebGL 渲染器的各类渲染信息与资源使用情况,为性能监控和调试提供数据支持。

核心功能

  • 内存使用统计
  • 渲染性能数据跟踪
  • 状态重置机制
  • 程序信息关联

主要应用场景

  • 作为渲染器内部的性能监控工具,提供实时的渲染数据,辅助开发者优化场景性能
  • 在调试模式下,帮助定位渲染瓶颈(如过多的绘制调用、过量的三角形数量等)
  • 支持实例化渲染的统计,适应现代 WebGL 渲染特性
  • 为 three.js 的性能分析工具提供基础数据来源

WebGLProperties

主要用于 three.js 的 WebGL 渲染器中,为各类对象(如材质、几何体、纹理等)存储和管理与 WebGL 相关的私有属性,是连接 JavaScript 对象与底层 WebGL 资源的关键桥梁。

核心功能

  • 属性存储机制
  • 核心方法:has(object)、get(object)、remove(object)、update(object, key, value)、dispose()

主要应用场景

  • 存储 WebGL 资源句柄:如为纹理对象关联对应的 WebGL 纹理 ID,为着色器程序关联 WebGL 程序对象
  • 缓存渲染状态:记录对象的 WebGL 相关渲染状态(如已编译的着色器、绑定的缓冲区等),避免重复创建
  • 隔离上层 API 与底层实现:使 three.js 核心对象(如 Mesh、Material)无需包含 WebGL 特定属性,保持接口简洁

WebGLTextures

是 three.js WebGL 渲染器中负责纹理管理的核心模块,处理纹理的创建、上传、参数配置及资源释放等底层操作,是连接 three.js 纹理抽象与 WebGL 原生纹理 API 的关键桥梁。

核心功能

  • 纹理资源管理
  • 纹理参数配置
  • 纹理数据上传
  • 内部格式处理
  • 纹理单元管理
  • 特殊纹理支持

主要应用场景

  • 作为 WebGL 渲染器的纹理处理中枢,在材质渲染前完成纹理的上传与参数配置
  • 自动适配不同设备的 GPU 能力,处理纹理尺寸限制、格式支持等兼容性问题
  • 优化纹理资源使用,通过缓存和引用计数减少冗余的纹理创建与销毁操作
  • 支持 three.js 所有纹理类型(基础纹理、压缩纹理、深度纹理、渲染目标纹理等)的底层实现

WebGLCubeMaps

是 three.js WebGL 渲染器中负责立方体贴图(Cube Map)处理的核心模块,主要用于处理从全景图(Equirectangular)到立方体贴图的转换及相关资源管理。

核心功能

  • 立方体贴图映射转换
  • 立方体贴图资源缓存
  • 立方体贴图生成
  • 资源生命周期管理

主要应用场景

  • 作为 WebGL 渲染器的内部组件,透明处理全景图到立方体贴图的转换细节,简化上层 API 使用
  • 优化全景纹理的渲染性能,通过预生成立方体贴图减少实时转换开销
  • 支持基于全景图的环境反射、折射效果实现,为材质系统提供立方体贴图资源
  • 自动管理纹理资源生命周期,避免内存泄漏

WebGLCubeUVMaps

是 three.js WebGL 渲染器中负责处理立方体贴图(Cube Map)与全景图(Equirectangular Map)到 CubeUV 格式转换的核心模块,主要用于优化环境映射(Environment Mapping)的渲染效果和性能。

核心功能

  • 纹理格式转换管理
  • 转换结果缓存机制
  • 资源生命周期管理
  • 完整性检查与异步处理

主要应用场景

  • 作为 WebGL 渲染器的内部组件,为基于物理的渲染(PBR)等高级渲染技术提供优化的环境贴图格式
  • 透明处理 CubeUV 转换的底层细节,简化环境映射效果的实现流程
  • 通过预过滤和缓存机制,平衡环境映射的视觉质量与渲染性能
  • 自动管理转换资源的生命周期,避免内存泄漏

WebGLAttributes

是 three.js WebGL 渲染器中负责管理顶点属性缓冲区(Vertex Buffer)的核心模块,主要处理 JavaScript 层面的属性数据与 WebGL 底层缓冲区对象(WebGLBuffer)之间的映射、创建、更新和销毁,是连接几何体数据与 GPU 渲染的关键桥梁。

核心功能

  • 缓冲区资源管理
  • 缓冲区创建与初始化
  • 缓冲区高效更新
  • 特殊缓冲区支持
  • 版本控制机制

主要应用场景

  • 作为 WebGL 渲染器的内部组件,在几何体渲染前完成顶点属性缓冲区的创建与上传
  • 处理顶点位置、法线、纹理坐标等各类属性数据的 GPU 存储管理
  • 优化动态数据更新(如骨骼动画顶点变形)的性能,通过局部更新减少数据传输量
  • 统一管理缓冲区生命周期,确保在属性对象废弃时正确释放 WebGL 资源

WebGLBindingStates

是 three.js WebGL 渲染器中负责管理顶点顶点属性绑定状态和顶点数组对象(VAO)的核心模块,主要用于优化顶点属性的绑定流程,减少重复的 WebGL 状态操作,提升渲染性能。

核心功能

  • 顶点数组对象(VAO)管理
  • 顶点属性绑定状态管理
  • 顶点属性配置与激活
  • 渲染状态切换优化
  • 资源生命周期管理

主要应用场景

  • 作为 WebGL 渲染器的内部组件,在几何体渲染前完成顶点属性的绑定和状态配置
  • 利用 VAO 特性优化多几何体、多程序切换时的渲染性能,尤其在复杂场景中效果显著
  • 处理实例化渲染(InstancedMesh)的顶点属性配置,支持高效的批量渲染
  • 管理顶点属性的启用 / 禁用状态,确保 WebGL 状态的正确性和一致性

WebGLGeometries

是 three.js WebGL 渲染器中负责几何体(Geometry)数据管理与 WebGL 渲染状态同步的核心模块,主要处理几何体数据到 GPU 渲染资源的映射、更新及生命周期管理,是连接几何体与 WebGL 渲染管线的关键组件。

核心功能

  • 几何体资源生命周期管理
  • 几何体数据与 GPU 同步
  • 线框(Wireframe)属性生成与管理
  • 绑定状态协同管理

主要应用场景

  • 作为 WebGL 渲染器的内部组件,在几何体首次渲染前完成资源初始化,在数据更新时同步到 GPU
  • 为线框渲染模式提供底层数据支持,自动处理线框索引的生成与更新
  • 管理几何体资源的全生命周期,防止内存泄漏(如释放废弃几何体的缓冲区资源)
  • 优化动态几何体(如顶点数据实时更新的模型)的渲染性能,通过版本控制减少不必要的 GPU 数据传输

WebGLObjects

是 three.js WebGL 渲染器中负责管理对象(如网格、实例化网格、骨骼网格等)与底层渲染资源同步的核心模块,主要协调几何体数据、顶点属性缓冲区及特殊对象类型的更新逻辑,确保渲染时 GPU 数据的准确性和时效性。

核心功能

  • 渲染资源帧同步管理
  • 几何体数据同步
  • 特殊对象类型处理:实例化网格(InstancedMesh)、骨骼网格(SkinnedMesh
  • 资源生命周期管理

主要应用场景

  • 作为 WebGL 渲染器的内部组件,在对象渲染前完成所有必要的数据同步,是连接场景对象与 WebGL 渲染管线的关键环节
  • 优化动态对象(如骨骼动画模型、实例化渲染的大量重复物体)的更新性能,通过帧级别的更新控制减少无效计算
  • 统一管理不同类型对象的渲染资源依赖,确保几何体、实例数据、骨骼动画等在渲染时处于最新状态
  • 配合 WebGLGeometries 和 WebGLAttributes 模块,形成完整的渲染资源管理链路

WebGLMorphtargets

是 three.js WebGL 渲染器中负责处理 morph 目标(形变目标)渲染逻辑的核心模块,主要实现顶点形变动画数据在 GPU 中的高效存储与应用,是角色表情、物体形变等动画效果的底层支撑。

核心功能

  • Morph 目标数据的纹理化存储
  • 纹理数据构建与更新
  • 渲染状态同步
  • 资源生命周期管理

主要应用场景

  • 处理角色表情动画(如面部肌肉形变)、物体形状过渡(如旗帜飘动、布料变形)等基于 morph 目标的动画效果
  • 优化大量形变目标的渲染性能,通过纹理化存储减少 CPU 与 GPU 间的数据传输
  • 支持实例化渲染中的批量形变控制,为每个实例应用不同的形变权重组合
  • 兼容位置、法线、颜色等多属性的同步形变,确保渲染结果的视觉一致性

WebGLClipping

是 three.js WebGL 渲染器中负责管理裁剪平面(Clipping Planes)逻辑的核心模块,主要处理全局和局部裁剪平面的投影计算、状态管理及着色器 uniform 变量同步,实现 3D 场景中几何体的实时裁剪效果。

核心功能

  • 裁剪平面状态管理
  • 裁剪平面投影计算
  • 着色器 uniform 同步
  • 阴影渲染特殊处理
  • 全局与局部裁剪融合

主要应用场景

  • 实现场景级全局裁剪(如截面分析、剖切视图)和物体级局部裁剪(如特定模型的部分隐藏)
  • 支持复杂裁剪逻辑,如多个平面的交 / 并运算(通过 clipIntersection 控制)
  • 适配阴影渲染流程,确保裁剪效果在阴影中正确呈现或按需关闭
  • 为医学可视化、CAD 模型查看等需要截面分析的场景提供底层技术支持

WebGLPrograms

是 three.js WebGL 渲染器中负责着色器程序(Shader Program)管理的核心模块,主要处理着色器程序的参数计算、缓存管理及创建逻辑,是连接材质、几何体与 WebGL 渲染管线的关键组件。

核心功能

  • 着色器程序参数计算
  • 程序缓存键生成
  • 着色器程序管理
  • uniform 变量初始化

关键技术点

  • 参数化着色器生成:通过动态生成宏定义和条件编译逻辑,实现一套基础着色器代码适配多种渲染场景
  • 硬件能力适配:根据 WebGL 上下文的能力(如 capabilities)自动调整着色器参数,确保兼容性
  • 状态压缩:使用 Layers 对象的掩码机制压缩大量布尔状态,高效生成缓存键
  • 纹理通道管理:通过 getChannel() 方法统一管理纹理坐标通道,避免冲突

主要应用场景

  • 作为渲染器的内部组件,在首次渲染材质时自动生成并编译所需的着色器程序
  • 为不同材质(如 MeshStandardMaterialMeshPhysicalMaterial)和渲染状态(如阴影、雾化)提供对应的着色器配置
  • 优化着色器编译开销,通过缓存机制复用相同配置的程序实例
  • 支持自定义着色器材质,为高级渲染效果提供扩展入口

WebGLMaterials

是 three.js WebGL 渲染器中负责材质(Material)与着色器 uniform 变量同步的核心模块,主要处理不同类型材质的属性参数转换、状态更新及着色器参数传递,是连接材质配置与 GPU 渲染管线的关键桥梁。

核心功能

  • 材质属性到着色器 Uniform 的映射
  • 统一与专用属性处理
  • 环境贴图与变换处理
  • 高级材质特性支持
  • 雾效与辅助参数同步

关键技术点

  • 类型分支处理 :通过材质类型判断(isMeshStandardMaterial 等标识)分发到对应的刷新函数,实现多材质类型的统一管理
  • 矩阵变换维护:自动更新纹理的变换矩阵并同步到着色器,支持纹理的平移、旋转、缩放变换
  • 双面渲染适配:针对 BackSide 渲染模式,自动修正法线贴图、凹凸贴图的方向,确保视觉一致性
  • 性能优化:仅在必要时更新 uniform 变量,避免冗余的 GPU 数据传输

主要应用场景

  • 作为渲染器的内部组件,在每帧渲染前更新材质相关的着色器参数
  • 支撑 three.js 中所有材质类型的渲染逻辑,确保材质配置正确映射到视觉效果
  • 处理复杂材质特性(如透明物体的透射效果、金属材质的反射效果)的底层参数传递
  • 适配不同硬件环境下的纹理与着色器交互,保证跨平台渲染一致性

WebGLRenderLists

定义了 WebGLRenderLists 和 WebGLRenderList 两个核心类,是 three.js WebGL 渲染器中负责管理渲染队列的关键模块,主要处理渲染项的分类、排序和生命周期管理,确保场景中的物体按照正确的顺序和规则进行渲染。

核心功能

  • 渲染项(Render Item)管理
  • 渲染排序机制
  • 多场景与深度管理
  • 资源清理与复用

关键技术点

  • 分类渲染策略:根据物体透明度和透射属性分离队列,确保不同光学特性的物体采用正确的渲染顺序
  • 稳定排序保障:排序算法中加入 id 作为最终比较项,确保相同属性的物体渲染顺序一致,避免画面闪烁
  • 对象池模式:通过 getNextRenderItem 复用渲染项对象,减少垃圾回收压力
  • 弱引用映射:使用 WeakMap 存储场景与渲染列表的关联,当场景对象被销毁时自动释放相关资源

主要应用场景

  • 作为渲染器的内部组件,在每帧渲染前收集并整理所有待渲染物体
  • 确保不透明物体从前到后渲染(利用深度测试优化性能),透明 / 透射物体从后到前渲染(保证正确的叠加效果)
  • 支持通过 groupOrder 和 renderOrder 手动控制渲染顺序,实现图层优先级管理
  • 为多层级渲染流程(如主渲染、阴影贴图生成、轮廓渲染)提供独立的渲染队列

WebGLRenderStates

定义了 WebGLRenderState 和 WebGLRenderStates 两个核心类,是 three.js WebGL 渲染器中负责管理渲染状态(尤其是光照和阴影相关状态)的关键模块,主要处理渲染过程中光照数据的维护、场景与渲染状态的关联,以及多深度渲染调用的状态隔离。

核心功能

  • 渲染状态(WebGLRenderState)管理
  • 多场景与多深度渲染支持
  • 光照与阴影状态准备

关键技术点

  • 状态隔离机制:为每个场景和渲染深度创建独立的 WebGLRenderState 实例,避免不同渲染流程(如主渲染与阴影渲染)的状态冲突
  • 弱引用映射:使用 WeakMap 存储场景与渲染状态的关联,当场景对象被销毁时自动释放相关资源,优化内存管理
  • 按需创建策略:仅在需要时为特定渲染深度创建新的渲染状态实例,减少不必要的内存占用
  • 与光照系统衔接:内部集成 WebGLLights 实例,封装光照配置的底层细节,简化渲染器对光照状态的管理

主要应用场景

  • 作为渲染器的内部组件,在每帧渲染前收集场景中的光源和阴影信息
  • 为多层级渲染流程(如主视图渲染、阴影贴图生成、透射效果处理)提供独立的光照状态上下文
  • 确保光照计算与当前相机视角同步,为着色器提供正确的光照参数(如位置、方向、强度等)
  • 管理透射效果相关的渲染目标(transmissionRenderTarget),支持复杂光学效果的状态维护

WebGLBackground

是 three.js WebGL 渲染器中负责场景背景渲染的核心模块,主要处理背景颜色、纹理(包括立方体纹理)的渲染逻辑,以及与渲染状态、环境配置的协同工作。

核心功能

  • 背景渲染管理
  • 渲染对象创建与维护
  • 着色器与 uniforms 管理
  • 渲染流程整合
  • 颜色与透明度控制

关键技术点

  • 双面渲染策略:立方体背景使用 BackSide 渲染模式,确保纹理从内部可见(模拟天空盒效果)
  • 相机同步:立方体背景的世界矩阵与相机位置同步,营造无限远处环境的视觉效果
  • 状态隔离:背景渲染禁用深度测试和写入,避免影响场景中其他物体的深度排序
  • 动态更新检测:通过比较背景版本(version)和色调映射(toneMapping)状态,仅在必要时更新材质,优化性能
  • XR 环境适配:根据 XR 环境混合模式(environmentBlendMode)调整背景清除逻辑,适配沉浸式渲染场景

主要应用场景

  • 作为渲染器内部组件,在每帧渲染前处理场景背景的绘制
  • 支持天空盒(CubeTexture)、2D 背景图、纯色背景等多种视觉效果
  • 配合场景的 backgroundRotation 实现背景旋转动画,增强场景动态感
  • 处理背景模糊效果,用于模拟景深或雾化环境
  • 适配 XR 应用的特殊背景渲染需求,确保虚拟与现实环境的自然融合

WebGLShadowMap

是 three.js WebGL 渲染器中负责阴影渲染的核心模块,主要处理光源阴影的生成、渲染和管理,通过深度纹理技术实现场景中物体的阴影效果。

核心功能

  • 阴影渲染管道管理
  • 阴影材质与状态控制
  • 视口与纹理尺寸管理
  • 方差阴影图(VSM)阴影模糊处理
  • 对象递归渲染

关键技术点

  • 阴影类型适配:根据阴影类型(PCF/VSM)切换渲染逻辑,PCF 采用硬阴影处理,VSM 支持软阴影并需要额外模糊步骤
  • 材质缓存策略:通过材质 UUID 建立缓存键,复用相似材质的阴影渲染实例,减少资源开销
  • 状态隔离机制:在阴影渲染期间保存并恢复当前渲染目标(WebGLRenderTarget)和状态,避免影响主渲染流程
  • 光照矩阵同步:通过 shadow.updateMatrices 确保光源视图矩阵与阴影相机同步,保证阴影位置准确性
  • 性能优化:结合视锥体检测剔除不可见物体,根据硬件限制动态调整阴影贴图尺寸

主要应用场景

  • 作为渲染器内部组件,在每帧渲染时为场景中的光源生成阴影贴图
  • 支持不同类型光源(方向光、点光源等)的阴影特性,如点光源的六面阴影贴图
  • 通过材质缓存和视锥体剔除优化复杂场景的阴影渲染性能
  • 提供阴影质量控制(模糊半径、样本数),平衡视觉效果与性能开销
  • 处理特殊材质属性(如透明度、位移映射)对阴影的影响,确保阴影真实性

WebGLUniformsGroups

是 three.js WebGL 渲染器中负责管理Uniform 缓冲对象(UBO,Uniform Buffer Object) 的核心模块,主要处理着色器 uniforms 数据的分组、缓冲创建、更新及绑定逻辑,优化 WebGL 渲染管线中 uniforms 数据的传输效率。

核心功能

  • Uniform 缓冲对象(UBO)管理
  • Uniforms 数据更新与状态跟踪
  • 内存布局与对齐处理
  • 绑定点分配与管理

关键技术点

  • UBO 性能优化:通过批量传输 uniforms 数据减少 WebGL API 调用,相比单个 uniform 上传大幅提升渲染效率
  • 增量更新机制:仅传输变化的 uniforms 数据,降低 CPU 到 GPU 的数据传输开销
  • STD140 布局适配:严格遵循 OpenGL 标准内存布局,确保跨平台一致性和 GPU 正确解析
  • 资源自动回收:通过事件监听(dispose 事件)自动清理废弃的缓冲和绑定点,防止内存泄漏
  • 硬件限制适配:动态获取并尊重 GPU 最大 UBO 绑定点数量,避免渲染错误

主要应用场景

  • 作为渲染器内部组件,管理需要批量传递到着色器的 uniforms 数据(如光照参数、相机矩阵等)
  • 支持复杂场景中多个材质共享 uniforms 数据,减少冗余传输
  • 为 WebGL 2 特性提供基础支持,充分利用现代 GPU 对 UBO 的硬件加速能力
  • 优化动画场景中频繁变化的 uniforms(如骨骼矩阵、时间参数)的更新效率

WebGLBufferRenderer

是 three.js WebGL 渲染器中负责顶点缓冲渲染的核心模块,主要封装了 WebGL 原生绘图命令,处理顶点数组(VAO)的渲染逻辑,支持普通绘制、实例化绘制及多批次绘制等场景。

核心功能

  1. 渲染模式管理
  2. 基础绘制功能
  3. 实例化渲染支持
  4. 多批次绘制优化
  5. 多批次实例化绘制

关键技术点

  • API 封装与抽象:隐藏 WebGL 底层绘制命令的细节,提供统一的高层接口,简化渲染器核心逻辑
  • 扩展适配 :对 WEBGL_multi_draw 扩展进行检测和使用,在支持的硬件上提升多批次绘制性能
  • 性能统计集成 :通过 info.update 实时记录绘制信息,为 three.js 的性能监控模块提供数据支持
  • 兼容性处理:在扩展不支持时提供降级方案,确保在不同硬件和浏览器环境下的稳定运行

主要应用场景

  • 作为渲染器内部组件,处理所有基于顶点缓冲的图元绘制(如几何体、粒子等)
  • 支持实例化渲染技术,优化大量重复对象的渲染性能
  • 配合多批次绘制扩展,减少复杂场景中多次绘制调用的性能开销
  • 为线条、三角形、点等不同图元类型提供统一的渲染入口

WebGLIndexedBufferRenderer

是 three.js WebGL 渲染器中负责带索引的顶点缓冲渲染 的核心模块,专门处理基于索引缓冲区(IndexedBufferGeometry)的图元绘制逻辑,封装了 WebGL 中带索引的绘图命令。

核心功能

  • 渲染模式管理
  • 索引缓冲区配置
  • 基础索引绘制
  • 实例化索引渲染
  • 多批次索引绘制
  • 多批次实例化索引绘制

关键技术点

  • 索引渲染优化:通过索引缓冲区复用顶点数据,减少内存占用和数据传输量,相比非索引渲染更高效
  • 硬件扩展适配 :对 WEBGL_multi_draw 扩展进行检测和使用,在支持的硬件上显著提升多批次绘制性能
  • 实例化技术支持 :通过 drawElementsInstanced 实现硬件加速的实例化渲染,大幅降低相同几何体多实例场景的渲染开销
  • 状态隔离设计:内部维护渲染模式和索引格式状态,避免不同绘制操作间的状态干扰
  • 性能统计集成:实时记录绘制信息,为 three.js 性能监控模块提供准确的渲染数据

主要应用场景

  • 处理所有基于索引几何体(IndexedBufferGeometry)的渲染,如网格模型(Mesh)、线模型(LineSegments)等
  • 支持复杂模型的高效渲染(通过索引复用顶点)
  • 优化大量重复带索引对象的渲染性能(如实例化树木、建筑组件)
  • 配合多批次绘制扩展,减少复杂场景中多次绘制调用的性能开销
相关推荐
陈小峰_iefreer3 天前
使用Stone 3D快速制作第一人称视角在线小游戏
游戏引擎·元宇宙·three.js·web3d
刘皇叔code8 天前
Three.js后处理UnrealBloomPass的分析
webgl·three.js
IT码农-爱吃辣条10 天前
Three.js 初级教程大全
开发语言·javascript·three.js
孪创启航营11 天前
数字孪生二维热力图制作,看这篇文章就够了!
前端·three.js·cesium
Mapmost11 天前
【BIM+GIS】BIM数据格式解析&与数字孪生适配的关键挑战
前端·vue.js·three.js
Mapmost11 天前
重磅升级丨Mapmost全面兼容3DTiles 1.1,3DGS量测精度跃升至亚米级!
前端·vue.js·three.js
sixgod_h13 天前
Threejs源码系列- WebGLRenderer (3)projectObject函数
three.js
何贤14 天前
😲我写出了 Threejs 版城市天际线?!(官推转发🥳+ 源码分享🚀)
前端·开源·three.js
sixgod_h15 天前
Threejs源码系列- WebGLRenderer (1)
three.js