Threejs系列--3材质

序言

随着上章关于几何体的认识,相信你已经建立起了属于自己的几何体分类体系,在项目开发中可以快速找到相关几何体并应用于项目中。不过我们还不能对各种几何体实现材质管理,本章将解决这个问题,使得我们的几何体更加形象生动、真实。

threejs提供了Material对象以及一系列的子对象,一起来看看吧。

点材质

PointsMaterial( parameters : Object )
parameters - (可选)用于定义材质外观的对象,具有一个或多个属性。 材质的任何属性都可以从此处传入(包括从Material继承的任何属性)

在这里插入图片描述

//创建一个圆环几何体半径10,管道半径4,材质为:点材质

var geometry = new THREE.TorusKnotBufferGeometry( 10, 4);
var material = new THREE.PointsMaterial({color: 0xF3FFE2});
var torusKnot = new THREE.Points(geometry, material);

基础线条材质

LineBasicMaterial( parameters : Object )
parameters - (可选)用于定义材质外观的对象,具有一个或多个属性。 材质的任何属性都可以从此处传入(包括从Material继承的任何属性)

在这里插入图片描述

//创建一个圆环几何体半径10,管道半径4,材质为:基础线条材质

var geometry = new THREE.TorusKnotBufferGeometry( 10, 4);
var material = new THREE.LineBasicMaterial();
var torusKnot = new THREE.Line(geometry, material);

基础网格材质

一个以简单着色(平面或线框)方式来绘制几何体的材质。这种材质不受光照的影响。

MeshBasicMaterial( parameters : Object )
parameters - (可选)用于定义材质外观的对象,具有一个或多个属性。材质的任何属性都可以从此处传入(包括从Material继承的任何属性)

在这里插入图片描述

//创建一个圆环几何体半径10,管道半径4,材质为:基础网格材质

var geometry = new THREE.TorusKnotBufferGeometry( 10, 4);
var material = new THREE.MeshBasicMaterial( { color: 0x0000ff} );

Lambert网格材质

一种非光泽表面的材质,没有镜面高光。可以很好地模拟一些表面(例如未经处理的木材或石材),但不能模拟具有镜面高光的光泽表面(例如涂漆木材)。

MeshLambertMaterial( parameters : Object )
parameters - (可选)用于定义材质外观的对象,具有一个或多个属性。 材质的任何属性都可以从此处传入(包括从Material继承的任何属性)

在这里插入图片描述

//创建一个圆环几何体半径10,管道半径4,材质为:Lambert网格材质

var geometry = new THREE.TorusKnotBufferGeometry( 10, 4);
var material = new THREE.MeshLambertMaterial( { color: 0x0000ff} );

Phong网格材质

一种用于具有镜面高光的光泽表面的材质。与MeshLambertMaterial中使用的Lambertian模型不同,该材质可以模拟具有镜面高光的光泽表面(例如涂漆木材)。

MeshPhongMaterial( parameters : Object )
parameters - (可选)用于定义材质外观的对象,具有一个或多个属性。 材质的任何属性都可以从此处传入(包括从Material继承的任何属性)

在这里插入图片描述

//创建一个圆环几何体半径10,管道半径4,材质为:Phong网格材质

var geometry = new THREE.TorusKnotBufferGeometry( 10, 4);
var material = new THREE.MeshPhongMaterial( { color: 0x0000ff} );

Phong网格材质

一种用于具有镜面高光的光泽表面的材质。与MeshLambertMaterial中使用的Lambertian模型不同,该材质可以模拟具有镜面高光的光泽表面(例如涂漆木材)。

MeshPhongMaterial( parameters : Object )
parameters - (可选)用于定义材质外观的对象,具有一个或多个属性。 材质的任何属性都可以从此处传入(包括从Material继承的任何属性)

在这里插入图片描述

//创建一个圆环几何体半径10,管道半径4,高光颜色4488ee,默认高亮的程度30,材质为:Phong网格材质

var geometry = new THREE.TorusKnotBufferGeometry( 10, 4);
var material = new THREE.MeshPhongMaterial({
	color: 0x0000ff,
	specular:0x4488ee,
});

标准网格材质

一种基于物理的标准材质。基于物理的渲染(PBR)最近已成为许多3D应用程序的标准,例如Unity, Unreal和 3D Studio Max。在实践中,该材质提供了比MeshLambertMaterial 或MeshPhongMaterial 更精确和逼真的结果,代价是计算成本更高。注意,为获得最佳效果,在使用此材质时应始终指定environment map。

MeshStandardMaterial( parameters : Object )
parameters - (可选)用于定义材质外观的对象,具有一个或多个属性。 材质的任何属性都可以从此处传入(包括从Material继承的任何属性)

在这里插入图片描述

//创建一个圆环几何体半径10,管道半径4,材质为:标准网格材质

var geometry = new THREE.TorusKnotBufferGeometry( 10, 4);
var material = new THREE.MeshStandardMaterial();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猴子喝牛奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值