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

115 lines
3.6 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:Texture] &rarr;
<h1>[name]</h1>
<p class="desc">从原始数据raw data、宽width、高height来直接创建一个纹理贴图。</p>
<h2>构造函数</h2>
<h3>[name]( data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace )</h3>
<p>
data 参数必须是一个 [link:https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView ArrayBufferView] 。
其他参数对应于继承自 [page:Texture] 的属性,其中 magFilter 与 minFilter 默认为 THREE.NearestFilter。
</p>
<p>
数据的解释取决于type与format
If the type is THREE.UnsignedByteType, a Uint8Array will be useful for addressing the texel data.
If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity).<br />
For the packed types, THREE.UnsignedShort4444Type and THREE.UnsignedShort5551Type all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
In order to use the types THREE.FloatType and THREE.HalfFloatType, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use THREE.LinearFilter for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.
</p>
<h2>代码示例</h2>
<code>
// create a buffer with color data
const width = 512;
const height = 512;
const size = width * height;
const data = new Uint8Array( 4 * size );
const color = new THREE.Color( 0xffffff );
const r = Math.floor( color.r * 255 );
const g = Math.floor( color.g * 255 );
const b = Math.floor( color.b * 255 );
for ( let i = 0; i < size; i ++ ) {
const stride = i * 4;
data[ stride ] = r;
data[ stride + 1 ] = g;
data[ stride + 2 ] = b;
data[ stride + 3 ] = 255;
}
// used the buffer to create a [name]
const texture = new THREE.DataTexture( data, width, height );
texture.needsUpdate = true;
</code>
<h2>属性</h2>
<p>
See the base [page:Texture Texture] class for common properties.
</p>
<h3>[property:Boolean flipY]</h3>
<p>
If set to *true*, the texture is flipped along the vertical axis when uploaded to the GPU. Default is *false*.
</p>
<h3>[property:Boolean generateMipmaps]</h3>
<p>
Whether to generate mipmaps (if possible) for a texture. False by default.
</p>
<h3>[property:Object image]</h3>
<p>
Overridden with a record type holding data, width and height.
</p>
<h3>[property:Boolean isDataTexture]</h3>
<p>
只读属性,用于检查给定对象是否为[name]类型。
</p>
<h3>[property:number unpackAlignment]</h3>
<p>
1 by default. Specifies the alignment requirements for the start of each pixel row in memory.
The allowable values are 1 (byte-alignment), 2 (rows aligned to even-numbered bytes),
4 (word-alignment), and 8 (rows start on double-word boundaries).
See [link:http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml glPixelStorei]
for more information.
</p>
<h2>方法</h2>
<p>
See the base [page:Texture Texture] class for common methods.
</p>
<h2>源码</h2>
<p>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</p>
</body>
</html>