0
点赞
收藏
分享

微信扫一扫

第179期:threejs 中的材质(二)

封面图

第179期:threejs 中的材质(二)_JavaScript

这两天比较火的消息应该就是阿里裁员的消息吧,有的说阿里开了头,别的厂再跟进,会有一个连锁反应什么的。

关于裁员的一点看法

我倒觉得这是个很正常的现象,原因很简单,假设你是公司的负责人,在国际国内经济形势都不太好、同时互联网行业的增速放缓的情况下,你会做什么决策呢?裁员啊,多正常。

所以没有必要一看到这种裁员的消息,然后各种乱七八糟的app,各种自媒体疯狂的对这个信息进行各种各样的所谓的解读,好像互联网这个行业因为这个事情真的不行了似的,造成自己以及大家的各种焦虑。

没事儿的时候多看点书,增加一下自己的知识面,你会发现这种现象太正常了。裁员嘛,本质上还是可以理解为经济发展的一个现象吧,前两天国家统计局不是公布了第一季度的青年人口的失业率吗,裁员我们可以理解为本质上就是失业率又升高了,很正常。

经济形势好的时候,大家都有工作,都有钱赚,经济不景气的时候,大家就都没活干,没钱赚。那这时候就需要我们更加冷静、更加清晰的认识到我们目前所处的大环境、以及自身的能力、以及自己应该采取哪些措施来应对这些有可能发生在自己身上的风险。

其实对于个人来说也很简单,无非是过一过苦日子呗。开源节流,想办法多赚些钱、减少不必要的开支,熬过这段日子就行了,也没必要因为这些事情整天愁眉不展。

除了自己有意识的缩减开支之外,经济形势不好也可能会导致一些社会性的隐性风险。比如失业率居高不下,大量的人员失去经济来源,有可能社会上会增加一些暴力事件,有可能会导致社会的整体的犯罪率上升。我们需要对这些问题有一定的认识,从而能够在适当的时候能够保护自己安全,避免一些安全隐患。

经济未来的发展,主要还是需要看国家大政方针的走向,我们能做的也就是跟着国家政府的方向而已。

threejs 中的材质(二)

MeshDistanceMaterial

MeshDistanceMaterial在内部用于使用PointLights实现阴影贴图。

也可用于通过将MeshDistanceMaterial的实例指定给Object3D.customDistanceMaterial来自定义对象的阴影投射。以下示例演示了这种方法,以确保对象的透明部分不会投射阴影。

第179期:threejs 中的材质(二)_默认值_02

它的构造器参数如下:

  • alphaMap-alpha贴图纹理是一个灰度纹理,用于控制整个曲面的不透明度(黑色:完全透明;白色:完全不透明)。默认值为null。
  • displacementMap-置换贴图。置换贴图会影响网格顶点的位置。与其他仅影响材质明暗度的贴图不同,置换的顶点可以投射阴影、阻挡其他对象,并以其他方式充当真实的几何体。置换纹理是一个图像,其中每个像素的值(白色是最高的)都映射到网格的顶点,并重新定位网格的顶点。
  • displacementScale-位移比例。换贴图对网格的影响程度(其中黑色表示无置换,白色表示最大置换)。如果未设置位移贴图,则不会应用此值。默认值为1。
  • displacementBias-位移偏移。置换贴图的值在网格顶点上的偏移。如果未设置位移贴图,则不会应用此值。默认值为0。
  • fog-材质是否受到雾的影响。默认值为true。
  • map-贴图。可以选择包括alpha通道,通常与.transparent或.alphaTest组合使用。默认值为null。

MeshLambertMaterial

用于无镜面反射高光的无光泽曲面的材质。

该材质使用非基于物理的朗伯模型来计算反射率。这可以很好地模拟某些表面(如未处理的木材或石头),但不能模拟具有镜面高光的有光泽的表面(如涂漆的木材)。MeshLambertMaterial使用逐片段着色。

由于反射率和照明模型的简单性,在使用此材质时,性能将优于MeshPhongMaterial、MeshStandardMaterial或MeshPhysicalMaterial,但要以一定的图形精度为代价。

示例如下:

第179期:threejs 中的材质(二)_贴图_03

它的构造器参数如下:

  • alphaMap- alphaMap是一个灰度纹理,用于控制整个曲面的不透明度(黑色:完全透明;白色:完全不透明)。
  • aoMap-该纹理的红色通道用作环境光遮挡贴图。默认值为null。aoMap需要第二组UV。
  • aoMapIntensity-环境光遮挡效果的强度。默认值为1。零表示没有遮挡效果。
  • displacementMap-置换贴图。置换贴图会影响网格顶点的位置。与其他仅影响材质明暗度的贴图不同,置换的顶点可以投射阴影、阻挡其他对象,并以其他方式充当真实的几何体。置换纹理是一个图像,其中每个像素的值(白色是最高的)都映射到网格的顶点,并重新定位网格的顶点。
  • displacementScale-位移比例。换贴图对网格的影响程度(其中黑色表示无置换,白色表示最大置换)。如果未设置位移贴图,则不会应用此值。默认值为1。
  • displacementBias-位移偏移。置换贴图的值在网格顶点上的偏移。如果未设置位移贴图,则不会应用此值。默认值为0。
  • eemissive-材质的发射(灯光)颜色,本质上是不受其他灯光影响的纯色。默认值为黑色。
  • eemissiveMap- 设置发射(辉光)贴图。默认值为null。发射贴图颜色由发射颜色和发射强度调制。如果你有一个发射贴图,一定要将发射颜色设置为黑色以外的颜色。
  • eemissiveIntensity-发射光的强度。调节发射颜色。默认值为1。
  • envMap-环境纹理。默认值为null。
  • fog-材质是否受到雾的影响。默认值为true。
  • lightMap-光照贴图。默认值为null。lightMap需要第二组UV。
  • lightMapIntensity- 光照贴图强度。
  • map-贴图。可以选择包括alpha通道,通常与.transparent或.alphaTest组合使用。默认值为null。
  • reflectivity-反射率。环境贴图对曲面的影响程度;默认值为1,有效范围介于0(无反射)和1(全反射)之间。
  • specularMap-镜面反射贴图。材质使用的镜面反射贴图。默认值为null。
  • wireframe-将几何体渲染为线框。默认值为false。
  • wireframeLinecap-定义线条端点的外观。可能的值有“butt”、“round”和“square”。默认值为“square”。
  • wireframeLinejoin-定义线条连接的外观。可能的值有"round", "bevel" 以及 "miter".。默认值为“round”。
  • wireframeLinewidth-控制线框厚度。默认值为1。

MeshMatcapMaterial

MeshMatcapMaterial由MatCap(或照明球体)纹理定义,该纹理对材质颜色和着色进行编码。

MeshMatcapMaterial不响应灯光,因为matcap图像文件对烘焙的灯光进行编码。它会将阴影投射到接收阴影的对象上(阴影剪裁有效),但不会自阴影或接收阴影。

示例:

第179期:threejs 中的材质(二)_构造器_04

其构造器参数参考 MeshLambertMaterial。

MeshPhongMaterial

高光材质

用于具有镜面反射高光的有光泽曲面的材质。

该材质使用非基于物理的Blinn Phong模型来计算反射率。与MeshLambertMaterial中使用的朗伯模型不同,它可以模拟具有镜面高光的有光泽表面(如涂漆的木材)。MeshPhongMaterial使用逐片段着色。

在使用此材质时,性能通常会高于MeshStandardMaterial或MeshPhysicalMaterial,但会以一定的图形精度为代价。

示例:

第179期:threejs 中的材质(二)_构造器_05

其构造器参数参考 MeshLambertMaterial。

举报

相关推荐

0 条评论