ThreeJs的學習:BufferGeometry理解(1) 生成正方形立方體

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 );

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章