美文网首页
2019-09-25 WebGL-Threejs学习笔记(不定期

2019-09-25 WebGL-Threejs学习笔记(不定期

作者: AcessCors | 来源:发表于2019-09-25 15:04 被阅读0次

在Threejs中,要将物体渲染到网页上需要三个组件:场景(scene),相机(camera),渲染器(renderer)。必须有这三大组件才能将物体渲染到网页中去
三大组件创建代码:

var scene = new THREE.Scene(); // 创建场景
var camera = new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,0.1,1000); // 透视相机
var renderer = new THREE.WebGLRenderer(); // 渲染器
renderer.setSize(window.innerWidth,window.innerHeight); // 设置渲染器的大小,也就是设置内容区的宽度

在Threejs中场景只有一种,创建场景只需要new一个对象就行了

var scene = new THREE.Scene();

设置渲染器

var renderer = new THREE.WebVLRenderer();
renderer.setSize(window.innerWidth,window.innerHeight);
// 渲染器renderer的domElement元素,表示渲染器中的画布,所有的渲染都是画在domElement上,appendChild表示将dom元素直接挂载在body下面
document.body.appendChild(renderer.domElement);

添加物体到场景中

// CubeGeometry->CubeGeometry(width, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, sides);
// CubeGeometry是几何体,width:几何体x轴的长度; height:几何体y轴的长度; depth:几何体z轴的长度
var geometry = new THREE.CubeGeometry(1,1,1);
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var cube = new THREE.Mesh(geometry,material);
scene.add(cube);

将相机,场景结合渲染器渲染到画布上

renderer.render(scene,camera);
// render可接受的参数
// scene:场景,camera:相机,renderTarget:渲染的目标,默认是渲染到前面定义的render变量中,forceClear:每次绘制之前都将画布的内容清除
render(scene,camera,renderTarget,forceClear)

实时渲染:即不停的对画面进行渲染,即使画面没发生改变也需要重新渲染:requestAnimationFrame函数。

function render () {
  cube.rotation.x += 0.1;
  cube.rotation.y += 0.1;
  renderer.render(scene,camera);
  requestAnimationFrame(render);
}

使用THREEJS画线

var geometry = new THREE.Geometry();
// 创建点坐标
var point1 = new THREE.Vector3(x,y,z);
// 定义线条的材质
// parameters{ 
  // color:线条颜色, 
  // linewidth:线条的宽度, 
  // linecap:线条两端的外观,默认圆角,
  // linejoin:两根线条的交接点处外观,默认圆角,
  // vertexColors:定义线条是否使用顶点的颜色,boolean值,
  // fog:定义材质的颜色是否受全局雾效影响
// }
material = new THREE.LineBasicMaterial(parameters )
// 定义线条,使用THREE.Line类
var line = new THREE.Line( geometry, material, THREE.LineSegments);
// 最后加入场景
scene.add(line)
···

相关文章

网友评论

      本文标题:2019-09-25 WebGL-Threejs学习笔记(不定期

      本文链接:https://www.haomeiwen.com/subject/lmmiuctx.html