Three.js是一个基于JavaScript编写的开源3D图形库,它使用WebGL技术在网页上渲染3D图形。Three.js提供了许多高级功能,如几何体、纹理、光照、阴影等,以便开发者能够快速地创建复杂且逼真的3D场景。

特点:

Three.js具有跨平台性,可以在主要的桌面和移动浏览器上运行,并且其开源社区提供了广泛的文档、示例和第三方库,使开发变得更容易。相对于其他复杂的三维引擎,Three.js相对容易学习,对于有JavaScript和基本数学知识的开发者来说非常友好。

什么是webGl

WebGL(Web Graphics Library)是一种JavaScript API,它能在无需任何插件的情况下,在浏览器中呈现2D和3D图形。WebGL基于OpenGL ES 2.0,因此它可以在没有安装额外驱动程序的情况下运行。

ThreeJS 中的相机是什么?

相机是可以 360 旋转的 相机,可以任意放置相机的未知,达到可以观察场景的任意视角

三维空间需要一个相机来拍摄场景。ThreeJS 中有多种相机类型可供选择,包括透视相机(PerspectiveCamera)、正交相机(OrthographicCamera)等。

ThreeJS 中的组是什么?

作用是可以将对象实体添加到组中,方便一起 移动 旋转 缩放 等处理 ;

如何创建 ThreeJS 场景? View

创建 ThreeJS 场景需要创建一个场景对象,并将所需的几何体、光源、相机等添加到场景中。

初始化渲染器 render   初始化场景 scene  添加灯光  light 添加相机

ThreeJS 中的光源有哪些类型?

在 ThreeJS 中,有几种不同类型的光源可供选择。其中包括环境光(AmbientLight)、点光源(PointLight)、平行光(DirectionalLight)和聚光灯(SpotLight)。

 // 初始化光源  环境光源
private initLight() {
const ambient = new AmbientLight(0xffffff, 0.6);
this.scene.add(ambient); // 平行光
const light = new THREE.DirectionalLight(0xffffff);
light.position.set(0, 200, 100);
light.castShadow = true; light.shadow.camera.top = 180;
light.shadow.camera.bottom = -100;
light.shadow.camera.left = -120;
light.shadow.camera.right = 400;
light.shadow.camera.near = 0.1;
light.shadow.camera.far = 400;
// 设置mapSize属性可以使阴影更清晰,不那么模糊
light.shadow.mapSize.set(1024, 1024); this.scene.add(light);
}

ThreeJS 中的材质有哪些类型?

在 ThreeJS 中,有许多不同类型的材质可供选择,以适应各种不同类型的几何体。这些包括基础材质(MeshBasicMaterial)、标准材质(MeshStandardMaterial)和物理材质(MeshPhysicalMaterial)等等。

创建一个正方体需要基础材质

  var material =[
new THREE.MeshBasicMaterial( { color: 'red' } ), // right
new THREE.MeshBasicMaterial( { color: 'red' } ), // left
new THREE.MeshBasicMaterial( { color: 'red' } ), // top
new THREE.MeshBasicMaterial( { color: 'red' } ), // bottom
new THREE.MeshBasicMaterial( { map: new THREE.CanvasTexture(this.getTextCanvas2label(item,"#1073ca")) } ), // front
new THREE.MeshBasicMaterial( { map: new THREE.CanvasTexture(this.getTextCanvas2label(item,"#1073ca")) } ) // front
];
var square :any = new THREE.Mesh( geometry, material );

.ThreeJS 中的渲染器是什么?

渲染器是 ThreeJS 中用于将创建的场景呈现在屏幕上的核心组件。它使用 WebGL 或 canvas 技术将场景中的图形绘制到浏览器中。

1. 什么是three.js?的更多相关文章

  1. Vue.js 和 MVVM 小细节

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  2. js学习笔记:操作iframe

    iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  5. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  6. 利用snowfall.jquery.js实现爱心满屏飞

    小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...

  7. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  8. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  9. 干货分享:让你分分钟学会 JS 闭包

    闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...

  10. JS核心系列:理解 new 的运行机制

    和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象. 但在 javascript 中,万物皆对象,为什么还要通过 ...

随机推荐

  1. 【Java】File 文件类

    File 文件类 File类的一个对象,代表了一个文件和一个文件目录/文件夹 File类所属在java.io 的包下 构造器部分 - 以parent为父文件,child为子路径创建File对象,可以理 ...

  2. 【REGX】正则表达式 选中空白行

    参考地址: https://www.cnblogs.com/peijyStudy/p/13201576.html VScode并列替换不够智能,我需要等行粘贴,结果SHIFT+ALT复制内容粘贴上去就 ...

  3. 【转载】 关于tf.stop_gradient的使用及理解

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u013745804/article/de ...

  4. Jax框架的jit编译是否可以使用循环结构,如果使用循环结构需要注意什么(续)

    前文: Jax框架的jit编译是否可以使用循环结构,如果使用循环结构需要注意什么 从前文我们知道,jax的jit中尽可能的不要放入循环结构,因为在jit编译时会将循环结构暂开,因而会消耗掉大量的时间进 ...

  5. 模仿学习算法:Data Aggregation Approach: DAGGER算法——Mixing policy

    论文: <A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning> ...

  6. nvidia显卡的售后真的是不敢要人恭维——拆机箱时误拧显卡自身挡板螺丝被拒保

    事情比较简单,单位在nvidia的经销商那里购买的nvidia titan rtx显卡,保修期内坏掉,拆下来的过程中误拧了挡板的螺丝,结果被拒保,这里就是单纯的记录这件事情. 这件事确实我这方面有不对 ...

  7. 白鲸调度系统助力国内头部券商打造国产信创化 DataOps 平台

    导读 国内某头部券商是国内排名前三的全国性大型综合证券公司.作为证券行业领头羊之一,该券商一直高度重视核心系统的自主可控以及网络信息安全.早些时候,其已经完成了信创化数据库改造和OA系统适配,接下来的 ...

  8. 京东面试:说说CMS工作原理?

    CMS(Concurrent Mark Sweep)垃圾收集器是以"最短的停顿"著称的垃圾回收器,因此也是 JDK 9 之前使用最广泛的垃圾回收器之一.那么,问题来了,为什么 CM ...

  9. 【主席树】P3834 【模板】可持久化线段树 2

    P3834 [模板]可持久化线段树 2 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include <bits/stdc++.h> using namespace ...

  10. .NET 8 + Vue 3 极简 RABC 权限管理系统

    前言 在日常工作中,几乎每家公司都需要一个后台管理系统来处理各种任务.为了帮助大家快速搭建这样一个系统,给大家介绍一个基于最新技术 .NET 8 和前端框架 Vue 3 实现的极简 RABC(基于角色 ...