181 lines
6.9 KiB
HTML
181 lines
6.9 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="en">
|
||
|
|
<head>
|
||
|
|
<meta charset="utf-8" />
|
||
|
|
<base href="../../../" />
|
||
|
|
<script src="page.js"></script>
|
||
|
|
<link type="text/css" rel="stylesheet" href="page.css" />
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
[page:Material] →
|
||
|
|
|
||
|
|
<h1>[name]</h1>
|
||
|
|
|
||
|
|
<p class="desc">
|
||
|
|
A material for non-shiny surfaces, without specular highlights.<br /><br />
|
||
|
|
|
||
|
|
The material uses a non-physically based [link:https://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian]
|
||
|
|
model for calculating reflectance. This can simulate some surfaces (such as untreated wood or stone) well,
|
||
|
|
but cannot simulate shiny surfaces with specular highlights (such as varnished wood).<br /><br />
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
Shading is calculated using a [link:https://en.wikipedia.org/wiki/Gouraud_shading Gouraud] shading model.
|
||
|
|
This calculates shading per vertex (i.e. in the [link:https://en.wikipedia.org/wiki/Shader#Vertex_shaders vertex shader])
|
||
|
|
and interpolates the results over the polygon's faces.<br /><br />
|
||
|
|
|
||
|
|
Due to the simplicity of the reflectance and illumination models, performance will be greater
|
||
|
|
when using this material over the [page:MeshPhongMaterial], [page:MeshStandardMaterial] or [page:MeshPhysicalMaterial],
|
||
|
|
at the cost of some graphical accuracy.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<iframe id="scene" src="scenes/material-browser.html#MeshLambertMaterial"></iframe>
|
||
|
|
|
||
|
|
<script>
|
||
|
|
|
||
|
|
// iOS iframe auto-resize workaround
|
||
|
|
|
||
|
|
if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
|
||
|
|
|
||
|
|
const scene = document.getElementById( 'scene' );
|
||
|
|
|
||
|
|
scene.style.width = getComputedStyle( scene ).width;
|
||
|
|
scene.style.height = getComputedStyle( scene ).height;
|
||
|
|
scene.setAttribute( 'scrolling', 'no' );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
</script>
|
||
|
|
|
||
|
|
<h2>Constructor</h2>
|
||
|
|
|
||
|
|
<h3>[name]( [param:Object parameters] )</h3>
|
||
|
|
<p>
|
||
|
|
[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 />
|
||
|
|
|
||
|
|
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.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h2>Properties</h2>
|
||
|
|
<p>See the base [page:Material] class for common properties.</p>
|
||
|
|
|
||
|
|
<h3>[property:Texture alphaMap]</h3>
|
||
|
|
<p>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.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h3>[property:Texture aoMap]</h3>
|
||
|
|
<p>The red channel of this texture is used as the ambient occlusion map. Default is null.
|
||
|
|
The aoMap requires a second set of UVs.</p>
|
||
|
|
|
||
|
|
<h3>[property:Float aoMapIntensity]</h3>
|
||
|
|
<p>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</p>
|
||
|
|
|
||
|
|
<h3>[property:Color color]</h3>
|
||
|
|
<p>[page:Color] of the material, by default set to white (0xffffff).</p>
|
||
|
|
|
||
|
|
<h3>[property:Integer combine]</h3>
|
||
|
|
<p>
|
||
|
|
How to combine the result of the surface's color with the environment map, if any.<br /><br />
|
||
|
|
|
||
|
|
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.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h3>[property:Color emissive]</h3>
|
||
|
|
<p>
|
||
|
|
Emissive (light) color of the material, essentially a solid color unaffected by other lighting.
|
||
|
|
Default is black.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h3>[property:Texture emissiveMap]</h3>
|
||
|
|
<p>
|
||
|
|
Set emissive (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.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h3>[property:Float emissiveIntensity]</h3>
|
||
|
|
<p>Intensity of the emissive light. Modulates the emissive color. Default is 1.</p>
|
||
|
|
|
||
|
|
<h3>[property:Texture envMap]</h3>
|
||
|
|
<p>The environment map. Default is null.</p>
|
||
|
|
|
||
|
|
<h3>[property:Texture lightMap]</h3>
|
||
|
|
<p>The light map. Default is null. The lightMap requires a second set of UVs.</p>
|
||
|
|
|
||
|
|
<h3>[property:Float lightMapIntensity]</h3>
|
||
|
|
<p>Intensity of the baked light. Default is 1.</p>
|
||
|
|
|
||
|
|
<h3>[property:Texture map]</h3>
|
||
|
|
<p>The color map. Default is null.</p>
|
||
|
|
|
||
|
|
<h3>[property:Boolean morphNormals]</h3>
|
||
|
|
<p>
|
||
|
|
Defines whether the material uses morphNormals. Set as true to pass morphNormal
|
||
|
|
attributes from the geometry to the shader. Default is *false*.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h3>[property:Boolean morphTargets]</h3>
|
||
|
|
<p>Define whether the material uses morphTargets. Default is false.</p>
|
||
|
|
|
||
|
|
<h3>[property:Float reflectivity]</h3>
|
||
|
|
<p>How much the environment map affects the surface; also see [page:.combine].</p>
|
||
|
|
|
||
|
|
<h3>[property:Float refractionRatio]</h3>
|
||
|
|
<p>
|
||
|
|
The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
|
||
|
|
It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
|
||
|
|
The refraction ratio should not exceed 1. Default is *0.98*.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h3>[property:Texture specularMap]</h3>
|
||
|
|
<p>Specular map used by the material. Default is null.</p>
|
||
|
|
|
||
|
|
<h3>[property:Boolean wireframe]</h3>
|
||
|
|
<p>Render geometry as wireframe. Default is *false* (i.e. render as flat polygons).</p>
|
||
|
|
|
||
|
|
<h3>[property:String wireframeLinecap]</h3>
|
||
|
|
<p>
|
||
|
|
Define appearance of line ends. Possible values are "butt", "round" and "square". Default is 'round'.<br /><br />
|
||
|
|
|
||
|
|
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.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h3>[property:String wireframeLinejoin]</h3>
|
||
|
|
<p>
|
||
|
|
Define appearance of line joints. Possible values are "round", "bevel" and "miter". Default is 'round'.<br /><br />
|
||
|
|
|
||
|
|
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.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h3>[property:Float wireframeLinewidth]</h3>
|
||
|
|
<p>Controls wireframe thickness. Default is 1.<br /><br />
|
||
|
|
|
||
|
|
Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
|
||
|
|
with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
|
||
|
|
always be 1 regardless of the set value.
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<h2>Methods</h2>
|
||
|
|
<p>See the base [page:Material] class for common methods.</p>
|
||
|
|
|
||
|
|
<h2>Source</h2>
|
||
|
|
|
||
|
|
<p>
|
||
|
|
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
|
||
|
|
</p>
|
||
|
|
</body>
|
||
|
|
</html>
|