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

章节一、认识three.js与开发环境学习笔记01;

一、如何学习WEB可视化3D技术与课程内容演示;

1、项目案例:

       政府有大量的新基建的项目:如数字孪生、智慧城市、智慧园区、智慧工厂、智慧消防等等都涉及了3d的可视化技术;

2、如何系统的学号WEB 3D可视化技术?

       three.js是一个让用户通过javascript入手进入搭建webgl项目的类库;

       学习webgl需要图形学的知识,而webgl需要通过学习 js 和 glsl 两种语言;

        直接使用webgl需要的话,那么势必是从底层写起来,那这个时候必须全面的去了解 着色器 的语法,那么自己需要去编写 顶点着色器 和 片元着色器;

 3、如何开始学习three.js?

        需要掌握:threejs里面的基本概念:点、线、面、几何体;
        需要掌握:材质物体、场景、相机、渲染器、动画、控制器;

        需要了解:pbr(pbr是基于物理的光照原理的渲染)、环境贴图、凹凸贴图、置换贴图、放射光、环境贴图、金属贴图、粗糙度贴图;
        如何通过这些方式把光照的效果:类如石子的凹凸、门面的凹凸、仅仅通过一个平面也能够显示出凹凸不平的效果 以及 折射不同角度的光照效果;

        如何打造粒子?我们要绘制雨雪、落叶、星河;

        如何让我们的网页 跟我们的物体进行一个互动?如何选中场景中的物体进行交互?如何能够掌握物理引擎让物体有真实的物理效果?例如像:重力、反弹、摩擦力等物体这个相互作用,让它更加的真实?

4、如何系统学习WEBGL?

        进入webgl的魔力世界:掌握着色技术的语言控制,用gpu的方式来进行渲染;掌握threejs怎么用底层去封装webgl;
        如何通过着色器编写顶点着色器?如何通过着色器编写片元着色器?
        了解整个图像渲染的原理,去绘制比如 动态飘扬的旗帜、衣服、烟雾、乌云、波涛汹涌的大海、水纹等...
        掌握了着色器,我们就可以写出各种酷炫的效果:像节日的烟花。
        继续深入可以让整个场景进行后期的加工,例如说:可以打造出像生化危机里面闪烁的怪异的画面、一个带雪花的陈旧感的画面、编写着色器打造出水底观看的效果;

二、新增打造开放世界课程项目预览;

三、本地搭建three.js的官方网站;

1、Github下载three.js的代码;

       官网:github.com:mrdoob/three.js.git

       下载压缩包文件:Download ZIP

        解压文件后:npm install 

        启动项目:npm run dev

四、使用parcel搭建three.js的开发环境;

1、为什么使用parcel?

      代码自动补全;

       写完代码在浏览器中可以直接看到效果;

       极速配置、快速上手开发;

2、如何搭建parcel的开发环境?

       网址:parceljs.cn

// 01.项目初始化
npm init// 02.安装bunder
npm install parcel-bundler// 03.配置命令
{"scripts" : {// 打包哪个文件"dev" : "parcel src/index.html",// 项目构建"build" : "parcel build src/index.html"}
}// 04.设置开发环境的依赖
npm install parcel-bundler --save-dev

3、安装Three.js的依赖

// 安装threejs的环境包依赖
npm install three --save

五、使用three.js渲染第一个场景和物体;

import * as THREE from 'three';console.log(THREE)// 目标:了解three.js最基本的内容// 一、创建场景
const scene = new THREE.Scene();// 二、创建相机(透视相机)
/*** fov    摄像机是椎体垂直视野角度* aspect 摄像机视椎体宽高比* near   摄像机视椎体近端面* far    摄像机视椎体远端面*/
const camera = new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,0.1,1000
);// 2.1.设置相机位置
camera.position.set(0,0,10);// 2.2.场景中添加相机
scene.add(camera);// 三、场景中添加物体
// 3.1.创建几何体对象
const cubeGeometry = new THREE.BoxGeometry(1,1,1);// 3.2.设置几何体的材质
const cubeMaterial = new THREE.MeshBasicMaterial({color : 0xffff000})// 3.3.根据几何体的材质创建物体
const cube = new THREE.Mesh(cubeGeometry , cubeMaterial);// 3.4.将几何体添加到场景当中
scene.add(cube);// 四、初始化渲染器
// 4.1.初始化渲染器
const renderer = new THREE.WebGLRenderer();// 4.2.设置渲染的尺寸和大小,和屏幕的尺寸大小一致
renderer.setSize(window.innerWidth, window.innerHeight);console.log(renderer);// 五、将webgl渲染的canvas内容添加至body
document.body.appendChild(renderer.domElement);// 六、使用渲染器通过相机将场景渲染进来
renderer.render(scene,camera);

六、如何处理运行搭建开发Three环境出现的问题;

七、结合vue开发three.js;

1、用vue搭建THREE的开发环境;

// 01.全局安装VUE-CLI环境
npm install -g @vue/cli// 02.创建vue项目,选择vue3版本
vue create threeapp?  Your connection to the default yarn registry seems to be slow.Use https://registry.npmmirror.com for faster installation? YesVue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel
? Choose a version of Vue.js that you want to start the project with 3.x
? Where do you prefer placing config for Babel, ESLint, etc.? In dedicated config files
? Save this as a preset for future projects? No
? Pick the package manager to use when installing dependencies: Yarn// 03.安装THREE的依赖
cd /threeapp
yarn add three// 04.启动环境
yarn serve

2、修改App.vue的文件;

<template><div></div>
</template><script setup>import * as THREE from 'three';console.log(THREE)// 目标:了解three.js最基本的内容// 一、创建场景const scene = new THREE.Scene();// 二、创建相机(透视相机)/*** fov    摄像机是椎体垂直视野角度* aspect 摄像机视椎体宽高比* near   摄像机视椎体近端面* far    摄像机视椎体远端面*/const camera = new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,0.1,1000);// 2.1.设置相机位置camera.position.set(0,0,10);// 2.2.场景中添加相机scene.add(camera);// 三、场景中添加物体// 3.1.创建几何体对象const cubeGeometry = new THREE.BoxGeometry(1,1,1);// 3.2.设置几何体的材质const cubeMaterial = new THREE.MeshBasicMaterial({color : 0xffff000})// 3.3.根据几何体的材质创建物体const cube = new THREE.Mesh(cubeGeometry , cubeMaterial);// 3.4.将几何体添加到场景当中scene.add(cube);// 四、初始化渲染器// 4.1.初始化渲染器const renderer = new THREE.WebGLRenderer();// 4.2.设置渲染的尺寸和大小,和屏幕的尺寸大小一致renderer.setSize(window.innerWidth, window.innerHeight);console.log(renderer);// 五、将webgl渲染的canvas内容添加至bodydocument.body.appendChild(renderer.domElement);// 六、使用渲染器通过相机将场景渲染进来renderer.render(scene,camera);</script><style>
* {margin: 0;padding: 0;box-sizing: border-box;
}
canvas {width: 100vw;height: 100vh;postion: fixed;left:0;top:0;
}</style>

注:本文为THREEJS的学习笔记,不涉及商业盈利,如原作者认为有涉及原课程的侵权行为,请联系我删文处理!!! 

相关文章:

章节一、认识three.js与开发环境学习笔记01;

一、如何学习WEB可视化3D技术与课程内容演示&#xff1b; 1、项目案例&#xff1a; 政府有大量的新基建的项目&#xff1a;如数字孪生、智慧城市、智慧园区、智慧工厂、智慧消防等等都涉及了3d的可视化技术&#xff1b; 2、如何系统的学号WEB 3D可视化技术&#xff1f; three…...

QT摄像头采集

主界面为显示框&#xff0c;两个下拉框&#xff0c;一个是所有相机&#xff0c;一个是相机支持的分辨率 系统根据UI界面自动生成的部分不再描述&#xff0c;以下为其他部分源码 widget.h #include <QWidget> #include <QMouseEvent> class QCamera; class QCamer…...

C语言第三十四弹---动态内存管理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 动态内存管理 1、动态内存经典笔试题分析 1.1、题目1 1.2、题目2 1.3、题目3 1.4、题目4 2、柔性数组 2.1、柔性数组的特点 2.2、柔性数组的使用 2.3、…...

PDN分析及应用系列二-简单5V电源分配-Altium Designer仿真分析-AD

PDN分析及应用系列二 —— 案例1:简单5V电源分配 预模拟DC网络识别 当最初为PCB设计打开PDN分析仪时,它将尝试根据公共电源网络命名法从设计中识别所有直流电源网络。 正确的DC网络识别对于获得最准确的模拟结果非常重要。 在示例项目中已经识别出主DC网络以简化该过程。 …...

Vue开发实例(一)Vue环境搭建第一个项目

Vue环境搭建&第一个项目 一、环境搭建二、安装Vue脚手架三、创建Vue项目 一、环境搭建 下载方式从官网下载&#xff1a;http://nodejs.cn/download/ 建议下载v12.16.0版本以上的&#xff0c;因为版本低无法创建Vue的脚手架 检验是否安装成功 配置环境变量 新增NODE_HOME&…...

将SpringBoot项目改造成solon项目

solon项目介绍 官网 Java “生态型”应用开发框架&#xff1a;更快、更小、更简单。 启动快 5 &#xff5e; 10 倍&#xff1b;并发高 2&#xff5e; 3 倍&#xff1b; 内存省 1/3 ~ 1/2&#xff1b;打包缩到 1/2 ~ 1/10&#xff1b;同时支持 java8, java11, java17, java21&a…...

更详细的软件测试理论基础:流程,开发、测试模型,测试分类,测试用例及其设计方法,缺陷

文章目录 一、测试流程二、开发模型1、 瀑布模型2、增量模型3、快速模型4、其他 三、测试模型1、V模型2、W模型 四、测试分类五、测试用例 test case六、测试用例设计方法1、等价类划分法2、边界值分析法3、因果图法4、判定表法5、正交法6、场景法7、流程分析法8、错误推测法方…...

input css padding

这样控件会跑出外套控件在HTML JSP里面是经常出现的。但有些外国adobe的as控件不存在这种情况&#xff0c;这是因为内层控件定义的时候不能超出外层控件的范围。 修改下&#xff1a;去掉原来css padding&#xff0c;然后加上宽度和高度...

如何打印 springboot 框架中 接收请求的日志

在 Spring Boot 框架中&#xff0c;您可以使用日志来记录接收请求和发送响应的详细信息。Spring Boot 默认使用 SLF4J&#xff08;Simple Logging Facade for Java&#xff09;作为日志抽象层&#xff0c;并支持多种日志实现&#xff0c;如 Logback、Log4j2 等。以下是一种常见…...

JVM的内存区域划分

JVM即Java虚拟机&#xff0c;是Java实现跨平台交互能力的核心&#xff0c;Java编译后的.class文件&#xff0c;就是通过虚拟机和操作系统进行交互的&#xff1b; 常见的虚拟机有&#xff1a;JVM、VMwave、Virtual Box&#xff0c;目前最主流使用的JVM是HotSpot VM&#xff1b;…...

YOLOv9有效改进|使用动态蛇形卷积Dynamic Snake Convolution

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、改进点介绍 使用ICCV2023中的动态蛇形卷积替换YOLOv9网络中的Conv模块。 二、Dynamic Snake Convolution模块详解 2.1 模块简介 应用场景&#x…...

设计模式学习笔记 - 设计原则 - 1.单一职责原则

前言 前面我们提到过 SOLID 原则&#xff0c;实际上 SOLID 由 5 个设计原则组成&#xff0c;分别是&#xff1a;单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖反转原则。它们分别对应 SLOID 中的 S、O、L、I、D 这 5 个英文字母。 今天来学习下 SOLID 原则中的第…...

飞天使-学以致用-devops知识点4-SpringBoot项目CICD实现(实验失败,了解大概流程)

文章目录 代码准备创建jenkins 任务测试推送使用项目里面的jenkinsfile 进行升级操作 文字版本流程项目构建 代码准备 推送代码到gitlab 代码去叩叮狼教育找 k8s 创建jenkins 任务 创建一个k8s-cicd-demo 流水线任务 将jenkins 里面构建时候的地址还有token&#xff0c; 给到…...

使用HTML5画布(Canvas)模拟图层(Layers)效果

使用HTML5画布&#xff08;Canvas&#xff09;模拟图层&#xff08;Layers&#xff09;效果 在图形处理和计算机图形学中&#xff0c;图层&#xff08;Layers&#xff09;是指将图像分成不同的可独立编辑、组合和控制的部分的技术或概念。每个图层都可以包含不同的图形元素、效…...

违背祖训,微软骚操作强制用户更新至 Win 11 23H2

话说&#xff0c;大伙儿有让 Windows 操作系统一直保持最新版习惯吗&#xff1f; 根据以往惯例&#xff0c;Windows 系统更新是个比较玄学的存在&#xff0c;谁也不能保证随手更新后会不会出现什么奇葩 Bug。 因此对于不少同学来说&#xff0c;Windows 更新到一个稳定版本后&a…...

MISRA C++ 2023指南:您需要了解的一切

MISRA C 2023可以帮助使用现代C语言的组织开发安全关键型软件。使用新的MISRA标准&#xff0c;开发人员可以通过确保和记录其软件应用程序的MISRA合规性&#xff0c;满足IEC 6108或ISO 26262等功能安全标准给出的静态分析要求。 什么是MISRA C2023? 以便使用C17进行安全可靠…...

Vue:【亲测可用】父组件数组包对象,传给子组件对象,子组件修改属性(字段)后,父组件没有更新

场景&#xff1a;vue中父组件数组包对象&#xff0c;传给子组件对象&#xff0c;子组件修改属性&#xff08;字段&#xff09;后&#xff0c;父组件没有更新 代码&#xff1a; # 父组件 <div v-for"(object, name, index) in arr" :key"index"><…...

hbase学习十:客户端实现与Meta表解析

1、客户端实现 hbase社区的客户端一般是java客户端。 HBase也支持Shell交互式客户端。Shell客户端实质是用JRuby(用Java编写的Ruby解释器,方便Ruby脚本跑在JVM虚拟机上)脚本调用官方HBase客户端来实现的。因此,各种客户端的核心实现都在社区Java版本客户端上。 客户端访…...

《OpenScene: 3D Scene Understanding with Open Vocabularies》阅读笔记1

传统的3D场景理解方法依赖于带标签的3D数据集,用于训练一个模型以进行单一任务的监督学习。我们提出了OpenScene,一种替代方法,其中模型在CLIP特征空间中预测与文本和图像像素共同嵌入的3D场景点的密集特征。这种零样本方法实现了与任务无关的训练和开放词汇查询。例如,为了…...

数据结构 - Trie树(字符串统计、最大异或对)

文章目录 前言Part 1&#xff1a;Trie字符串统计1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 Part 2&#xff1a;最大异或对1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 前言 本篇博客将介绍Trie树的常见应用&#xff0c;包括&#xff1a;Trie…...

量子计算硬件指纹识别:从噪声特性到设备认证

1. 量子计算中的硬件指纹识别&#xff1a;从错误校正到设备认证量子计算机的噪声特性一直被视为阻碍其可靠运行的主要障碍。但有趣的是&#xff0c;这些看似有害的噪声特征&#xff0c;实际上可能成为每台量子设备的"身份证"。就像人类的指纹具有唯一性一样&#xff…...

5分钟上手!Linux用户必备的Apple Emoji字体安装教程

5分钟上手&#xff01;Linux用户必备的Apple Emoji字体安装教程 【免费下载链接】apple-emoji-ttf Brings Apples vibrant color emojis to Linux, Windows, and the Web 项目地址: https://gitcode.com/gh_mirrors/ap/apple-emoji-ttf apple-emoji-ttf项目能够为Linux和…...

用Python和Nuscenes数据集,手把手教你搞懂自动驾驶的6大坐标系转换

用Python和Nuscenes数据集实战自动驾驶6大坐标系转换第一次接触自动驾驶感知系统时&#xff0c;最让人头疼的莫过于各种坐标系之间的转换关系。记得去年参与一个多传感器融合项目时&#xff0c;团队花了整整两周时间调试坐标系对齐问题——雷达检测到的行人位置总是比摄像头看到…...

我突然发现了一个道理,这个什么烂人都有,哪怕你随便说句没啥贬低的中性的话,人家也可以给你找出话来说你,你说这个社会搞笑不?这就是社会大了,什么鸟人都有的缘故了

你这个感受,其实很多人在进入社会、尤其进入婚姻和复杂人际关系后,都会慢慢体会到。 确实有一类人会: 对别人特别敏感 喜欢挑话里的刺 默认别人有恶意 很容易上纲上线 把中性话也理解成冒犯 你会发现: 同一句话,正常人听完没感觉; 有的人却能立刻开始不爽、挑理、发…...

ChatGPT融资路演PPT全链路复盘:从技术叙事到估值锚点,98%初创团队忽略的3个合规雷区与2套可复用话术模板

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT融资路演PPT全链路复盘&#xff1a;从技术叙事到估值锚点 在2023年OpenAI面向核心投资者的闭门路演中&#xff0c;其PPT并非简单罗列产品功能&#xff0c;而是一套高度结构化的价值传递系统——…...

Codeforces Round 1058

【实况】Codeforces Round 1058 (Div. 2)&#xff08;rk3194;perf1423;solve3&#xff09; https://www.bilibili.com/video/BV1Tv4GzwE5r/ 【赛时3/7】Codeforces Round 1058(Div.2)上1000了记录一下 https://www.bilibili.com/video/BV1BC4kzMEoa/ Codeforces Round 1058 (Di…...

DeepSeek总结的clickhousectl v0.2.0: Postgres, ClickPipes 等更多功能

来源&#xff1a;https://clickhouse.com/blog/clickhousectl-v0-2-0-postgres-clickpipes-more clickhousectl v0.2.0: Postgres, ClickPipes 等更多功能 作者: Al Brown 日期: 2026年5月20日 阅读时间: 7分钟 我们发布了 clickhousectl v0.2.0。此版本增加了对 Postgres&…...

日志留存不合规?审计追溯难定位?DeepSeek 3.2+审计日志的4层加密+时间戳锚定机制,立即规避等保2.0扣分风险

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek审计日志功能全景概览 DeepSeek审计日志是企业级AI平台中保障合规性、可追溯性与安全治理的核心能力。它系统性地记录模型调用、权限变更、配置更新、数据访问等关键行为&#xff0c;支持毫秒级…...

【信息科学与工程学】计算机科学与自动化 ——第六十五篇 虚拟化/MIG 系列02

编号 类型 领域 虚拟化/MIG模式 算法名称 算法逐步推理思考的数学方程式及参数/常量/向量/常数/数字/数值列表 算法的时序数学方程式 关联知识 401 性能优化 GPU虚拟化+容器 MIG+容器 基于GPU内存带宽隔离的容器化AI训练任务调度算法 1. 带宽模型:每个MIG实例带宽…...

93、【Agent】【OpenCode】edit 工具提示词(二)

【声明】本博客所有内容均为个人业余时间创作&#xff0c;所述技术案例均来自公开开源项目&#xff08;如Github&#xff0c;Apache基金会&#xff09;&#xff0c;不涉及任何企业机密或未公开技术&#xff0c;如有侵权请联系删除 背景 上篇 blog 【Agent】【OpenCode】edit 工…...