Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(三)

news2024/9/22 23:24:14

 Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(三)

本篇目录:

六、完整构建整个[旋转的精灵女孩]实例

(1)、新建、启动webGL工程空间

(2)、构建项目的目录层次结构

(2.1)新建文件夹和文件的方法

(2.2)上传文件的方法

(2.3)下载【旋转的精灵女孩】资源包

(2.4)完整构建好实例需要的目录层次结构

七、运行webGL工程项目

(1)、打开集成终端

(2)、初始化webGL工程运行环境

(3)、安装live-server服务的依赖

(4)、启动服务的方法


六、完整构建整个[旋转的精灵女孩]实例

  每个人的电脑配置都不同,为免因配置不同而造成构建整个[旋转的精灵女孩]实例失败,建议学习测试时都使用同一个工作环境。本例在CSDN云IDE上构建测试成功。

使用CSDN云IDE点击此处(免费试用) 

【CSDN云IDE】详细操作教程(python、webGL方向)

(1)、新建、启动webGL工程空间

点击【新建工作空间】

进入以下页面:

(1.1)、在这里需要填入工作空间名字,填写你的工作空间名字。我个人填的是【threejs练习作品】。

(1.2)、选择预置环境,就是你所需要的云开发环境,目前支持JAVA、Python、Springboot、NodeJS、CNOCR、All in One。我个人选择是【All in one】(也可选择NodeJS)。

(1.3)、规格配置,也就是选择开发环境的云服务的配置,目前CIDE试用只支持标准型2CPU4GB的配置,因此这里【默认】即可。

(1.4)、代码来源,也就是你的代码仓库。

  如果你选的是仓库地址,那请输入你需要的Git仓库地址,云IDE会自动给你clone好代码,并且安装依赖。HTTPS只能克隆公开仓库,请确保已经添加了SSH公钥,否则可能无法导入代码。

  我这里选择的是【空】

(1.5)、点击确定创建,工作空间就创建好了。

这时页面会跳转回云IDE首页

 点击所建立的工作空间右侧的【启动】按钮,可以启动工作空间

如果有事忙,想等会再用IDE,可以先回到云IDE首页,按右侧的【终止】按钮,将云IDE停止,这时会停止消耗计时(免费时间是2000核时,请合理安排好学习时间)。

启动工作空间,进入工作环境。

(2)、构建项目的目录层次结构

(2.1)新建文件夹和文件的方法

(a)、新建文件夹方法:

①、选中左侧的资源管理器

②、在出现的菜单中选择工作区workspace

③、点击右侧的新建文件夹符号

④、输入文件夹名称

(b)、新建文件方法:

①、选中左侧的资源管理器

②、在出现的菜单中选择工作区workspace

③、点击右侧的新建文件符号

④、输入文件名称

⑤、或者选中已经建立好的文件夹,右键点击,在出现的菜单里选择【新建文件】

 (c)、在文件夹下建立子文件夹的方法

①、选好父级目录,选中,这时目录结构下面会出现一条下划线,例如选中AdversityAwake目录下的threejs目录,threejs目录名显示成:threejs

②、点击新建文件夹菜单,出现输入框,输入目录名css

③、在threejs目录下建立css目录

此时所建立的css目录结构层次为:

(2.2)上传文件的方法

①、选好需要上传资料的目录,选中,这时目录结构下面会出现一条下划线。

②、右键点击,在出现的菜单里选择【上传】,此时会打开文件选择窗口,选中自己想要上传到该目录下的文件,确定后即可将文件传到目录中。

(2.3)下载【旋转的精灵女孩】资源包

点击下载【旋转的精灵女孩】完整资源包(包括整套所有的源代码和模型),压缩包是rar格式。

(我设的是免费下载)

(a)、【旋转的精灵女孩】完整源代码资源包(含node打包的node_modules目录,所有加起来共1301个文件,341个文件夹)

(b)、【旋转的精灵女孩】完整源代码资源包(极简版,所有加起来共16个文件,13个文件夹),此版本按我文章中的介绍步骤操作,初始化相关的工程运行环境,安装服务依赖,即会自动生成node_modules目录。

大家下载资源包(.rar格式的压缩包)后,解压,然后按我文章中的目录层次,将资源和源代码部署到CSDN云IDE上,运行即可看到文中所述的动画特效展示效果。如果你在本机有相应的开发环境和服务,直接运行亦能看到同样效果。

请下载后自行查杀毒,注意网络使用安全!请下载后自行查杀毒,注意网络使用安全!请下载后自行查杀毒,注意网络使用安全!

 

(2.4)完整构建好实例需要的目录层次结构

请一定要按下面介绍的目录层次建立好工程结构,否则会因相对地址不对而出错无法正常展示three.js动画效果。

 AdversityAwake目录下
threejs目录下有五个子目录:threejs、build、css、images、list、node_modules

build目录下有3个js文件: three.js、three.min.js、three.module.js

css目录下有1个main1.css文件

 

images目录下有title目录,title目录下有一个1个girl.gif文件

 

list目录下有girl目录,girl目录下有css目录、jsm目录(内有loaders子目录)、models目录(内有girl子目录)

node_modules目录下有若干子目录,不用管,按下面操作系统会自动生成

请一定要下载【旋转的精灵女孩】资源包(我设的是免费下载)再运行项目,否则会报错和无法正常显示效果。

其中,index.html文件代码:

<html>
<head>
    <meta http-equiv=Content-Type content="text/html; charset=utf-8">
    <title> 逆境清醒Three.js实例详解___旋转的精灵女孩</title>
    <meta name=somewebGL content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
    <meta name="description" content="逆境清醒threejs练习作品——旋转的精灵女孩">
    <meta name="keywords" content="逆境清醒,three.js,webgl,旋转的精灵女孩">
</head>
<body>
	<div class=WordSection1>
		<table align="center" width="800">
			<tr align="center">
				<td align="center"><a href="list/girl/girl.html" target="_blank"><img src="images/title/girl.gif"></a></td>
			</tr>
			<tr align="center">
				<td align="center"><a href="list/girl/girl.html" target="_blank">旋转中的精灵女孩</a></td>
			</tr>
		</table>
	</div>
</body>

</html>

主体的girl.html文件源代码:

<!DOCTYPE html>
<html>
<head>
	<title>逆境清醒Three.js实例详解__旋转中的精灵女孩</title>
     <meta http-equiv=Content-Type content="text/html; charset=utf-8">
	<meta name="webgl小例子" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
     <meta name="description" content="逆境清醒threejs练习作品——旋转的精灵女孩">
     <meta name="keywords" content="逆境清醒,three.js,webgl,旋转的精灵女孩">
	<link type="text/css" rel="stylesheet" href="css/main1.css">
	<link rel="stylesheet" href="css/textstyle.css">
</head>
<body>
	<script type="importmap">
		{
			"imports": {
				"three": "../../build/three.module.js",
				"three/addons/": "./jsm/"
			}
		}
	</script>
 
	<script type="module">
 
		import * as THREE from 'three';
		//import { ColladaLoader } from 'three/addons/loaders/ColladaLoader.js';
		import { ColladaLoader } from 'three/addons/loaders/ColladaLoader.js';
		let container, stats, clock;
		let camera, scene, renderer, elf;
		//let 语句声明一个块级作用域的局部变量,并可以初始化为一个值(可选)。
 
 
		init();
		animate();
 
		function init() {
 			container = document.getElementById('container');
 			camera = new THREE.PerspectiveCamera(55, window.innerWidth / window.innerHeight, 0.1, 2000);
			camera.position.set(9, 6, 8);
 			camera.lookAt(0, 4, 0);
 
			scene = new THREE.Scene();
			clock = new THREE.Clock();
 
			// loading manager
 			const loadingManager = new THREE.LoadingManager(function () {
 				scene.add(elf);
 			});
 
			// collada
 			const loader = new ColladaLoader(loadingManager);
			loader.load('./models/girl/girl.dae', function (collada) {
 				elf = collada.scene;
 			});
 
			//
 			const ambientLight = new THREE.AmbientLight(0xcccccc, 0.4);
			scene.add(ambientLight);
 
			const directionalLight = new THREE.DirectionalLight(0xffffff, 0.8);
			directionalLight.position.set(1, 1, 0).normalize();
			scene.add(directionalLight);
			//平行光(DirectionalLight)
 
			renderer = new THREE.WebGLRenderer();
			renderer.outputEncoding = THREE.sRGBEncoding;
			renderer.setPixelRatio(window.devicePixelRatio);
			renderer.setSize(window.innerWidth, window.innerHeight);
			container.appendChild(renderer.domElement);
			renderer.setClearColor(0xffffff, 1.0);
 
			window.addEventListener('resize', onWindowResize);
 
		}
 
		function onWindowResize() {
 			camera.aspect = window.innerWidth / window.innerHeight;
			camera.updateProjectionMatrix();
 
			renderer.setSize(window.innerWidth, window.innerHeight);
 		}
 
		function animate() {
 			requestAnimationFrame(animate);
 			render();
 		}
 
		function render() {
 			const delta = clock.getDelta();
 			if (elf !== undefined) {
 				elf.rotation.z += delta * 0.8;
 			}
 			renderer.render(scene, camera);
 		}
 
	</script>
	<div id="container"></div>
	<div id="info"><div class="text">旋转中的精灵女孩 </div></div>
</body>
</html>

请一定要下载【旋转的精灵女孩】资源包(我设的是免费下载)再运行项目,否则会报错和无法正常显示效果。

七、运行webGL工程项目

(1)、打开集成终端

 选中index.html文件,右键点击,出现的菜单里选择”在集成终端中打开”

(2)、初始化webGL工程运行环境

  初始化package.json文件

  输入:npm init

按你自己需要填写
package name:(包名)
version:(版本)
description:(描述信息)
entry point:(入口点)
test command:(测试命令)
git repository:(Git 存储库)
keywords:(关键字)
author:(作者)
license:(许可证)

如果不想填写,可以直接回车跳过资料输入部分,

在Is this OK?(yes)选择 y

编辑package.json文件添加运行live-server服务的依赖:(如果已经添加,不用重复)

在"scripts"里添加:
"scripts": {
    "dev": "live-server",
  },

新增:
"dependencies": {
    "live-server": "^1.2.2"
  },

(3)、安装live-server服务的依赖

  在终端窗口中用命令行进行安装。

  如终端关闭了,可以点击菜单栏--终端--新建终端,会在底部打开一个面板,点击【终端】切换到终端。或按快捷键:Ctrl+Shift+` 打开终端

  修改一下npm的下载源(用淘宝镜像)

  输入:npm config set registry https://registry.npm.taobao.org

安装我们package.json中添加的server服务

输入:npm install

 安装成功的效果如下:

如果同一个项目重新install安装,会提示更新:

(4)、启动服务的方法

输入:npm run dev

如果出现下面信息,说明服务启动成功

这时会弹出发现端口的窗口:

选择:Cloud IDE中打开,(在云IDE中察看webGL工程预览效果)

  此时显示了webGL工程threejs目录内的情况:(请忽略model和node_modules两个目录,那是我后期建立的,前面忘了截此步骤的图)

  点击运行index.html文件,

预览窗口有(5秒、10秒、1分钟)刷新一次,和“不刷新” 几种选项,你可以按自己进行设置。


 

项目构建好以后,可以直接运行打开【旋转的精灵女孩】 Three.js实例。

方法:点击index.html文件,右键,出现菜单里选择:Cloud IDE中打开

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

      推荐阅读:

20

巴斯光年python turtle绘图__附源代码
19

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)
18

​​

​草莓熊python turtle绘图(玫瑰花版)附源代码

17

​​

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

16

​​

皮卡丘python turtle海龟绘图(电力球版)附源代码

15

​​

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

14

​​

草莓熊python turtle绘图(风车版)附源代码

13

​​

用代码过中秋,python海龟月饼你要不要尝一口?

12

​​

《 Python List 列表全实例详解系列》__系列总目录

11

​​

用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

10

​​

Python函数方法实例详解全集(更新中...)

9

​​

matplotlib 自带绘图样式效果展示速查(全)

8

​​

手机屏幕坏了____怎么把里面的资料导出(18种方法)

7

​​

2022年11月多家权威机构____编程语言排行榜__薪酬状况

6

​​

Python中Print()函数的用法___实例详解(全,例多)

5

​​

色彩颜色对照表(300种颜色)(16进制、RGB、CMYK、HSV、中英文名)

4

​​

Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

3

​​

Tomcat 启动闪退问题解决集(八大类详细)

2

​​

Tomcat端口配置(详细)

1

​​

Tomcat10 安装(Windows环境)(详细)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EVE-NG安装问题记录 重置root密码

目录EVE-NG安装问题记录 重置root密码一、下载iso安装虚拟机二、碰巧没安装成功EVE-NG组件&#xff0c;开启EVE-NG机后 root/eve默认密码不对。进不去系统。1、进入单用户模式重置root密码三、重新安装eve-ng组件EVE-NG安装问题记录 重置root密码 一、下载iso安装虚拟机 从官…

ssm+mysql实现进销存系统|仓库计算机专业毕业论文java毕业设计开题报告

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 《ssmmysql实现进销存系统》该项目采用技术&#xff1a;jsp springmvcspringmybatis cssjs等相关技术&#xff0c;项目含有源码、文档、配套开发软…

嵌入式软件开发知识点总结(二)中断Linux内核

【好文推荐】 路由选择协议——RIP协议 轻松学会linux下查看内存频率,内核函数,cpu频率 纯干货&#xff0c;linux内存管理——内存管理架构&#xff08;建议收藏&#xff09; 概述Linux内核驱动之GPIO子系统API接口 一篇长文叙述Linux内核虚拟地址空间的基本概括 中断 硬中断 …

应用开发这样做更节约成本!

现在app已逐渐取代网页端&#xff0c;成为一众手机用户的心头好。要想轻松拿下更多目标用户&#xff0c;开发一个属于自己的app显得尤为重要。那么&#xff0c;在应用开发方面&#xff0c;我们有什么妙招可以降低开发成本呢&#xff1f; 1、明确开发需求 做好我们的app定位&am…

【NumPy 数组索引、裁切,数据类型】

&#x1f935;‍♂️ 个人主页老虎也淘气 个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f44d;&#x1f3fb; 收藏…

6年测开经验,从功能测试到测试开发,我的每一步都经过了深思熟虑...

蓦然回首&#xff0c;软件测试风风雨雨的这几年&#xff0c;起初每天的工作只是鼠标点点点&#xff0c;我还真不知道怎么办&#xff0c;闲的时候真的怀疑自己的存在价值&#xff0c;每天拿着7000的工资&#xff0c;飘荡在繁华的深圳&#xff0c;吃不饱也饿不死&#xff0c;未来…

阿里 p8 私藏 MyBatis 笔记,从入门到精通,纵享源码细节

前言 越来越多的企业已经将 MyBatis 使用到了正式的生产环境&#xff0c;我认为流行的原因就在于绝大部分项目都是面向表结构编程的&#xff0c;把 Java 对象仅当成数据容器&#xff0c;查询和模型变更都设计在一张表上&#xff0c;所谓业务逻辑就是一堆增删改查的 sql 集合&a…

Cadence Allegro PCB设计88问解析(二十一) 之 Allegro中更新器件封装(Footprint)

一个学习信号完整性仿真的layout工程师 今天和大家简单介绍Allegro中如何更新PCB封装&#xff0c;在我们导入原理图网表&#xff0c;PCB的封装是必不可少的&#xff0c;但是可能有些为了前期布局评审&#xff0c;有的封装是临时的&#xff0c;那么就需要后续更新正确的封装。下…

02 Java起步

目录 第一章&#xff1a;注释 1.1 概述 1.2 Java 中的注释 第二章&#xff1a;关键字 2.1 概述 2.2 Java 中的关键字 第三章&#xff1a;标识符 3.1 概述 3.2 标识符的命名规则&#xff08;必须遵守&#xff09; 3.3 标识符的命名规范 第四章&#xff1a;数据类型以…

第十四届蓝桥杯集训——JavaC组首篇——环境搭建(win10)

还有9天就截止报名了&#xff0c;我们也算正式开始培训了&#xff0c;今年希望能取得更好的成绩。 今年的蓝桥杯从环境开始——本博客为win10电脑的Java_JDK环境搭建&#xff1a; 学生机环境-Java编程环境&#xff08;第十四届大赛&#xff09; 链接: https://pan.baidu.com…

软件测试行业真的饱和了吗?一线大厂年薪100W的测开岗位还很缺人!

在一线大厂&#xff0c;没有测试这个岗位&#xff0c;只有测开这个岗位。这几年&#xff0c;各互联网大厂技术高速更新迭代&#xff0c;软件测试行业也正处于转型期。传统的功能测试技术逐步淘汰&#xff0c;各种新的测试技术层出不穷&#xff0c;测试人员的薪资也水涨船高。与…

【Docker】基础

文章目录Docker什么是Docker虚拟机和容器Docker 底层原理Docker 优点关键技术Docker 推荐视频课程配套食用&#xff1a;https://www.bilibili.com/video/BV1gr4y1U7CY/?vd_source6d95a05fa9867baaa8ea7c5c52faf4e6 什么是Docker Docker&#xff0c;容器虚拟化技术&#xff…

从浪潮登顶NuScenes榜首解读自动驾驶AI感知技术的发展

导读&#xff1a; “自动驾驶是集感知、决策、交互于一体的技术 环境感知能力作为自动驾驶的第一个环节&#xff0c;是车辆与环境交互的纽带 通过“摄像头、毫米波雷达、超声波雷达、激光雷达”等各类传感器设备&#xff0c;感知环境的手段日趋多元化 同时&#xff0c;在平…

STM32 EXT for GPIO

EXT 描述&#xff1a; EXTI&#xff08;中断/事件控制器&#xff09;包括20个相互独立的边沿检测电路并且能够向处理器内核产生中断 请求或唤醒事件。EXTI有三种触发类型&#xff1a;上升沿触发、下降沿触发和任意沿触发。EXTI中的每 一个边沿检测电路都可以独立配置和屏蔽 E…

java-文件上传-excel存入数据库全代码及流程(附前端代码)

今天给大家带来的是文件上传中比较常用的&#xff0c;上传excel文件&#xff0c;将表格中的数据存入数据库中的一个转化的工具类&#xff1b;大致的流程是&#xff1a;前端点击上传按钮-->选择需要上传的excel表格-->确认上传--> 文件传到后台-->后台处理file文…

[附源码]计算机毕业设计酒店在线预约咨询小程序Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

解决穿山甲Gromore广告在Oppo上报广告病毒Android.Virus.AdCheat.AdCut.A

描述 在上架Oppo的时候审核打回了发现了病毒。提示如下&#xff1a; 自动化检测“安全”项未通过,病毒名称&#xff1a;Android.Virus.AdCheat.AdCut.A,病毒描述&#xff1a;该病毒安装启动后&#xff0c;会展示非官方广告&#xff0c;造成盗源消耗和信息泄露&#xff0c;请卸…

[附源码]Python计算机毕业设计Django行程规划app

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

JUC07-ConcurrentHashMap

一、HashMap中的死链问题 多个线程对hashmap进行扩容时需要将原有数据转移到新的table数组中&#xff0c;这个过程中会重新计算每个元素对应的数组下标从而改变元素的next指针&#xff0c;而另一个线程重复对该链表进行迁移时可能会导致循环链表的产生 原始链表&#xff0c;格…

虹科案例 | 利用激光测距传感器进行锯齿定位

PART ONE 应用描述 在这项应用中&#xff0c;两个激光测距传感器分别安装在一个凸出部分的末端的两侧&#xff0c;用以测量其两侧到锯齿的距离的差。一个微型控制器会按照预设&#xff0c;记录测量数据并提供一个方便快捷的前后位置校准的图像&#xff0c;以便检查。当操作者触…