当前位置: 首页 > article >正文

Three.js怎么工作的?

Three.js 是怎么工作的?

Three.js 的核心工作是:

  1. 构建一个虚拟的 3D 世界(Scene)

  2. 模拟摄像机视角(Camera)

  3. 用 WebGL 把这个场景“渲染成一张图片”

  4. 把这张图片画在 canvas 上

👉 所以 Three.js 最终的任务就是:画一张图像到 canvas 上,就像摄影师拍照后,把照片贴在 canvas 上一样。

角色功能
Three.js把场景、物体、灯光、摄像机等组织成数据结构,并自动转成 WebGL 命令
WebGL把这些命令送到 GPU,画三角形(顶点 ➜ 图形 ➜ 像素)
Canvas接收 WebGL 画出来的图像并显示

WebGL 干了什么?

  1. WebGL 不直接“画像素”

  2. 它会画很多三角形

  3. 然后由GPU负责把这些三角形“光栅化”为像素,显示在屏幕上

为什么三角形?

因为任何复杂图形都能用一堆三角形拼出来(这是 GPU 最擅长处理的基本单位)。

 Three.js (描述3D场景)Three.js 搭建了一个虚拟的三维世界,里面有物体、灯光、摄像机等等,好比你在搭积木,摆放场景。 
  ↓
WebGL (把3D转换为2D图像)WebGL 就像一台“虚拟相机”,它帮你从某个角度拍这整个三维积木世界,但拍出来的是一张“平面的照片”,把三维的东西变成二维图。
  ↓
Canvas (接收图像并显示在屏幕上)个“照片”得放个地方展示,Canvas 就是电脑网页上的“画布”,用来展示 WebGL 拍出来的这张二维图。
  ↓
用户看到的是像素点组成的画面

  • 你用手机拍一栋建筑,这栋建筑是3D的,真实有高有宽有深。

  • 但是你拍出来的是一张“二维照片”,只有长和宽,是平的。

  • 你看这张照片,感觉建筑有立体感,是因为照片里有阴影、远近和透视。

  • Three.js 和 WebGL 做的事情就是:

  • 帮你“用程序”拍一张虚拟的“二维照片”,它是用数学算出来的,但看起来有三维效果。

  • 这个“照片”就是画在网页上的那个 canvas 里的图。

http://www.lryc.cn/news/2404766.html

相关文章:

  • LangChain面试内容整理-知识点1:LangChain架构与核心理念
  • 双面沉金线路板制作流程解析:高可靠性PCB的核心工艺
  • 什么是梯度磁场
  • 从零开始的python学习(七)P102+P103+P104+P105+P106+P107
  • Linux--进程的调度
  • Hadolint:Dockerfile 语法检查与最佳实践验证的终极工具
  • Python爬虫实战:研究Hyper 相关技术
  • 基于langchain的简单RAG的实现
  • VmWare Ubuntu22.04 搭建DPDK 20.11.1
  • selenium-自动更新谷歌浏览器驱动
  • 34、协程
  • Apache POI操作Excel详解
  • Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
  • OpenCV CUDA模块图像处理------双边滤波的GPU版本函数bilateralFilter()
  • 华为手机开机卡在Huawei界面不动怎么办?
  • 并行硬件环境及并行编程
  • ORM框架(SQLAlchemy 与 Tortoise )
  • go语言map扩容
  • 安全访问家中 Linux 服务器的远程方案 —— 专为单用户场景设计
  • 前端开发三剑客:HTML5+CSS3+ES6
  • [Java 基础]Java 中的关键字
  • 5.3 Spring Boot整合JPA
  • 腾讯开源视频生成工具 HunyuanVideo-Avatar,上传一张图+一段音频,就能让图中的人物、动物甚至虚拟角色“活”过来,开口说话、唱歌、演相声!
  • [文献阅读] Emo-VITS - An Emotion Speech Synthesis Method Based on VITS
  • 网络协议通俗易懂详解指南
  • OpenCV-Python Tutorial : A Candy from Official Main Page(持续更新)
  • 【Vue】指令补充+样式绑定+计算属性+侦听器
  • .Net Framework 4/C# 泛型的使用、迭代器和分部类
  • LLM 笔记:Speculative Decoding 投机采样
  • 当SAP系统内计划订单转换为生产订单时发生了什么?