赞
踩
概述
:基于WebGL
的三维引擎,目前是国内资料最多、使用最广泛的三维引擎
,可以制作一些3D
可视化项目
目前随着元宇宙
概念的爆火,THREE
技术已经深入到了物联网、VR、游戏、数据可视化等多个平台,今天我们主要基于THREE
实现一个三维的VR
看房小项目
Three.js
一般分为三个部分:场景、相机、渲染器,这三个主要的分支就构成了THREE.JS
的主要功能区,这三大部分还有许多细小的分支,这些留到我们后续抽出一些章节专门讲解一下。
工作流程
:场景——相机——渲染器
从实际生活
中拍照角度立方体网格模型和光照组成了一个虚拟的三维场景
,相机对象就像你生活中使用的相机一样可以拍照,只不过一个是拍摄真实的景物
,一个是拍摄虚拟的景物。拍摄一个物体的时候相机的位置和角度需要设置,虚拟的相机还需要设置投影方式
,当你创建好一个三维场景,相机也设置好,就差一个动作“咔”,通过渲染器
就可以执行拍照动作。
概述
:场景主要由网络模型与光照组成,网络模型分为几何体与材质
几何体就像我们小时候学我们就知道点线面体四种概念,点动成线,线动成面,面动成体
,而材质就像是是几何体上面的涂鸦,有不同的颜色、图案…
例子如下:
//打造酷炫三角形 for (let i = 0; i < 50; i++) { const geometry = new THREE.BufferGeometry(); const arr = new Float32Array(9); for (let j = 0; j < 9; j++) { arr[j] = Math.random() * 5; } geometry.setAttribute('position', new THREE.BufferAttribute(arr, 3)); let randomColor = new THREE.Color(Math.random(), Math.random(), Math.random()); const material = new THREE.MeshBasicMaterial({ color: randomColor, transparent: true, opacity:0.5, }); const mesh = new THREE.Mesh(geometry, material); scene.add(mesh); }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UlBSgxKr-1666681292595)(https://gitee.com/riskbaby/picgo/raw/master/blog/202209211037215.png#pic_center)]
const geometry = new THREE.BoxGeometry(100, 100, 100);
const material = new THREE.MeshStandardMaterial({
color: 0x0000ff });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
const geometry = new THREE.ConeGeometry(5, 15, 32);//底面半径 高 侧边三角分段
const material = new THREE.MeshStandardMaterial({
color: 0x0000ff });
const clone = new THREE.Mesh(geometry, material);
scene.add(clone);
概念
:光照对three.js
的物体全表面进行光照测试,有可能会发生光照融合
//环境光
const ambient = new THREE.AmbientLight(0x404040);
scene.add(ambient);
概念
:向特定方向发射的光,太阳光
也视作平行的一种,和上面比较,物体变亮了
//平行光 颜色 强度
const directionalLight = new
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。