three.js(三):three.js的渲染结构

这篇具有很好参考价值的文章主要介绍了three.js(三):three.js的渲染结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

three.js 的渲染结构

概述

  • three.js 封装了场景、灯光、阴影、材质、纹理和三维算法,不必在直接用WebGL 开发项目,但有的时候会间接用到WebGL,比如自定义着色器。
  • three.js 在渲染三维场景时,需要创建很多对象,并将它们关联在一起。
  • 下图便是一个基本的three.js 渲染结构
    three.js(三):three.js的渲染结构,three.js,three.js
  • Renderer 渲染器
    • Renderer 是three.js 的主要对象。当你将一个场景Scene 和一个摄像机Camera 传递到渲染器的渲染方法中,渲染器便会将摄像机视椎体中的三维场景渲染成一个二维图像显示在canvas 画布中。
  • Scene 场景对象
    • 场景对象是树状结构的,其中包含了三维对象Object3D 和灯光对象Light;
    • Object3D 是可以被直接渲染出来的,Object3D是网格对象Mesh和集合对象Group的基类;
    • 场景对象可以定义场景的背景色和雾效;
    • 在场景对象的树状结构中,每个对象的变换信息都是相对的。比如汽车和汽车里的人,人的位置是相对于汽车而言的,当汽车移动了,人的本地坐标位坐标位虽然不变,但其视界坐标位已经变了
  • Camera 相机对象
    • 按理说,相机对象是在场景里的,但是相机对象不在它所看的场景里,这就像我们自己看不见自己的眼睛一样。因此,相机对象可以独立于场景之外;
    • 相机对象是可以作为其它三维对象的子对象的,这样相机就会随其父对象同步变换。
  • Mesh 网格对象
    • 网格对象由几何体Geometry和材质Material两部分组成,Geometry 负责塑形,Material 负责着色;
    • Geometry 和Materia 是可以被多个Mesh 对象复用的。比如要绘制两个一模一样的立方体,那只需要实例化两个Mesh 即可,Geometry 和Materia可以使用一套。
  • Geometry 几何体对象
    • 几何体对象负责塑形,存储了与顶点相关的数据,比如顶点点位、顶点索引、uv坐标等;
    • three.js 中内置了许多基本几何体,也可以自定义几何体,或者从外部的模型文件里加载几何体。
  • Material 材质对象
    • 材质对象负责着色,绘制几何体的表面属性,比如漫反射、镜面反射、光泽度、凹凸等;
    • 材质对象的许多属性都可以用纹理贴图表示,比如漫反射贴图、凹凸贴图等。
  • Texture 纹理对象
    • 纹理对象就是一张图像。纹理图像的图像源可以是Image 图片、canvas 画布、Video 视频等。
  • Light 光源对象
    • Light 对象不像Object3D 那样依托于顶点,它更多的是像Object3D 里的材质Material 那样,作用于物体的样式。
    • Light 对象可以理解为在为几何体添加了材质后,再利用光效配合材质对几何体的样式进行二次加工。

文章来源地址https://www.toymoban.com/news/detail-678978.html

到了这里,关于three.js(三):three.js的渲染结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Three.js教程:WebGL渲染器设置(锯齿模糊)

    推荐:将 NSDT场景编辑器 加入你的3D工具链 其他系列工具: NSDT简石数字孪生 一般实际开发,threejs的WebGL渲染器需要进行一些通用的基础配置,本节课给大家简单介绍下,比如渲染模糊或锯齿问题。 渲染器锯齿属性 .antialias 设置渲染器锯齿属性 .antialias 的值可以直接在参数中

    2024年02月11日
    浏览(57)
  • Three.js之几何体、高光材质、渲染器设置、gui

    阵列立方体和相机适配体验 Threejs常见几何体简介 … gui.js库(可视化改变三维场景) 注:基于Three.js v0.155.0 长方体:BoxGeometry 球体:SphereGeometry 圆柱:CylinderGeometry 矩形平面:PlaneGeometry 圆形平面:CircleGeometry 高光网格材质:MeshPhongMaterial(shininess、specular) WebGL渲染器设置:

    2024年02月11日
    浏览(53)
  • 【Three.js基础】创建场景、渲染场景、创建轨道控制器(一)

    🐱 个人主页: 不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门到精通、TypeScript从入门到实践 📢 资料领取:前端进阶资料以及文中源码可以找我免费领取 🔥 前端

    2024年02月01日
    浏览(63)
  • three.js实现3d球体树状结构布局——树状结构的实现

        three.js实现3d球体树状结构布局——添加入场、出场、点击放大等动画     three-spritetext: 用来绘制文字。THREE.TextGeometry绘制文字存在模糊问题,而且转动camera时three-spritetext不需要手动处理让文字始终面向camera。     three.meshline: 用来绘制线。THREE.LineBasicMaterial绘制线存

    2024年02月08日
    浏览(53)
  • js拿到接口数据 处理成三级或者四级结构再进行渲染

    背景:接口的数据结构一层套一层 类似于这样 后端返回真实的数据如下: 这是个四级结构 需要渲染的也是四级 只需要拿到每个层级的name和第一个层级的ID 用最笨的方式来一层层解析 再进行渲染

    2024年02月13日
    浏览(39)
  • THREE.JS使用详细(three.js创建3d物体,three.js的使用方式)

    简述:three.js封装了WebGL的底层细节,是一款运行在浏览器中的 3D 引擎,可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象,目前在Git上已经拥有90k+的star,今天用three.js来构建一个三维模型; 1、首先,在项目中需要下载threejs的相关依赖; 2、在js页面引入使

    2024年01月23日
    浏览(84)
  • 【Three.js】Three.js快速上手教程

    官网对 Three.js 的介绍非常简单:“Javascript 3D library”。 即: three.js 是 JavaScript 编写的 WebGL 第三方库。提供了非常多的3D显示功能,是一个常见的 web 3D 库。 相关概念解释:three.js webGL openGL openGL 是一个跨平台3D/2D的绘图标准, webGL 则是 openGL 在浏览器上的一个实现。 web前端

    2024年01月16日
    浏览(57)
  • three.js(四):react + three.js

    绘制多个立方体 1.搭建react+ts 项目 react+ts 的用法可参考此链接: https://react-typescript-cheatsheet.netlify.app/docs/basic/setup 2.安装three依赖 3.安装路由 react-router-v6 的用法可参考此链接:https://juejin.cn/post/7088526716049555492 4.用路由组件包裹APP。 index.tsx 5.构建项目页面 src/view/Basics.tsx src/

    2024年02月11日
    浏览(55)
  • three.js(二):webpack + three.js + ts

    webpack 依旧是主流的模块打包工具; ts和three.js 是绝配,three.js本身就是用ts写的,ts可以为three 项目提前做好规则约束,使项目的开发更加顺畅。 1.创建一个目录,初始化 npm 2.调整 package.json 文件 确保安装包是 private(私有的) ,并且移除 main 入口。这可以防止意外发布你的代码

    2024年02月11日
    浏览(38)
  • Three.js--》探索Three.js:学习和就业的完整指南

    目录 three.js的学习建议 WebGL前端工程师工作待遇相关问题 本篇文章主要给大家介绍一下如何学习Web3D可视化,具体说就是怎么学习WebGL、Three.js、3D建模等。 three.js的学习建议 在过去互联网是人联网的时代,开发人和人之间的联系的Web应用,对于3D可视化需求不强烈。在物联网

    2024年02月06日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包