You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.9 KiB

2 years ago
<!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] &rarr;
<h1>[name]</h1>
<p class="desc">
[name] is internally used for implementing shadow mapping with [page:PointLight]s.<br/><br/>
Can also be used to customize the shadow casting of an object by assigning an instance of [name] to [page:Object3D.customDistanceMaterial].
The following examples demonstrates this approach in order to ensure transparent parts of objects do no cast shadows.
</p>
<h2>Examples</h2>
<p>
[example:webgl_shadowmap_pointlight WebGL / shadowmap / pointlight]
</p>
<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.
</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 displacementMap]</h3>
<p>
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.
</p>
<h3>[property:Float displacementScale]</h3>
<p>
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.
</p>
<h3>[property:Float displacementBias]</h3>
<p>
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.
</p>
<h3>[property:Float farDistance]</h3>
<p>
The far value of the point light's internal shadow camera.
</p>
<h3>[property:Boolean fog]</h3>
<p>Whether the material is affected by fog. Default is `false`.</p>
<h3>[property:Texture map]</h3>
<p>
The color map. May optionally include an alpha channel, typically combined with
[page:Material.transparent .transparent] or [page:Material.alphaTest .alphaTest]. Default is null.
</p>
<h3>[property:Float nearDistance]</h3>
<p>
The near value of the point light's internal shadow camera.
</p>
<h3>[property:Vector3 referencePosition]</h3>
<p>
The position of the point light in world space.
</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>