ThreeJs的学习:BufferGeometry理解(1) 生成正方形立方体

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:34   2078   0
var bgeometry = new THREE.BufferGeometry();
/*
// BufferGeometry形成一个最简单的平面
// 一个平面由两个三角形组成,每个三角形由3个坐标,每个坐标由XYZ组成
// 所以一个平面需要六个坐标
var vertices = new Float32Array( [
 // 三角形1 - 三个顶点 
 -10 ,10, 0,
 -10 ,-10, 0,
 10 , -10, 0,
 // 三角形2 - 三个顶点 
 10 , -10, 0,
 10,  10, 0,
 -10 ,10, 0
] );
*/
// 每六个坐标形成一个平面,6个平面合并成封闭的一个立方形
var vertices = new Float32Array( [
1,10,10,1,-10,10,1,10,-10,1,-10,10,1,-10,-10,1,10,-10,      // 第一个平面(左)
-1,10,-10,-1,-10,-10,-1,10,10,-1,-10,-10,-1,-10,10,-1,10,10,// 第二个平面(右)
-1,10,-10,-1,10,10,1,10,-10,-1,10,10,1,10,10,1,10,-10,     // 第三个平面(后)
-1,-10,10,-1,-10,-10,1,-10,10,-1,-10,-10,1,-10,-10,1,-10,10,// 第四个平面(前)
-1,10,10,-1,-10,10,1,10,10,-1,-10,10,1,-10,10,1,10,10,     // 第五个平面(下)
1,10,-10,1,-10,-10,-1,10,-10,1,-10,-10,-1,-10,-10,-1,10,-10 // 第六个平面(上)
] );

//材质
var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
//增加坐标点,坐标点是X,Y,Z的布局,可以自己任意设置
bgeometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
var mesh = new THREE.Mesh( bgeometry, material );

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP