这是three.js学习的第19篇学习笔记。在three.js基础学习之类人造光源中我们学习了三种人造光源,分别是点光源PointLight,聚光灯SpotLight和平面光源RectAreaLight。今天学习three.js的渲染引擎WebGLRenderer
。
在创建three.js应用时,我们首先要做的就是要用THREE.WebGLRenderer
创建渲染引擎实例renderer
。在构建实例时,可选传入一个对象,对renderer
的一些默认特征进行修改处理,下面我们看一下具体构建方法和一些常用的参数。
1 | const renderer = new THREE.WebGLRenderer({ |
THREE.WebGLRenderer
实例化需要传入的一些参数
canvas 我们传入最多的,大概就是这个参数了。 canvas用来承载three.js应用的画面。如果不传入,
THREE.WebGLRenderer
在构建了实例后也会自动创建一个,通过renderer
属性值domElement
可以获取到。不过我个人建议还是提起传入更方便一点。context 默认值为null,用来将渲染器添加到一个已有的渲染环境中去。这个暂时知道就行,后面实战的时候可以具体学习体验。
precision是着色器精度,在设备支持下默认是高精度”highp” ,备选项还有 “mediump” 和 “lowp”。
- antialias 是否抗锯齿。默认是false。
这写是几个常见的构建参数,还有一些不常用的在后面实战中遇到我们再详细学习。
THREE.WebGLRenderer
实例化后的一些属性和方法
将THREE.WebGLRenderer
实例化后我们就得到了渲染器renderer
,下面我们学习一下renderer
的一些常用属性和方法。
属性
domElement 渲染器实例化完成后输出的一个canvas。如果我们一开始没有传入已经定义好的canvas,可以将它绑定到页面中,比如我们添加到body上。
1
document.body.appendChild(renderer.domElement);
shadowMap 是否使用阴影贴图,它是一个对象,比较常用的参数有下面两个
enabled
是否允许在场景中使用阴影贴图,默认是false。autoUpdate
启用场景中的阴影自动更新。默认是true
方法
getContext()返回当前的webGL环境。
render(scene, camera)render()
函数是一个必用的函数,它接收scene
场景和camera
相机两个参数。将场景渲染在canvas上,然后通过相机播放出来。
setSize(width, height, updateStyle)调整canvas的大小,width和height代表宽和高,updateStyle为false则禁止修改canvas样式。
setViewport(x,y, width, height) 设置可视窗口的位置和大小。