[page:Material] →

# Phong网格材质([name])

一种用于具有镜面高光的光泽表面的材质。
该材质使用非物理的[link:https://en.wikipedia.org/wiki/Blinn-Phong_shading_model Blinn-Phong]模型来计算反射率。 与[page:MeshLambertMaterial]中使用的Lambertian模型不同，该材质可以模拟具有镜面高光的光泽表面（例如涂漆木材）。
使用[link:https://en.wikipedia.org/wiki/Phong_shading Phong]着色模型计算着色时，会计算每个像素的阴影（在[link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragment shader]， AKA pixel shader中），与[page:MeshLambertMaterial]使用的Gouraud模型相比，该模型的结果更准确，但代价是牺牲一些性能。 [page:MeshStandardMaterial]和[page:MeshPhysicalMaterial]也使用这个着色模型。
在[page:MeshStandardMaterial]或[page:MeshPhysicalMaterial]上使用此材质时，性能通常会更高 ，但会牺牲一些图形精度。

## 构造函数(Constructor)

### [name]( [param:Object parameters] )

[page:Object parameters] - (可选)用于定义材质外观的对象，具有一个或多个属性。 材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。
属性[page:Hexadecimal color]例外，其可以作为十六进制字符串传递，默认情况下为 *0xffffff*（白色），内部调用[page:Color.set](color)。

## 属性(Properties)

共有属性请参见其基类[page:Material]。

### [property:Texture alphaMap]

alpha贴图是一张灰度纹理，用于控制整个表面的不透明度。（黑色：完全透明；白色：完全不透明）。 默认值为null。
仅使用纹理的颜色，忽略alpha通道（如果存在）。 对于RGB和RGBA纹理，[page:WebGLRenderer WebGL]渲染器在采样此纹理时将使用绿色通道， 因为在DXT压缩和未压缩RGB 565格式中为绿色提供了额外的精度。 Luminance-only以及luminance/alpha纹理也仍然有效。

### [property:Texture aoMap]

该纹理的红色通道用作环境遮挡贴图。默认值为null。aoMap需要第二组UVs，因此将忽略[page:Texture repeat]和[page:Texture offset]属性。

### [property:Float aoMapIntensity]

环境遮挡效果的强度。默认值为1。零是不遮挡效果。

### [property:Texture bumpMap]

用于创建凹凸贴图的纹理。黑色和白色值映射到与光照相关的感知深度。凹凸实际上不会影响对象的几何形状，只影响光照。如果定义了法线贴图，则将忽略该贴图。

### [property:Float bumpScale]

凹凸贴图会对材质产生多大影响。典型范围是0-1。默认值为1。

### [property:Color color]

材质的颜色([page:Color])，默认值为白色 (0xffffff)。

### [property:Integer combine]

如何将表面颜色的结果与环境贴图（如果有）结合起来。
选项为[page:Materials THREE.Multiply]（默认值），[page:Materials THREE.MixOperation]， [page:Materials THREE.AddOperation]。如果选择多个，则使用[page:.reflectivity]在两种颜色之间进行混合。

### [property:Texture displacementMap]

位移贴图会影响网格顶点的位置，与仅影响材质的光照和阴影的其他贴图不同，移位的顶点可以投射阴影，阻挡其他对象， 以及充当真实的几何体。位移纹理是指：网格的所有顶点被映射为图像中每个像素的值（白色是最高的），并且被重定位。

### [property:Float displacementScale]

位移贴图对网格的影响程度（黑色是无位移，白色是最大位移）。如果没有设置位移贴图，则不会应用此值。默认值为1。

### [property:Float displacementBias]

位移贴图在网格顶点上的偏移量。如果没有设置位移贴图，则不会应用此值。默认值为0。

### [property:Color emissive]

材质的放射（光）颜色，基本上是不受其他光照影响的固有颜色。默认为黑色。

### [property:Texture emissiveMap]

设置放射（发光）贴图。默认值为null。放射贴图颜色由放射颜色和强度所调节。 如果你有一个放射贴图，请务必将放射颜色设置为黑色以外的其他颜色。

### [property:Float emissiveIntensity]

放射光强度。调节发光颜色。默认为1。

### [property:TextureCube envMap]

环境贴图。默认值为null。

### [property:Boolean isMeshPhongMaterial]

用于检查此类或派生类是否为Phong网格材质。默认值为 *true*。
因为其通常用在内部优化，所以不应该更改该属性值。

### [property:Texture lightMap]

光照贴图。默认值为null。lightMap需要第二组UVs，因此将忽略[page:Texture repeat]和[page:Texture offset]纹理属性。

### [property:Float lightMapIntensity]

烘焙光的强度。默认值为1。

### [property:Texture map]

颜色贴图。默认为null。纹理贴图颜色由漫反射颜色[page:.color]调节。

### [property:boolean morphNormals]

定义是否使用morphNormals。设置为true可将morphNormal属性从[page:Geometry]传递到shader。默认值为*false*。

### [property:Boolean morphTargets]

定义材质是否使用morphTargets。默认值为false。

### [property:Texture normalMap]

用于创建法线贴图的纹理。RGB值会影响每个像素片段的曲面法线，并更改颜色照亮的方式。法线贴图不会改变曲面的实际形状，只会改变光照。

### [property:Integer normalMapType]

法线贴图的类型。
选项为[page:constant THREE.TangentSpaceNormalMap]（默认）和[page:constant THREE.ObjectSpaceNormalMap]。

### [property:Vector2 normalScale]

法线贴图对材质的影响程度。典型范围是0-1。默认值是[page:Vector2]设置为（1,1）。

### [property:Float reflectivity]

环境贴图对表面的影响程度; 见[page:.combine]。默认值为1，有效范围介于0（无反射）和1（完全反射）之间。

### [property:Float refractionRatio]

空气的折射率（IOR）（约为1）除以材质的折射率。它与环境映射模式[page:Textures THREE.CubeRefractionMapping] 和[page:Textures THREE.EquirectangularRefractionMapping]一起使用。 折射率不应超过1。默认值为*0.98*。

### [property:Float shininess]

[page:.specular]高亮的程度，越高的值越闪亮。默认值为 *30*。

### [property:Boolean skinning]

材质是否使用蒙皮。默认值为false。

### [property:Color specular]

材质的高光颜色。默认值为*0x111111*（深灰色）的颜色[page:Color]。
这定义了材质的光泽度和光泽的颜色。

### [property:Texture specularMap]

镜面反射贴图值会影响镜面高光以及环境贴图对表面的影响程度。默认值为null。

### [property:Boolean wireframe]

将几何体渲染为线框。默认值为*false*（即渲染为平面多边形）。

### [property:String wireframeLinecap]

定义线两端的外观。可选值为 'butt'，'round' 和 'square'。默认为'round'。
该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性， 并且会被[page:WebGLRenderer WebGL]渲染器忽略。

### [property:String wireframeLinejoin]

定义线连接节点的样式。可选值为 'round', 'bevel' 和 'miter'。默认值为 'round'。
该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性， 并且会被[page:WebGLRenderer WebGL]渲染器忽略。

### [property:Float wireframeLinewidth]

控制线框宽度。默认值为1。
由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与 大多数平台上[page:WebGLRenderer WebGL]渲染器的限制，无论如何设置该值，线宽始终为1。

## 方法(Methods)

共有方法请参见其基类[page:Material]。

## 源码(Source)

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]