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

临沂网站建设兼职优秀的网站建设解决方案

临沂网站建设兼职,优秀的网站建设解决方案,微信分销系统开发得多少钱,亿网行网站建设系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 文章目录 系列文章目录一、Three.js 是什…

请添加图片描述

系列文章目录

Three.js 快速入门教程【一】开启你的 3D Web 开发之旅
Three.js 快速入门教程【二】透视投影相机
Three.js 快速入门教程【三】渲染器
Three.js 快速入门教程【四】三维坐标系
Three.js 快速入门教程【五】动画渲染循环


文章目录

  • 系列文章目录
  • 一、Three.js 是什么
  • 二、Three.js 应用场景
  • 三、环境搭建(两种方式任选)
  • 四、核心概念
    • 1. 场景(Scene)
    • 2. 相机(Camera)
    • 3.几何体(Geometry)
    • 4、材质(Material)
    • 5. 网格(Mesh)
    • 6. 渲染器(Renderer)
  • 五、牛刀小试
  • 总结


一、Three.js 是什么

    Three.js是一个基于WebGL封装的轻量级3D库,它将晦涩难懂的WebGL API封装成易读的JavaScript接口,让开发者无需深入了解 WebGL 的复杂细节,就能用简洁的代码创建出精美的 3D 场景。


二、Three.js 应用场景

1、数据可视化:将枯燥的报表变成旋转的3D图表
2、产品展示:让用户在网页中360°查看产品细节
3、3D网页游戏:开发轻量级的3D小游戏
4、建筑和室内设计:构建虚拟的建筑模型或室内设计方案,用户可以在浏览器中自由查看和导航这些 3D 场景,提前感受设计效果。
5、虚拟现实(VR)和增强现实(AR):与 WebVR 和 WebXR API 集成,用于创建沉浸式的 VR 和 AR 应用,用户可以在浏览器中体验身临其境的虚拟环境或与现实环境叠加的增强现实效果。


三、环境搭建(两种方式任选)

方式一:CDN直连(适合测试或新手)

!--<head>中引入 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r162/three.min.js"></script></script>

方式二:npm安装(适合项目开发)

npm install three
// 使用时导入
import * as THREE from 'three';

四、核心概念

在这里插入图片描述

在Three.js中创建一个最基本的3D场景需要六个核心要素:场景(Scene)、相机(Camera)几何体(Geometry)、材质(Material)、网格(Mesh),最后通过渲染器(WebGLRenderer)将场景和相机的信息渲染到网页中,并通过动画循环实现持续更新,形成动态3D效果。

1. 场景(Scene)

作用:3D 世界的容器,所有物体、光源、相机的载体,所有要在屏幕上显示的元素都需要添加到场景中。

// 创建一个场景
const scene = new THREE.Scene();
//通过scene.add(元素)添加元素

2. 相机(Camera)

作用:决定从哪个角度观察场景中的对象,就像现实世界中摄影师使用的相机一样

相机分为2种类型:透视相机、正交相机

透视相机:模拟人眼的视觉效果,远处的物体看起来比近处的物体小,具有透视效果。

正交相机:物体的大小不会随着距离的变化而改变,常用于 2D 游戏或 UI 设计。

3D开发场景中透视相机用的比较多,入门掌握透视相机即可。

透视相机(PerspectiveCamera)

// 创建一个透视相机
const camera = new THREE.PerspectiveCamera(75, // 视场角(FOV)window.innerWidth / window.innerHeight, // 宽高比0.1, // 近裁剪面3000 // 远裁剪面
);//设置相机位置
camera.position.set(100, 100, 100); 

3.几何体(Geometry)

作用:定义了 物体的形状,例如长方体、球体、圆柱体等。常用内置几何体:

BoxGeometry(长方体)

SphereGeometry(球体)

CylinderGeometry(圆柱体)


// 创建一个立方体几何体
const geometry = new THREE.BoxGeometry(1, 1, 1);
// 创建一个球体
const geometry2 = new THREE.SphereGeometry(10);
//创建一个圆柱体
const geometry = new THREE.CylinderGeometry(10,10,50);

4、材质(Material)

作用:定义物体的外观(颜色、纹理、透明度等)。常用材质:

MeshBasicMaterial(基础材质,不受光影响,始终显示为指定的颜色或纹理。)

MeshPhongMaterial(高光材质,受光影响,面有高光反射效果。)

// 创建一个基础材质
const material = new THREE.MeshBasicMaterial({ color: 0x000000 });

5. 网格(Mesh)

 几何体 + 材质 = 网格

网格是几何体和材质的组合,它将几何体的形状和材质的外观结合起来,形成一个完整的 3D 对象(物体)。创建网格后,需要将其添加到场景中才能显示。

// 创建立方体(宽,高,深)
const geometry = new THREE.BoxGeometry(1, 1, 1);// 基础材质(可配置颜色、贴图等)
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });// 创建网格对象
const mesh= new THREE.Mesh(geometry, material);
scene.add(mesh);

6. 渲染器(Renderer)

渲染器负责将场景和相机的信息转化为屏幕上的图像。它使用 WebGL 或 Canvas 等技术在网页上绘制 3D 图形。Three.js 提供了多种渲染器,最常用的是 WebGL 渲染器(THREE.WebGLRenderer)。

// 创建一个 WebGL 渲染器
const renderer = new THREE.WebGLRenderer();
// 设置渲染器的大小
renderer.setSize(window.innerWidth, window.innerHeight);
// 将渲染器的 DOM 元素添加到页面中
document.body.appendChild(renderer.domElement);

五、牛刀小试

通过上面的介绍我们了解了three.js核心概念和基本的使用方式,下面用代码来演示一个简单的3d案例——实现一个正方体3D效果

代码示例:

import * as THREE from "three";
//引入相机控制器
import { OrbitControls } from "three/addons/controls/OrbitControls.js";//创建场景
const scene = new THREE.Scene();
//设置黑色背景色
scene.background = new THREE.Color(0x000000);//创建一个正方体
const geometry = new THREE.BoxGeometry(10, 10, 10);
//创建一个基础材质,颜色指定红色
const material = new THREE.MeshBasicMaterial({ color: "red" });//创建一个网格对象
const mesh = new THREE.Mesh(geometry, material);
//设置网格对象位置
mesh.position.set(0, 0, 0);
//添加到场景中
scene.add(mesh);//创建相机
const camera = new THREE.PerspectiveCamera(75,window.innerWidth / window.innerHeight,0.1,1000
);
//设置相机位置
camera.position.set(0, 10, 30);
//相机默认看向网格对象
camera.lookAt(mesh.position);//创建渲染器
const renderer = new THREE.WebGLRenderer();
//设置渲染器尺寸为页面宽高
renderer.setSize(document.documentElement.clientWidth,document.documentElement.clientHeight
);
//将渲染器的 DOM 元素添加到页面中
document.body.appendChild(renderer.domElement);// 新建一个相机控件
const controls = new OrbitControls(camera, renderer.domElement);
// 启用阻尼(惯性效果)
controls.enableDamping = true;
controls.dampingFactor = 0.05;
// 动画循环
function animate() {// 定时刷新requestAnimationFrame(animate);// 更新控制器,必须调用以应用阻尼效果controls.update();//重新渲染renderer.render(scene, camera);
}
// 执行动画
animate();

运行效果:
请添加图片描述

说明:上述示例中我们引入了OrbitControls控制器 ,OrbitControls 是一个用于实现交互式场景相机控制的工具库。它允许用户通过鼠标(或触摸屏)直接操作 3D 场景的观察视角,如同在轨道上环绕目标物体一般,常用于提升 Web 3D 应用的交互体验。代码结尾通过requestAnimationFrame递归形式循环调用animate函数,达到页面持续刷新效果。在 Three.js 开发中,几乎所有的动态场景(如旋转模型、交互操作、自动动画)都需要通过 requestAnimationFrame 驱动持续渲染。

总结

    通过本篇教程,我们认识了什么是Three.js和Three.js应用场景,共同探索了Three.js的核心概念与基础用法。从构建场景(Scene)、相机(Camera)到渲染器(Renderer)的"铁三角"架构,再到几何体(Geometry)、材质(Material)与网格(Mesh)的有机结合,至此你已经了解并掌握了创建最基础三维场景的核心工具链。

更多three.js入门知识点请关注该系列教程后续的更新。


文章转载自:

http://vxC5NHkS.gcqcs.cn
http://xB46RVVU.gcqcs.cn
http://Q4biu5L3.gcqcs.cn
http://xPUIdJMG.gcqcs.cn
http://WxafOsz2.gcqcs.cn
http://AJJoZr0C.gcqcs.cn
http://EFIffycP.gcqcs.cn
http://I7b8m7NY.gcqcs.cn
http://GNQrGpYE.gcqcs.cn
http://cauUX0X1.gcqcs.cn
http://M1Nhriej.gcqcs.cn
http://PontiG7t.gcqcs.cn
http://LcH5iifF.gcqcs.cn
http://N4xUcmVF.gcqcs.cn
http://D7jw7aPq.gcqcs.cn
http://jEogWdii.gcqcs.cn
http://w4LLY29w.gcqcs.cn
http://3y3d8mqk.gcqcs.cn
http://By0OhZ9r.gcqcs.cn
http://F0LiHDpK.gcqcs.cn
http://xC2W1sne.gcqcs.cn
http://lQzi9v97.gcqcs.cn
http://dYcPwCgW.gcqcs.cn
http://UDv6PyeC.gcqcs.cn
http://sanW7B7i.gcqcs.cn
http://PLmi0huo.gcqcs.cn
http://zfMN5D0S.gcqcs.cn
http://kn5hETXL.gcqcs.cn
http://yzcg1HoM.gcqcs.cn
http://ZNQLYGbg.gcqcs.cn
http://www.dtcms.com/wzjs/647935.html

相关文章:

  • 做网站界面尺寸是多少答辩ppt模板下载免费完整版
  • 好看大方的企业网站源码.net石家庄新闻最新
  • 做网站的说3年3年包括什么如何把网站上传到网上
  • aspcms中引文 网站修改配置wordpress博客分类
  • 如何建设一个收费的影视图文网站广西响应式网站哪家好
  • 个人电影网站建设wordpress评论ajax加载
  • 网站下载系统网站建设优化公司招聘
  • 宁波自主建站模板做网站的价格贵吗
  • 网站的软件怎么申请公司
  • 时尚大气网站设计中国建设人才招聘官网
  • wordpress部署文件网络推广的优化方法
  • 成都网站建设 公司企业网站制作公司有哪些
  • 网站网络优化服务器济南做网站xywlcn
  • 微网站技术广告公司记账管理软件
  • 大连手机自适应网站制作费用企业运营管理案例分析
  • wordpress会员系统大型网站seo
  • 南华大学城市建设学院网站wordpress 淘宝客 主题
  • 推广型网站建设公司专门做外贸网站
  • 怎么分析网站用什么技术做的专门做产品定制的网站
  • 精品网站建设费用 要上磐石网络seo关键词
  • 地方门户网站推广哪些经营范围是包含网站开发的
  • 哪个网站可以做c 的项目中山网站建设文化价格
  • 将门户网站建设flash网站建设技术是什么
  • 南阳网站制作哪家好网站被人做跳转了
  • 多个网站如何做301在那个网站可买做鞋子的羊毛
  • 网站可信查验大学生创业网站建设方案
  • 网站明确内容做企业网站注意些啥
  • 互联网风格网站学校网站素材
  • 网站开发时宁波个人做网站
  • 自己网站建设基本流程上海电子商务网站开发