Home

Three.js 之几何体

几何体 在 Three.js 中,所有的几何体都是通过 THREE.BufferGeometry 继承而来。在设置几何体的反面的素材时,需要设置材质的的 side 为 THREE.DoubleSide,否则反面不会显示。 2D 几何体 2D 几何体只有两个维度 X 轴和 Y 轴,没有 Z 轴。 THREE.PlaneGeometry 用来渲染矩形平面几何。当 几何创建完毕后,获取几何的属性需要使用 geometry.parametres.X 来获取。 THREE.CircleGeometry 创建一个圆形几何平面。 角度和弧度之间的计算公式: const deg2rad = (degrees) => (degrees * Math.PI) / 180 const...

Read more

Three.js 之材质

Three.js 之材质 材质的作用是在几何体表面进行渲染,可以渲染特定的颜色或者图片。 材质种类 MeshBasicMaterial 基础材质,不会被光源所影响。 MeshDepthMaterial 材质的亮度由材质和相机之间的距离决定,一般和其他材质一起使用,通过 blend properties 混合不同的材质 THREE.MeshLambertMaterial 基础材质,会被光源所影响 THREE.MeshPhongMaterial 可以控制反光的材质,会有一种被耀眼的光照射到的感觉 属性: emmisive:材质反光的颜色 emissiveIntensity:材质反光的强度 specular:被照射到的光的颜色 shininess:反...

Read more

Three.js 之相机介绍

透视相机(perspective camera) 在透视相机渲染出来的 3D 场景中,远处的物体比较小,近处的物体比较大。 透视相机的属性 视野区域(FOV):人眼所能看到的视野一般是 180°,但是在显示器中,显示的区域没有那么大,FOV 用来控制视野区域的,一般是 60° - 90°。 比例(aspect):水平方向和垂直方向的方面比例,一般情况下可以设置成:window.innerWidth / window.innerHeight 近距(near):近距属性设置场景和相机之间的距离,一般设置一个比较小的值(0.1)来渲染场景中的所有物体。 远距(far):远距设置相机能够看到多远的距离,过于小会导致场景的一部分不会被渲染;过大则会影响渲染性能。 聚焦...

Read more

Three.js 之灯源介绍

光源介绍 通过光源才能看到场景,如果没有光源,场景就是黑的(特殊情况除外)。 光源种类 灯光名称 灯光描述 是否有阴影效果 PointLight(发散光) 发散光类似于手持蜡烛时发出来的光,周围被照射到的物体都会有阴影效果。 有 SpotLight(聚光灯) 聚光灯顾名思义,可以实现舞台上的聚光灯效果,可以控制方向和角度,通过 spotLight.camera.shadow 属性设置阴影效果,设置 camera.shadown.fov 无效,需要设置 spotLight.angle 才可以 有 ...

Read more

Three.js 介绍

相关概念: 场景(scene):场景里面包含所有模型和几何体。 相机(camera):相机决定了你看到场景的哪一部分。 渲染器(renderer):通过渲染器,把相机看到的那一部分场景展示在屏幕上。 几何体(Mesh):几何体由几何位置和几何材质组成,几何位置决定它的形状,几何材质决定它的外表样式。 几何位置 几何位置由多个面组成,例如一个正方体由六个面组成,每一个面都由两个三角形组成,每一个三角形都有三个点(Point) 在使用几何位置生成面的时候要注意:几何位置生成的顺序对显示有影响,如果是顺时针生成的面,则是...

Read more

JavaScript 之 using 关键字

在 ES2022 中新增了一个提案,它叫 ECMAScript 显式资源管理(ECMAScript Explicit Resource Management),目前是 stage 3 阶段。这个提案的主要内容是新增了一个 using 关键字,using 关键字的作用是用来定义变量,并且在变量的生命周期中自动释放掉当前变量引用的资源(内存,I/O 等)。例如我们在 Node.js 中会通过 fs 来读写文件,使用 using 方法可以在读写完毕后释放对文件的引用。 提案主要解决的问题 使用 using 关键字来使用资源,它会在使用完毕以后(根据 API 的具体场景)自动对资源进行释放。 各种不一致的资源管理方式: ECMAScript 的迭代...

Read more

JWT、OAUTH2、Session ID 是什么?

什么是 JWT,OAUTH2,以及 Session ID JWT JWT(JSON Web Token)是一种用于在网络应用之间安全传递信息的开放标准。它通过将信息编码成 JSON格式并使用数字签名或加密来确保数据的完整性和安全性。JWT 常常用于身份验证和声明传递,特别是在分布式系统中。 一个 JWT 通常由三部分组成:头部(Header)、载荷(Payload)和签名(Signature): 头部(Header): 头部通常由两部分组成,它们使用 Base 64 编码后合并在一起,并用点号分隔。头部包含有关令牌的元信息,如令牌的类型(通常是 “JWT” )和使用的签名算法。例如: { "alg": "HS256", "typ": "JWT"...

Read more

使用 Jekyll 搭建 Github Pages 记录

Jekyll 安装指南 使用 Jekyll 在 Github Pages 上面搭建一个博客站点,同时具有良好的 SEO 效果。 安装建议:在下载软件和在终端执行命令建议都通过国外代理进行下载,避免因为网络原因导致的安装失败或者一直卡住 这个指南主要针对 Windows 用户 安装步骤: 在 https://rubyinstaller.org/downloads 上下载 RubyInstaller,自行选择对应的版本,我下载的是 Ruby+Devkit 3.2.2-1 (x64) 安装过程中注意事项: 勾选添加 Ruby 到环境变量 当安装完毕后弹出一个命令框时,提示你选择一个 MSYS2 componen...

Read more