// 几何体,用点创建几何形体
function initGeometry(){
var geometry = new THREE.BufferGeometry(); //创建一个Buffer类型几何体对象
//类型数组创建顶点数据
var vertices = new Float32Array([
0, 0, 0, //顶点1坐标
10, 0, 0, //顶点2坐标
0, 20, 0, //顶点3坐标
0, 0, 5, //顶点4坐标
0, 0, 20, //顶点5坐标
10, 0, 5, //顶点6坐标
]);
// 创建属性缓冲区对象
var attribue = new THREE.BufferAttribute(vertices, 3); //3个为一组,表示一个顶点的xyz坐标
// 设置几何体attributes属性的位置属性
geometry.attributes.position = attribue;
/*
*三角面(网格)渲染模式
*网格材质类型
* MeshBasicMaterial :基础网格材质,不受光照影响的材质
* MeshLambertMaterial :Lambert网格材质,与光照有反应,漫反射
* MeshPhongMaterial :高光Phong材质,与光照有反应
* MeshStandardMaterial :PBR物理材质,相比较高光Phong材质可以更好的模拟金属、玻璃等效果
* ({})参数
* color: "green",//颜色
* wireframe: false, //这里指不使用实心材料,所以为true
* // opacity:0.7,//透明度
* // transparent:true,//是否开启透明
* specular:0x4488ee,//高光颜色
* shininess:12//高光范围值
*/
var material = new THREE.MeshBasicMaterial({
color: 0x0000ff, //三角面颜色
side: THREE.DoubleSide //两面可见
}); //材质对象
var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
// 点渲染模式
var material = new THREE.PointsMaterial({
color: 0xff0000,
size: 10.0 //点对象像素尺寸
}); //材质对象
var points = new THREE.Points(geometry, material); //点模型对象
// 线条渲染模式
var material=new THREE.LineBasicMaterial({
color:0xff0000 //线条颜色
});//材质对象
var line=new THREE.Line(geometry,material);//线条模型对象
// line 线添加到场景中进行渲染 points 点添加到场景中进行渲染 mesh面添加到场景中进行渲染
scene.add(line); //对象添加到场景中
}