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

Babylon.js学习之路《 前言:为什么要学习Babylon.js 》

文章目录

  • 引言:3D 开发在 Web 中的崛起
    • 为什么需要 Web 3D 开发?
        • 当选火热的应用场景
        • 数据表达方式的改变
    • Web 3D 的独特优势
        • 跨平台与零安装
        • 开发成本低
        • 即时更新与传播便捷
    • WebGL 的定位与挑战
        • WebGL 是什么?
        • WebGL 的直接使用痛点
    • 为什么需要 Babylon.js?
    • 系列文章目录


Babylon.js实现的效果展示

引言:3D 开发在 Web 中的崛起

在AI、VR、AR这些名词出现频率爆炸式增长的今天,我们对线上模拟还原的真实度要求越来越高;客户更加期望身临其境的体验,单纯图片的展示已经不能满足。而互联网中,最热门的相关技术无非webGL。

为什么需要 Web 3D 开发?

当选火热的应用场景

使用Web 3D技术,能模拟真实世界的空间感和交互逻辑,提升用户的参与感。

  • 电商中的 3D 商品展示(如宜家在线家具预览)。
  • 教育领域的 虚拟实验室(如化学实验模拟)。
  • 游戏行业的 网页端 3D 游戏(如《Agar.io》的 3D 衍生版本)。
数据表达方式的改变

复杂数据(如地理信息、分子结构、工程模型)通过 3D 可视化更易理解。

  • 3D 地图导航:Google Maps 的 3D 建筑模型。
  • 医疗可视化:CT 扫描数据的 3D 重建。

Web 3D 的独特优势

跨平台与零安装
  • 用户无需下载应用,浏览器直接访问,覆盖 PC、手机、平板。
  • 截至 2023 年,全球 98% 的移动设备 支持 WebGL(来源:WebGL Stats)。
开发成本低

无需为不同平台(iOS/Android/Windows)单独开发原生应用。

  • 原生开发:需分别使用 Unity(C#)、ARKit(Swift)、ARCore(Java)。
  • Web 3D:一套代码兼容所有设备。
即时更新与传播便捷

更新内容只需部署服务器,用户无感知升级。这也是网页应用的共同优势。

  • 疫情期间的 线上虚拟展会(如 CES 线上展厅)。

WebGL 的定位与挑战

WebGL 是什么?
  • 技术定义

    • 基于 OpenGL ES 的浏览器图形 API,允许 JavaScript 直接调用 GPU 渲染 2D/3D 图形。
    • 核心能力
      • 顶点着色器与片元着色器编程。
      • 纹理映射、光照计算、帧缓冲操作。
  • WebGL 的生态地位

    • 所有现代浏览器的“底层 3D 基础设施”:Chrome、Firefox、Safari、Edge 均支持。
    • 用原生 WebGL 绘制一个三角形需 100+ 行代码(对比 Babylon.js 仅需 10 行)。
WebGL 的直接使用痛点
  • 学习曲线陡峭

    • 开发者需掌握图形学基础(如坐标系、矩阵变换、光照模型)。
    • 对比示例
      • 原生 WebGL:需手动编写着色器、管理缓冲区、绑定纹理。
      // WebGL 初始化上下文、编译着色器、绑定数据等冗长代码
      const vertexShaderSource = `attribute vec4 aPosition;void main() {gl_Position = aPosition;}
      `;
      // ... 省略 50+ 行初始化代码
      
      • Babylon.js:声明式创建物体。
      const box = BABYLON.MeshBuilder.CreateBox("box", {}, scene);
      
  • 开发效率低下

    • 缺乏高级功能封装(如阴影、物理引擎、粒子系统),需自行实现。
    • 典型问题
      • 实现一个“物体拖拽阴影”效果需数百行代码。
      • 物理碰撞检测需手动编写数学计算逻辑。
  • 兼容性与性能优化复杂

    • 不同设备对 WebGL 扩展支持不一(如抗锯齿、浮点纹理)。
    • 需手动优化渲染批次、纹理压缩、内存管理。

为什么需要 Babylon.js?

  • 首先,Babylon.js是一个功能强大、易于使用的WebGL 3D引擎;

  • 其次,Babylon.js由微软这个庞然大物开发维护,没有后顾之忧;

  • 适用于开发各种类型的3D应用程序和游戏,包括虚拟现实、增强现实和在线游戏等。

  • 截至 2023 年,Babylon.js 拥有 21k+ Stars1k+ Contributors,月均 200+ Commit(来源:GitHub)。

  • Babylon.js 的解决方案

    • 抽象底层复杂性:提供相机、灯光、材质等高级 API。

    • 内置功能模块

      • 物理引擎(Cannon.js/Oimo.js 集成)。
      • 粒子系统、动画系统、后处理特效。
    • 跨平台适配:自动处理设备差异,如移动端触控交互、XR 设备支持。

    • 企业应用案例

      • 微软 Flight Simulator 的 Web 端 3D 地图。
      • Adobe 的 3D 设计工具原型。
  • 如果你想立刻感受下Babylon.js的功能,可以直接访问babylon.js广场

    • 访问 WebGL 原生示例,感受直接操作 WebGL 的复杂度。
    • 对比 Babylon.js Playground 的等效代码,体会框架的价值。

以下,是这个系列文章的目录,我将在每个章节循序渐进的介绍Babylon.js的知识点。

系列文章目录


  • 前言
    《为什么要学习Babylon.js?》

  • 基础篇
    1 《初识 Babylon.js:什么是 3D 开发与 WebGL 的完美结合?》
    简介 Babylon.js 的核心优势、应用场景及开发环境准备。
    2 《Babylon.js 开发环境搭建与第一个 Hello World》
    配置开发工具(VSCode、TypeScript)、基础项目结构与简单场景初始化。
    3 《创建你的第一个 3D 场景:立方体、球体与平面》
    学习添加基本几何体、调整位置/旋转/缩放属性。
    4 《Babylon.js 中的相机(Camera)与视角控制》
    详解自由相机、弧形旋转相机、跟随相机等类型及交互配置。
    5 《灯光与阴影:让场景栩栩如生的关键》
    点光源、方向光、聚光灯的设置与阴影优化技巧。
    6 《材质与纹理:为模型赋予真实的表面效果》
    标准材质、PBR 材质的使用,纹理贴图与 UV 映射。
    7 《用户交互:鼠标点击、拖拽与射线检测》
    实现物体点击事件、拖拽操作与射线碰撞检测。

  • 进阶篇
    8.《动画基础:关键帧动画与缓动效果》
    创建简单动画,使用动画曲线(Easing Functions)优化效果。
    9 《物理引擎入门:重力、碰撞与刚体模拟》
    集成 Cannon.js/Oimo.js,实现物理交互效果。
    10.《高级几何体:自定义模型与复杂形状生成》
    使用 MeshBuilder 创建复杂几何体,导入外部 GLTF/OBJ 模型。
    11.《粒子系统:火焰、烟雾与魔法特效》
    配置粒子发射器,实现天气、爆炸等动态效果。
    12 《着色器(Shaders)入门:用 GLSL 编写自定义材质》
    顶点着色器与片段着色器的基础应用。
    13 《后处理效果:景深、泛光与屏幕空间反射》
    使用 PostProcess 提升画面视觉表现力。
    14 《性能优化:场景 LOD、遮挡剔除与内存管理》
    优化大型场景的渲染效率与资源占用。

  • 实战篇
    15.《实战 1:用 Babylon.js 打造简易 3D 游戏》
    整合知识点,开发一个简单的跑酷/射击游戏 Demo。
    16 《实战 2:数据可视化——3D 图表与动态地图》
    将 JSON/CSV 数据转化为动态 3D 可视化图表。
    17 《实战 3:AR/VR 开发入门——集成 WebXR》
    使用 WebXR 实现虚拟现实与增强现实场景。
    18 《多人在线:通过 Socket.IO 实现实时 3D 协作》
    结合后端服务,构建多人联机互动场景。
    19 《跨平台部署:将 Babylon.js 应用打包为移动 App》
    使用 Cordova/React Native 封装为原生应用。

  • 高级专题
    20 《自定义插件:扩展 Babylon.js 的功能边界》
    编写插件实现自定义渲染管线或工具库。
    21 《结合 Three.js 与 Babylon.js:混合渲染方案探索》
    对比两大框架,设计混合使用场景。
    22 《Babylon.js 源码解析:引擎核心架构揭秘》
    深入源码,理解渲染循环、资源管理等机制。
    23 《未来展望:WebGPU 与 Babylon.js 的下一代渲染技术》
    探讨 WebGPU 集成与性能突破。

  • 总结
    24 《从入门到精通:Babylon.js 学习路径与资源推荐》
    总结系列内容,推荐官方文档、社区与进阶学习资料。


相关文章:

Babylon.js学习之路《 前言:为什么要学习Babylon.js 》

文章目录 引言:3D 开发在 Web 中的崛起为什么需要 Web 3D 开发?当选火热的应用场景数据表达方式的改变 Web 3D 的独特优势跨平台与零安装开发成本低即时更新与传播便捷 WebGL 的定位与挑战WebGL 是什么?WebGL 的直接使用痛点 为什么需要 Baby…...

今年我国已发生三级以上地震318次

快科技5月6日消息,根据中国地震台网的统计,今年以来(截至4月30日),我国共发生三级以上地震318次,其中3.0-3.9级248次,4.0-4.9级61次,5.0-5.9级7次,6.0-6.9级2次&#xff…...

在与大语言模型交互中的礼貌现象:技术影响、社会行为与文化意义的多维度探讨

概述 关于是否值得对 AI 保持礼貌的公众意见,几乎和咖啡或红酒的最新研究结果一样频繁变化——这个月被推崇备至,下个月又受到质疑。即便如此,越来越多的用户现在在提示语中加入“请”或“谢谢”,这不仅仅是因为习惯,…...

Java后端开发day42--IO流(二)--字符集字符流

(以下内容全部来自上述课程) 拓展. try…catch异常处理(能看懂) 接口:AutoCloseable 特点:特定的情况下,可以自动释放资源 注意:只有实现了AutoCloseable接口的类,才能…...

【HarmonyOS 5】鸿蒙发展历程

【HarmonyOS 5】鸿蒙发展历程 一、鸿蒙 HarmonyOS 版本年代记 鸿蒙 1.0: 2019 年 8 月 9 日,华为在开发者大会上正式发布鸿蒙 1.0 系统,这一版本首次应用于华为荣耀智慧屏产品中,标志着华为正式进军操作系统领域。该版本初步展现…...

使用蚁群算法求解VRPTW问题

这里写目录标题 蚁群优化算法Python实现ACO求解VRPTW问题Java实现ACO求解VRPTW问题蚁群优化算法 蚁群算法(ACO)适合求解带时间窗的车辆路径优化问题(VRPTW),主要基于其仿生智能机制与问题特性的深度契合,具体体现在以下六个方面: 时间窗约束的自然映射 信息素导向与时间…...

内存的位运算

示例:提取和设置标志位 假设我们有一个32位的整数,其中不同的位代表不同的标志。例如: 位0:是否开启日志(0表示关闭,1表示开启) 位1:是否启用调试模式(0表示禁用&#…...

高性能网络优化:深入解析忙轮询(Busy Polling)技术

在现代高性能网络应用中,如何降低数据包处理延迟、提升吞吐量是开发者与系统工程师的核心挑战之一。传统的“中断驱动”模式在高负载场景下表现不佳,而忙轮询(Busy Polling) 作为一种优化技术,通过主动轮询机制显著改善网络性能。本文将从原理、实现到实践,全面解析忙轮询…...

Linux grep 命令详解及示例大全

文章目录 一、基本语法二、常用选项及示例1. 基本匹配:查找包含某字符串的行2. 忽略大小写匹配 -i3. 显示行号 -n4. 递归查找目录下的文件 -r 或 -R5. 仅显示匹配的字符串 -o6. 使用正则表达式 -E(扩展)或 egrep7. 显示匹配前后行 -A, -B, -C…...

前端知识-hook

React 的生命周期管理被称为 Hook 技术,源于其设计哲学与实现机制中“钩入”组件运行流程的特性。这一命名既是对传统编程中“钩子”(Hook)概念的延伸,也体现了 React 对函数式组件的逻辑注入能力。以下从多个维度解析其关联性&am…...

uv全功能更新:统一管理Python项目、工具、脚本和环境的终极解决方案

花下猫语:uv 项目自发布起就大受欢迎,目前 Github star 52.6 K,远超过它的同类竞品们。前不久,它的创始人在 X 上披露了一组惊人的数据:uv 曾占据了 PyPI 超过 20% 的流量,用户每天通过它发起约 4-5 亿次下…...

Redis 使用及命令操作

文章目录 一、基本命令二、redis 设置键的生存时间或过期时间三、SortSet 排序集合类型操作四、查看中文五、密码设置和查看密码的方法六、关于 Redis 的 database 相关基础七、查看内存占用 一、基本命令 # 查看版本 redis-cli --version 结果:redis-cli 8.0.0red…...

ROS2:自定义接口文件(无废话)

目录 一、ROS2接口文件定义二、创建接口文件步骤三、验证是否创建成功,以及自定义接口文件的使用 一、ROS2接口文件定义 ROS2中接口文件的格式根据通信的类型可以分为三种: 话题通信:.msg文件 常用格式为:[消息类型] 消息名称 #话…...

如何配置 VScode 断点调试Linux 工程代码

1、Windowns 安装WSL 环境 2、VSCode 中 安装 Romote-SSH扩展,进行连接到WSL下的Linux 环境 安装Romote-SSH成功后,在左下角显示 , 点击此图标 出现 “连接到WSL”, 进行连接 显示,则表明链接成功 3、 VSCode 安装 C/C扩展的调试…...

tinyrenderer笔记(Phong光照模型)

tinyrenderer个人代码仓库:tinyrenderer个人练习代码 前言 在前面的渲染中,我们读取模型的 diffuse 纹理,然后根据法线计算模型的颜色。这次我们引入一种新的光照模型—— Phong 光照模型,Phong 光照模型将光照分为了三类&#x…...

Twin Builder 中的电池等效电路模型仿真

电池单元热设计挑战 电池热管理的主要挑战之一是确保温度低于最大工作限值。较高的温度会导致效率降低、加速老化和潜在的安全隐患。工程师必须了解电池产生的热量,才能充分设计冷却系统。 了解和预测电池模块的热行为需要将电池的热损耗与电池单元的电气机械特性…...

SQLark可以支持PostgreSQL了,有哪些新功能?

SQLark(百灵连接)是一款国产的数据库开发和管理工具,用于快速查询、创建和管理不同类型的数据库系统,支持达梦、Oracle 和 MySQL 数据库。 最新发布的 SQLark V3.4 版本新增了对 PostgreSQL 数据库的支持。我试用了一下&#xff…...

Redis 7.0中5种新特性及实战应用

Redis 7.0引入了多项革命性的新特性,不仅在性能和可靠性方面有所提升,更在功能和使用体验上有了质的飞跃。本文将介绍Redis 7.0的五大关键新特性,可以根据实际情况利用Redis 7.0的强大功能,构建更高效、更可靠的应用系统。 特性一…...

游戏如何应对AssetStudio解包工具

「游戏解包」是指将游戏文件中被压缩或加密的资源提取出来,通过解包工具对资源进行修改、查看或导出。这个过程通常涉及到将游戏客户端中的数据包进行解压,故称为“解包”。 游戏的资源文件包含代码、图片、视频、音频等重要内容。一旦被解密&#xff0…...

UE5 渲染思路笔记(角色)

参考示例 首先是怎么做到辉光只有部分有而整体没有的 使用的是Bloom内的阈值,控制光的溢光量 Threshold(阈值):这个参数决定了图像中哪些像素会参与泛光计算。只有那些亮度超过阈值的像素才会触发泛光效果。阈值越低,更多的像素会…...

Sublime Text快速搭建Lua语言运行环境

第一步 先去Sublime Text官网下载安装 Sublime Text - Text Editing, Done Right 第二步 下载lua编译运行程序 Lua - Joe DFs Builds 第三步 在Sublime Text中配置lua运行环境 {"cmd": ["D:/Lua/lua.exe", "$file"], "file_regex"…...

提示词的 嵌入空间优化

提示词的 嵌入空间优化 提示词的 嵌入空间优化的定义 提示词的嵌入空间优化,是指通过技术手段**调整提示词在低维向量空间(嵌入空间)**中的表示,使其更精准地捕捉语义信息、增强语义关联性,或适配特定任务需求,从而提升模型(如大语言模型)对提示词的理解与处理效果。…...

STM32--GPIO

教程 视频 博主教程 STM32系统结构图 GPIO GPIO(General Purpose Input/Output)是STM32内部的一种外设。 一个STM32芯片内存在多个GPIO外设,每个GPIO外设有16个引脚; 比如GPIOA:PA0~PA15; GPIOB:PB0~…...

npm下载插件无法更新package.json和package-lock.json文件的解决办法

经过多番查证,使用npm config ls查看相关配置等方式,最后发现全局的.npmrc文件的配置多写了globaltrue,去掉就好了 如果参数很多,不知道是哪个参数引起的,先只保留registryhttp://xxx/,试试下载&#xff0…...

ABAQUS三维CT重建插件CT2Model3D V2版本

插件介绍 CT2Model 3D V2.0插件采用Python 3.10研发,适配2024及以上版本的Abaqus软件,具备在Abaqus平台中基于CT断层扫描图像的三维重建功能,插件支持批量导入tif、tiff、png、jpg等格式的图像文件,推动了数字化建模技术与有限元…...

导入飞帆的网页为组件并注入数据驱动

飞帆制作的网页可以作为 Vue 2 组件导入到你自己的网页中使用。 这里我们来试一下。 并且将数据传入这个组件,驱动里面的仪表盘控件。 https://andi.cn/page/622177.html...

C语言的重要知识点☞static关键字

static译为"静态的",该关键字可以修饰以下内容: 修饰局部变量修饰全局变量修饰函数 在讲解static的具体作用前需要先知道"作用域"以及"生命周期"的概念: 作用域: 作用域是一个程序设计概念&#…...

unordered_map和unordered_set的设计

#pragma once #include"HashTable.h" namespace aqc {template<class K,class V,class HashHashFunc<K>>class unordered_map{public:struct MapKeyOfT{const K& operator()(const pair<K, V>& kv)//pair对象是const返回值也得是const{ret…...

Servlet--快速入门及HTTP概述

Servlet概述 Servlet&#xff1a;server applet,是用Java编写的服务器端程序&#xff0c;其主要功能在于交互式的浏览和修改数据,生成动态web内容,一般来说,Servlet是指实现了这个Servlet接口的类 在Java中&#xff0c;Servlet是用于创建动态Web内容的服务器端组件。 Servle…...

【LeetCode Hot100 | 每日刷题】二叉树的层序遍历

题目&#xff1a; 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]]示例 2&a…...

编码器型与解码器型语言模型的比较

编码器型与解码器型语言模型的比较 1. 引言 自然语言处理&#xff08;NLP&#xff09;领域近年来取得了革命性进展&#xff0c;这在很大程度上归功于基于Transformer架构的语言模型。在这一技术生态中&#xff0c;编码器型&#xff08;Encoder-only&#xff09;和解码器型&am…...

Java 函数式编程

函数式编程的意义 函数式编程理念强调函数纯粹性和不可变性&#xff0c;这有助于写出更稳定、更易测试的代码&#xff0c;尤其在并发环境下减少 bug lambda 表达式 import java.util.function.Function;public class Strategize {Function<String, String> getString …...

MySQL初阶:基础增删改查(CRUD)

创建&#xff08;Create&#xff09; 先创建一个表 1&#xff09;单独插入一条 insert into 表名 values &#xff08;列名 类型&#xff09;...&#xff1b; 插入的记录要和表一开始创建记录的类型&#xff0c;个数&#xff0c;结构一样。 如果不一样&#xff0c;就会报错。…...

yolo训练用的数据集的数据结构

Football Players Detection using YOLOV11 可以在roboflow上标注 Sign in to Roboflow 训练数据集只看这个data.yaml 里面是train的image地址和classnames 每个image一一对应一个label 第一个位是分类&#xff0c;0是classnames[0]对应的物体&#xff0c;现在是cuboid &…...

vue3+ts继续学习

我们再写点东西&#xff0c;这里面都是vue2的语法&#xff0c;应该都能看明白&#xff01;我们写完直接去运行一下代码&#xff01; 发现什么都没有发生&#xff01;为什么呢&#xff1f;因为我们在App.vue中没有引入&#xff01;哈哈哈哈&#xff01;这样就好了&#xff01;注…...

Oracle01-入门

零、文章目录 Oracle01-入门 1、Oracle简介 &#xff08;1&#xff09;数据库基础 数据库基础请参考&#xff1a;https://blog.csdn.net/liyou123456789/article/details/131207068 &#xff08;2&#xff09;Oracle是什么 ORACLE 数据库系统是美国 ORACLE 公司&#xff…...

即开即用,封装 Flask 项目为 exe 文件实操步骤

见字如面&#xff0c;朋友们&#xff01; 嗨&#xff0c;这里是 AIGC 创意人_竹相左边&#xff01; 正如你们所知&#xff0c;我正在通过 AI 自学软硬件工程师&#xff0c;目标是手搓一台可回收火箭玩具&#xff01; 最近&#xff0c;我被《流浪地球 2》中马兆的那句“没有硬…...

【STM32单片机】#14 PWR电源控制

主要参考学习资料&#xff1a; B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接&#xff1a;https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装&#xff1a;STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 目录 PWR…...

FastComposer论文问题与解决

在FastComposer中&#xff0c;跨注意力定位监督&#xff08;Cross-Attention Localization Supervision&#xff09; 的实现是通过以下步骤完成的&#xff0c;核心思想是利用分割掩码约束扩散模型中跨注意力图的分布&#xff0c;确保每个主体的特征仅影响图像中对应的区域。具体…...

51单片机同一个timer 作为定时器和波特率发生器么?

在51单片机中&#xff0c;同一个Timer&#xff08;定时器&#xff09;不能同时作为普通定时器和波特率发生器。这是因为这两种功能都需要对Timer的寄存器进行配置和操作&#xff0c;而它们的配置要求是冲突的。具体来说&#xff1a; 1. 普通定时器功能 配置要求&#xff1a;需…...

爱情的本质是什么--deepseek

爱情的本质是一个跨越生物学、心理学、哲学和社会学的复杂命题。不同学科视角下&#xff0c;爱情呈现出多层次的真相&#xff0c;但核心可以归结为&#xff1a; “爱情是进化塑造的生存策略、神经化学的短暂狂欢&#xff0c;以及人类对抗存在孤独的精神创造。” 以下从四个维…...

Leetcode 刷题记录 07 —— 链表

本系列为笔者的 Leetcode 刷题记录&#xff0c;顺序为 Hot 100 题官方顺序&#xff0c;根据标签命名&#xff0c;记录笔者总结的做题思路&#xff0c;附部分代码解释和疑问解答。 01 相交链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* …...

Android View#post()源码分析

文章目录 Android View#post()源码分析概述onCreate和onResume不能获取View的宽高post可以获取View的宽高总结 Android View#post()源码分析 概述 在 Activity 中&#xff0c;在 onCreate() 和 onResume() 中是无法获取 View 的宽高&#xff0c;可以通过 View#post() 获取 Vi…...

dubbo限流

单机限流 限流过滤器 package com.doudou.filter;import org.apache.dubbo.common.URL; import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.extension.Activate; import org.apache.dubbo.rpc.*;import java.util.concurrent.Concu…...

IBM BAW(原BPM升级版)使用教程:基本概念

本部分为“IBM BAW&#xff08;原BPM升级版&#xff09;使用教程系列”内容的补充。 一、IBM BAW中的流程概念 在IBM Business Automation Workflow&#xff08;BAW&#xff09;中&#xff0c;流程定义是流程设计的核心组成部分&#xff0c;它涵盖了流程的结构、任务、数据流…...

1. 视频基础知识

1. 图像基础概念 像素&#xff1a;像素是一个图片的基本单位&#xff0c;pix是英语单词picture&#xff0c;加上英语单词“元素element”&#xff0c;就得到了pixel&#xff0c;简称px。所以“像素”有“图像元素”之意。分辨率&#xff1a;指的是图像的大小或者尺寸。比如 19…...

docker + K3S + Jenkins + Harbor自动化部署

最近公司在研究自动化部署的一套流程&#xff0c;下面记录一下配置流程 需要提前准备好Jenkins Harbor Git(其他管理工具也可以) 我这里的打包编译流程是Jenkins上配置打包任务-->自动到git目录下找打包文件---->项目编译后打镜像包------>打完镜像包将镜像上传到…...

【算法专题十】哈希表

文章目录 0.哈希表简介1. 两数之和1.1 题目1.2 思路1.3 代码 2.判断是否为字符重排2.1 题目2.2 思路2.3 代码 3. leetcode.217.存在重复元素3.1 题目3.2 思路3.3 代码 4. leetcode.219.存在重复的元素Ⅱ4.1 题目4.2 思路4.3 代码 5. leetcode.49.字母异位词分组5.1 题目5.2 思路…...

鸿蒙系统被抹黑的深层解析:技术、商业与地缘政治的复杂博弈-优雅草卓伊凡

鸿蒙系统被抹黑的深层解析&#xff1a;技术、商业与地缘政治的复杂博弈-优雅草卓伊凡 一、技术过渡期的必然误解 1.1 兼容性设计的双刃剑效应 鸿蒙系统早期版本的兼容性策略为后续争议埋下了伏笔。2019年华为被列入实体清单后&#xff0c;面临着生死存亡的技术断供危机。在这…...

Nginx 安全防护与 HTTPS 安全部署

目录 Nginx 安全防护与 HTTPS 安全部署 一、引言 二、Nginx 安全防护措施 2.1 关闭不必要的服务和端口 2.2 限制访问频率 2.3 防止 SQL 注入和 XSS 攻击 2.4 隐藏 Nginx 版本信息 三、HTTPS 安全部署 3.1 HTTPS 简介 3.2 申请 SSL/TLS 证书 3.3 配置 Nginx 启用 HTTP…...