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

 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工程预览效果)

  点击运行index.html文件,

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


 

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

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

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

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

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

   推荐阅读:

原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)更好的向你所喜欢的人表达内心的感受。

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子
25

2023春节祝福系列第一弹(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)
24

​​

HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

23

​​

​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

22

​​

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)

21

0a4256d5e96d4624bdca36433237080b.png​​

​​

python爱心源代码集锦
20

4d9032c9cdf54f5f9193e45e4532898c.png​​

​​

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

074cd3c255224c5aa21ff18fdc25053c.png​​

​​​

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

daecd7067e7c45abb875fc7a1a469f23.png​​

​​​​

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

17

fe88b78e78694570bf2d850ce83b1f69.png​​

​​​​

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

16

c5feeb25880d49c085b808bf4e041c86.png​​

​​​​

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

15

38266b5036414624875447abd5311e4d.png​​

​​​​

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

14

03ed644f9b1d411ba41c59e0a5bdcc61.png​​

​​​​

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

13

09e08f86f127431cbfdfe395aa2f8bc9.png​​

​​​​

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

12

40e8b4631e2b486bab2a4ebb5bc9f410.png​​

​​​​

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

11

938bc5a8bb454a41bfe0d4185da845dc.jpeg​​

​​​​

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

10

0f09e73712d149ff90f0048a096596c6.png​​

​​​​

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

9

93d65dbd09604c4a8ed2c01df0eebc38.png​​

​​​​

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

8

aa17177aec9b4e5eb19b5d9675302de8.png​​

​​​​

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

7

1750390dd9da4b39938a23ab447c6fb6.jpeg​​

​​​​

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

6

dc8796ddccbf4aec98ac5d3e09001348.jpeg​​

​​​​

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

5

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg​​

​​​​

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

4

80007dbf51944725bf9cf4cfc75c5a13.png​​

​​​​

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

3

c6374d75c29942f2aa577ce9c5c2e12b.png​​

​​​​

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

2

5218ac5338014f389c21bdf1bfa1c599.png​​

​​​​

Tomcat端口配置(详细)

1

fffa2098008b4dc68c00a172f67c538d.png​​

​​​​

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆境清醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值