three.js(4)-网格Lambert材质

JavaScript03

three.js(4)-网格Lambert材质,第1张

有关物体的材质,我们前面用了MeshBasicMaterial来体现。

MeshBasicMaterial就是基础网格材质,它不受光源的影响。而在实际场景中,物体大多都是受光源影响的,也就是漫反射,这时我们就要用到另一个材质函数:MeshLambertMaterial。

Lambert(朗伯)这个单词是亮度单位,词源是lamp(灯),我们来做个例子:

three.js的源码尝试看过,

1.可能是着色器预置了一定数目的光源信息,使用时只要数目在预置数目之下,都没问题

2.可能是每增加一个光源,就多加一个该光源类型的着色器

实际渲染的时候分别对应每个光源逐个执行各自的着色器,把结果放帧缓冲区内,最后再合成

threejs怎么把点连成面可以用模型的方法。

1、在ThreeJs中:模型由几何体和材质构成和模型以何种形式(点、线、面)展示取决于渲染方式,所有的三位物体都是由点构成,两点构成线,三点构成面,在three.js中利用THREE.Vector3()是用来缺点点的位置的,它的三个参数分别是对应于三维坐标的x轴,y轴和z轴。MeshBasicMaterial:用于以简单的阴影(平面或线框)方式绘制几何的材料。MeshDepthMaterial:用于通过深度绘制几何的材料。深度是基于相机附近和远处的平面。白色最近,黑色最远。MeshLambertMaterial:无光泽表面材质,无镜面高光。MeshNormalMaterial:将法线矢量映射为RGB颜色的材质。MeshPhongMaterial:光泽表面材质,镜面高光,反射。MeshStandardMaterial:使用金属粗糙度工作流程的标准物理基础材料。