threejs学习之自定义几何体BufferGeometry

几何体是由坐标点绘制成线,线绘制成三角形,多个三角形拼接成的。
这次学习了两个自定义几何体的方法,第一个通过编写完整的顶点坐标,绘制一个正方形。

  // 创建一个简单的矩形. 在这里我们左上和右下顶点被复制了两次。
  // 因为在两个三角面片里,这两个顶点都需要被用到。(按照x,y,z的顺序编写坐标)
  const vertices = new Float32Array([
    -1.0, -1.0, 1.0,  // 左下
    1.0, -1.0, 1.0,  // 右下
    1.0, 1.0, 1.0,  // 右上

    1.0, 1.0, 1.0, // 右上
    -1.0, 1.0, 1.0, // 左上
    -1.0, -1.0, 1.0 // 左下
  ]);

    // itemSize = 3 因为每个顶点都是一个三元组。
geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 3));

在这里插入图片描述
第二种方法是只编写出需要的坐标,不编写完整绘制点,顺序也可以打乱,通过索引,控制编写的坐标应该按照什么顺序进行绘制
去掉重复的右上和坐下坐标点,然后编写索引,这样就会按照索引来取坐标点进行绘制

 // 创建一个简单的矩形. 在这里我们左上和右下顶点被复制了两次。
 // 因为在两个三角面片里,这两个顶点都需要被用到。(按照x,y,z的顺序编写坐标)
 const vertices = new Float32Array([
   -1.0, -1.0, 1.0,  // 左下
   1.0, -1.0, 1.0,  // 右下
   1.0, 1.0, 1.0,  // 右上
   -1.0, 1.0, 1.0, // 左上
 ]);

    // itemSize = 3 因为每个顶点都是一个三元组。
geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 3));
/** 
	0对应-1.0, -1.0, 1.0,  // 左下
	1对应1.0, -1.0, 1.0,  // 右下
	2对应1.0, 1.0, 1.0,  // 右上
	3对应-1.0, 1.0, 1.0, // 左上
	绘制顺序为:左下、右下、右上、右上、左上、左下
**/
const indexs = new Uint16Array([
   0, 1, 2,
   2, 3, 0,
 ]);
 geometry.index = new THREE.BufferAttribute(indexs, 1);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旅行中的伊蕾娜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值