MeshPhongMaterial.html 9.5 KB
Newer Older
1 2 3
<!DOCTYPE html>
<html lang="en">
	<head>
4
		<meta charset="utf-8" />
M
Mr.doob 已提交
5 6 7 8
		<base href="../../" />
		<script src="list.js"></script>
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
9 10
	</head>
	<body>
C
cjshannon 已提交
11
		[page:Material] &rarr;
M
Mr.doob 已提交
12

13
		<h1>[name]</h1>
M
Mr.doob 已提交
14

L
looeee 已提交
15
		<div class="desc">
16
			A material for shiny surfaces with specular highlights.<br /><br />
L
looeee 已提交
17

18
			The uses a non-physically based [link:https://en.wikipedia.org/wiki/Blinn-Phong_shading_model Blinn-Phong]
19 20 21 22
			model	for calculating reflectance. Unlike the Lambertian model used in the [page:MeshLambertMaterial]
			this can simulate shiny surfaces with specular highlights (such as varnished wood).<br /><br />

			Shading is calculated using a [link:https://en.wikipedia.org/wiki/Phong_shading Phong] shading model.
L
looeee 已提交
23 24
			This calculates shading per pixel (i.e. in the [link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragment shader],
			AKA pixel shader)	which gives more accurate results than the Gouraud model used by [page:MeshLambertMaterial],
25 26 27 28 29
			at the cost of some performance. The [page:MeshStandardMaterial] and [page:MeshPhysicalMaterial]
			also use this shading model.<br /><br />

			Performance will generally be greater when using this material over the	[page:MeshStandardMaterial]
			or [page:MeshPhysicalMaterial], at the cost of some graphical accuracy.
L
looeee 已提交
30
		</div>
M
Mr.doob 已提交
31

32
		<iframe id="scene" src="scenes/material-browser.html#MeshPhongMaterial"></iframe>
M
Mr.doob 已提交
33

34 35 36 37 38 39 40
		<script>

		// iOS iframe auto-resize workaround

		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {

			var scene = document.getElementById( 'scene' );
M
Mr.doob 已提交
41

42 43 44 45 46 47 48 49 50
			scene.style.width = getComputedStyle( scene ).width;
			scene.style.height = getComputedStyle( scene ).height;
			scene.setAttribute( 'scrolling', 'no' );

		}

		</script>

		<h2>Constructor</h2>
C
cjshannon 已提交
51

52
		<h3>[name]( [page:Object parameters] )</h3>
C
cjshannon 已提交
53
		<div>
L
looeee 已提交
54 55
			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
			Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
56

L
looeee 已提交
57 58
			The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
			string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
C
cjshannon 已提交
59
		</div>
M
Mr.doob 已提交
60

61
		<h2>Properties</h2>
62
		<div>See the base [page:Material] class for common properties.</div>
M
Mr.doob 已提交
63

L
looeee 已提交
64 65 66 67 68 69 70 71 72
		<h3>[property:Texture alphaMap]</h3>
		<div>The alpha map is a grayscale texture that controls the opacity across the surface
			(black: fully transparent; white: fully opaque). Default is null.<br /><br />

			Only the color of the texture is used, ignoring the alpha channel if one exists.
			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
			green channel when sampling this texture due to the extra bit of precision provided
			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
			luminance/alpha textures will also still work as expected.
E
Eric Haines 已提交
73 74
		</div>

L
looeee 已提交
75 76 77 78 79 80 81
		<h3>[property:Texture aoMap]</h3>
		<div>The ambient occlusion map. Default is null.</div>

		<h3>[property:Float aoMapIntensity]</h3>
		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>

		<h3>[property:Texture bumpMap]</h3>
E
Eric Haines 已提交
82
		<div>
L
looeee 已提交
83 84 85
			The texture to create a bump map. The black and white values map to the perceived depth in relation to the lights.
			Bump doesn't actually affect the geometry of the object, only the lighting. If a normal map is defined this will
			be ignored.
E
Eric Haines 已提交
86
		</div>
M
Mr.doob 已提交
87

L
looeee 已提交
88 89
		<h3>[property:Float bumpScale]</h3>
		<div>How much the bump map affects the material. Typical ranges are 0-1. Default is 1.</div>
E
Eric Haines 已提交
90 91


L
looeee 已提交
92 93
		<h3>[property:Color color]</h3>
		<div>[page:Color] of the material, by default set to white (0xffffff).</div>
E
Eric Haines 已提交
94

L
looeee 已提交
95 96 97
		<h3>[property:Integer combine]</h3>
		<div>
			How to combine the result of the surface's color with the environment map, if any.<br /><br />
98

L
looeee 已提交
99 100 101 102
			Options are [page:Materials THREE.Multiply] (default), [page:Materials THREE.MixOperation],
			[page:Materials THREE.AddOperation]. If mix is chosen, the [page:.reflectivity] is used to
			blend between the two colors.
		</div>
103

L
looeee 已提交
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
		<h3>[property:Texture displacementMap]</h3>
		<div>
			The displacement map affects the position of the mesh's vertices. Unlike other maps
			which only affect the light and shade of the material the displaced vertices can cast shadows,
			block other objects, and otherwise act as real geometry. The displacement texture is
			an image where the value of each pixel (white being the highest) is mapped against,
			and repositions, the vertices of the mesh.
		</div>

		<h3>[property:Float displacementScale]</h3>
		<div>
			How much the displacement map affects the mesh (where black is no displacement,
			and white is maximum displacement). Without a displacement map set, this value is not applied.
			 Default is 1.
		</div>

		<h3>[property:Float displacementBias]</h3>
		<div>
			The offset of the displacement map's values on the mesh's vertices.
			Without a displacement map set, this value is not applied. Default is 0.
		</div>
125 126 127

		<h3>[property:Color emissive]</h3>
		<div>
L
looeee 已提交
128 129
		Emissive (light) color of the material, essentially a solid color unaffected by other lighting.
		Default is black.
130 131
		</div>

132
		<h3>[property:Texture emissiveMap]</h3>
L
looeee 已提交
133 134 135 136 137
		<div>
		Set emisssive (glow) map. Default is null. The emissive map color is modulated by
		the emissive color and the emissive intensity. If you have an emissive map, be sure to
		set the emissive color to something other than black.
		</div>
138

139 140 141
		<h3>[property:Float emissiveIntensity]</h3>
		<div>Intensity of the emissive light. Modulates the emissive color. Default is 1.</div>

L
looeee 已提交
142 143 144 145
		<h3>[property:TextureCube envMap]</h3>
		<div>The environment map. Default is null.</div>

		<h3>[property:Boolean isMeshPhongMaterial]</h3>
146
		<div>
L
looeee 已提交
147 148 149
			Used to check whether this or derived classes are mesh Phong materials. Default is *true*.<br /><br />

			You should not change this, as it used internally for optimisation.
150
		</div>
151

L
looeee 已提交
152 153 154 155 156 157 158 159 160 161 162

		<h3>[property:Texture lightMap]</h3>
		<div>The light map. Default is null. The lightMap requires a second set of UVs.</div>

		<h3>[property:Float lightMapIntensity]</h3>
		<div>Intensity of the baked light. Default is 1.</div>

		<h3>[property:Texture map]</h3>
		<div>The color map. Default is null. The texture map color is modulated by the diffuse [page:.color].</div>

		<h3>[property:boolean morphNormals]</h3>
163
		<div>
L
looeee 已提交
164 165
			Defines whether the material uses morphNormals. Set as true to pass morphNormal
			attributes from the [page:Geometry]	to the shader. Default is *false*.
166 167
		</div>

L
looeee 已提交
168 169 170
		<h3>[property:Boolean morphTargets]</h3>
		<div>Define whether the material uses morphTargets. Default is false.</div>

171 172 173 174 175
		<h3>[property:Texture normalMap]</h3>
		<div>
			The texture to create a normal map. The RGB values affect the surface normal for each pixel fragment and change
			the way the color is lit. Normal maps do not change the actual shape of the surface, only the lighting.
		</div>
176

177 178
		<h3>[property:Vector2 normalScale]</h3>
		<div>
L
looeee 已提交
179 180
			How much the normal map affects the material. Typical ranges are 0-1.
			Default is a [page:Vector2] set to (1,1).
181
		</div>
182

183

L
looeee 已提交
184 185
		<h3>[property:Float reflectivity]</h3>
		<div>How much the environment map affects the surface; also see [page:.combine].</div>
186

L
looeee 已提交
187 188
		<h3>[property:Float refractionRatio]</h3>
		<div>The index of refraction for an environment map using [page:Textures THREE.CubeRefractionMapping]. Default is *0.98*.</div>
189

L
looeee 已提交
190 191
		<h3>[property:Float shininess]</h3>
		<div>How shiny the [page:.specular] highlight is; a higher value gives a sharper highlight. Default is *30*.</div>
192

E
Eric Haines 已提交
193

L
looeee 已提交
194 195
		<h3>[property:Boolean skinning]</h3>
		<div>Define whether the material uses skinning. Default is false.</div>
E
Eric Haines 已提交
196

L
looeee 已提交
197 198 199
		<h3>[property:Texture specular]</h3>
		<div>
			Specular color of the material. Default is a [page:Color] set to *0x111111* (very dark grey).<br /><br />
200

L
looeee 已提交
201 202
			This defines how shiny the material is and the color of its shine.
		</div>
203

L
looeee 已提交
204 205 206 207 208
		<h3>[property:Texture specularMap]</h3>
		<div>
			The specular map value affects both how much the specular surface highlight
			contributes and how much of the environment map affects the surface. Default is null.
		</div>
209

210
		<h3>[property:Boolean wireframe]</h3>
L
looeee 已提交
211
		<div>Render geometry as wireframe. Default is *false* (i.e. render as flat polygons).</div>
212 213

		<h3>[property:String wireframeLinecap]</h3>
L
looeee 已提交
214 215
		<div>
			Define appearance of line ends. Possible values are "butt", "round" and "square". Default is 'round'.<br /><br />
216

L
looeee 已提交
217 218 219
			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
		</div>
220

L
looeee 已提交
221 222 223
		<h3>[property:String wireframeLinejoin]</h3>
		<div>
			Define appearance of line joints. Possible values are "round", "bevel" and "miter". Default is 'round'.<br /><br />
224

L
looeee 已提交
225 226 227
			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
		</div>
228

L
looeee 已提交
229 230
		<h3>[property:Float wireframeLinewidth]</h3>
		<div>Controls wireframe thickness. Default is 1.<br /><br />
E
Eric Haines 已提交
231

L
looeee 已提交
232 233
		Due to limitations in the [link:https://code.google.com/p/angleproject ANGLE layer],
		on Windows platforms linewidth will always be 1 regardless of the set value.
G
Greg Tatum 已提交
234
		</div>
C
cjshannon 已提交
235

E
Eric Haines 已提交
236
		<h2>Methods</h2>
L
looeee 已提交
237 238
		<div>See the base [page:Material] class for common methods.</div>

239
		<h2>Source</h2>
M
Mr.doob 已提交
240

241 242 243
		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
	</body>
</html>