【three.js】简介和入门

目录

    • Three.js简介
    • Three.js的应用
    • Three.js的基础知识
    • 利用Three.js实现一个3D页面

Three.js简介

  Three.js是一个基于JavaScript编写的开源3D图形库,利用WebGL技术在网页上渲染3D图形。它提供了许多高级功能,如几何体、纹理、光照、阴影等,以便开发者能够快速地创建复杂且逼真的3D场景。同时,Three.js还具有很好的跨平台和跨浏览器兼容性,让用户无需安装任何插件就可以在现代浏览器上观看3D内容。

Three.js的应用

  1. 互动式可视化,比如卖车卖房的商城,3D效果能更好的展示商品内部解构。
  2. 游戏开发,比如我的世界等很多游戏。
  3. 虚拟现实和增强现实,Three.js可以与WebVR和WebAR等技术结合,帮助开发者快速构建虚拟现实和增强现实应用。比如应用中通过物体的影子判断光线的方向等。
  4. 影视动画人物建模

Three.js的基础知识

three.js基础知识

利用Three.js实现一个3D页面

html代码

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8" /><link rel="icon" type="image/svg+xml" href="/vite.svg" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Vite App</title><style>*{margin: 0;padding: 0; }canvas{position: fixed;left: 0;top: 0;width: 100vw;height: 100vh;display: block;}</style>
</head><body><div id="app"></div><script type="module" src="src/main.js"></script>
</body></html>

js代码

// 引入three.js
import * as THREE from "three";// 创建一个场景
const scene = new THREE.Scene();// 创建一个相机
const camera = new THREE.PerspectiveCamera(/* 视角(FOV):视野角度就是无论在什么时候,你所能在显示器上看到的场景的范围,它的单位是角度(与弧度区分开)*/45,/* 长宽比(aspect ratio):长宽比(aspect ratio)。 也就是你用一个物体的宽除以它的高的值。比如说,当你在一个宽屏电视上播放老电影时,可以看到图像仿佛是被压扁的。*/window.innerWidth / window.innerHeight,/* 近截面(near)*/0.1,/* 远截面(far)*/1000);// 创建渲染器
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);// 创建几何体
const geometry = new THREE.BoxGeometry(2, 2, 2);
// 创建材质
// const material = new THREE.MeshBasicMaterial({ color: 0xff0000 });
const materials = [ new THREE.MeshBasicMaterial( { color: 'blue' } ), // rightnew THREE.MeshBasicMaterial( { color: 'yellow' } ), // leftnew THREE.MeshBasicMaterial( { color: 0xff0000} ), // topnew THREE.MeshBasicMaterial( { color: 'white' } ), // bottomnew THREE.MeshBasicMaterial( { color: 'green' } ), // backnew THREE.MeshBasicMaterial( { color: 'red' } ) // front ];
// 创建网格
const cube = new THREE.Mesh(geometry, materials);
// 将网格添加到场景中
scene.add(cube);
// 设置相机位置
camera.position.z = 5;
camera.lookAt(0, 0, 0);// 渲染
// renderer.render(scene, camera)function animate () {requestAnimationFrame(animate)cube.rotation.x += 0.01;cube.rotation.y += 0.01renderer.render(scene, camera);
}
animate();

效果图:
3D效果图

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剑指Offer题目笔记20(在数组范围内二分查找)

面试题72&#xff1a; 问题&#xff1a; ​ 输入一个非负整数&#xff0c;计算它的平方根。 解决方案&#xff1a; 使用二分查找。一个数x的平方根一定小于或等于x&#xff0c;同时&#xff0c;除了0之外的所有非负整数的平方根都大于等于1&#xff0c;故该数的平方根在1到x…

YOLOv9有效改进专栏汇总|未来更新卷积、主干、检测头注意力机制、特征融合方式等创新![2024/4/1]

​ 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 专栏介绍 YOLOv9作为最新的YOLO系列模型&#xff0c;对于做目标检测的同学是必不可少的。本专栏将针对2024年最新推出的YOLOv9检测模型&#xff0…

什么是智慧城管?智慧城管的应用场景有哪些?

智慧城管管理系统是一种基于现代数字信息技术的城市管理平台&#xff0c;它以数字地图和单元网格划分为基础&#xff0c;集成基础地图、地理编码、市政及社区服务部件事件的多种数据资源。这一系统通过创建城市管理和市民服务综合指挥系统&#xff0c;利用多部门信息共享和协同…

Python中的全栈开发前端与后端的完美融合【第160篇—全栈开发】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python中的全栈开发&#xff1a;前端与后端的完美融合 全栈开发已成为当今软件开发领域中的…

芒果YOLOv5改进89:卷积SPConv篇,即插即用,去除特征图中的冗余,FLOPs 和参数急剧下降,提升小目标检测

芒果专栏 基于 SPConv 的改进结构,改进源码教程 | 详情如下🥇 👉1. SPConv 结构、👉2. CfSPConv 结构 💡本博客 改进源代码改进 适用于 YOLOv5 按步骤操作运行改进后的代码即可 即插即用 结构。博客 包括改进所需的 核心结构代码 文件 YOLOv5改进专栏完整目录链接:…

透视苹果手机系统文件结构:深入了解iOS文件系统的组织方式

​ 目录 引言 用户登录工具和连接设备 查看设备信息&#xff0c;电池信息 查看硬盘信息 硬件信息 查看 基带信息 销售信息 电脑可对手机应用程序批量操作 运行APP和查看APP日志 IPA包安装测试 注意事项 引言 苹果手机与安卓手机不同&#xff0c;无法直接访问系统文件…

哪个品牌是专业做洗地机的?四大质量翘楚佳品推荐

随着科技的不断发展&#xff0c;家庭清洁方式也在不断升级。传统的拖把已经不能满足现代家庭对清洁的需求&#xff0c;因此&#xff0c;智能家电如洗地机的出现成为了一种必然趋势。本文将为您介绍几款家用洗地机&#xff0c;让您在选择清洁设备时能够更加明智。 洗地机怎么选…

鸿蒙实战开发-如何实现多设备自适应服务卡片

​介绍 本示例展示Js工程中服务卡片的布局和使用&#xff0c;其中卡片内容显示使用了一次开发&#xff0c;多端部署的能力实现多设备自适应。用到了卡片扩展模块接口&#xff0c;ohos.app.form.FormExtensionAbility 。 卡片信息和状态等相关类型和枚举接口&#xff0c;ohos.…

Android adb ime 调试输入法

目录 前言列出所有输入法仅列出输入法 id列出所有输入法的所有信息 启用/禁用 输入法启用输入法禁用输入法 切换输入法还原输入法 前言 安装多个输入法后&#xff0c;可以在设置里进行切换。 既然是开发&#xff0c;能用命令就就命令~ ime 帮助说明&#xff1a; ime <c…

XenCenter 2024 导出虚拟机

选择导出 选择需要导出的虚拟机 导出位置&#xff0c;导出格式&#xff0c;名称 EULA 文档&#xff0c;根据自己需求配置 OVA是否需要加密验证&#xff0c;自己需要看&#xff0c;是否单独的OVA 确认导出配置&#xff0c;等待导出完成。 本地目录查看导出完成

解析Flutter应用在iOS环境中的性能优化技巧

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…

2024年限时免费:申领一年免费二级域名

免费申领一年域名 onflashdrive.app&#xff0c;现已可转入 CloudFlare 托管&#xff01; #注册账号 1、打开身份生成网站&#xff0c;然后按照图片下面所填写即可 邮箱填写自己的&#xff0c;密码必须包含大写字母 2、选择 New orders 3、点击选择产品–>Domain 4、输入…