threejs三角形、顶点概念

参考资料:threejs中文网

threejs qq交流群:814702116

threejs三角形、顶点概念

下面给大家介绍下threejs网格模型Mesh涉及到三角形、顶点概念。

三角形(面)

网格模型Mesh其实就一个一个三角形(面)拼接构成。

在这里插入图片描述

创建一个矩形平面网格模型

const geometry = new THREE.PlaneGeometry(20, 20); //默认在XOY平面上
const material = new THREE.MeshBasicMaterial({
    color:0x00ffff
});
const mesh = new THREE.Mesh(geometry, material);
mesh.position.y = 30;

查看网格模型的三角形结构

材质设置wireframe: true,查看网格模型的三角形结构。

const geometry = new THREE.PlaneGeometry(20, 20);
const material = new THREE.MeshBasicMaterial({
    color: 0x00ffff,
    wireframe: true,//可以看到网格的三角形结构
});
const mesh = new THREE.Mesh(geometry, material);

查看网格模型几何体顶点数据

浏览器控制台查看几何体对象的数据结构。

const geometry = new THREE.PlaneGeometry(20, 20);
// console.log('几何体结构',geometry);

查看几何体geometry对象属性geometry.attributes.position.array,可以看到是一个数组。

  1. 数组里面是几何体顶点的xyz位置坐标
  2. 三个数字为一组,表示一个顶点的xyz坐标分量
  3. 12个元素(数字),表示矩形的四个顶点坐标。
    在这里插入图片描述

浏览器控制台访问几何体位置数据

console.log('顶点位置数据',geometry.attributes.position.array);

geometry.attributes.position.array的属性值是一个类型化数组Float32Array

细分数

//2三角形,两个三角形共享2个点,4个顶点
const geometry = new THREE.PlaneGeometry(20, 20,1,1);
//4个三角形,6个顶点
const geometry = new THREE.PlaneGeometry(20, 20,2,1);
// 8个三角形,9个顶点
const geometry = new THREE.PlaneGeometry(20, 20,2,2);
console.log('geometry',geometry);

一般来首次没有特殊需要,x和y方向细分数使用默认1就行,没必要创建这么多点或三角形,顶点或三角形数量越多,threejs渲染性能越低。

查看立方体顶点数据

const geometry = new THREE.BoxGeometry(20, 20, 20);
console.log('geometry',geometry);

查看球体顶点数据

const geometry = new THREE.SphereGeometry(20);
console.log('geometry',geometry);

细分数比较低,不够光滑

const geometry = new THREE.SphereGeometry(20,10,10);

一般曲面细分数,在满足光滑渲染效果情况下,尽量设置低的细分数,这样Geometry顶点数据,占用内存更低。

// 细分数比较高,视觉效果更光滑,不过没必要设置这么高
const geometry = new THREE.SphereGeometry(20,200,200);
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Threejs可视化

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

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

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

打赏作者

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

抵扣说明:

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

余额充值