File: Textures.html

package info (click to toggle)
three.js 111%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 15,184 kB
  • sloc: javascript: 133,174; makefile: 24; sh: 1
file content (270 lines) | stat: -rw-r--r-- 11,669 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="list.js"></script>
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		<h1>Texture Constants</h1>

		<h2>Mapping Modes</h2>
		<code>
		THREE.UVMapping
		THREE.CubeReflectionMapping
		THREE.CubeRefractionMapping
		THREE.EquirectangularReflectionMapping
		THREE.EquirectangularRefractionMapping
		THREE.SphericalReflectionMapping
		THREE.CubeUVReflectionMapping
		THREE.CubeUVRefractionMapping
		</code>

		<p>
		These define the texture's mapping mode.<br />
		[page:Constant UVMapping] is the default, and maps the texture using the mesh's UV coordinates.<br /><br />

		The rest define environment mapping types.<br /><br />

		[page:Constant CubeReflectionMapping] and [page:Constant CubeRefractionMapping] are for
		use with a [page:CubeTexture CubeTexture], which is made up of six textures, one for each face of the cube.
		[page:Constant CubeReflectionMapping] is the default for a [page:CubeTexture CubeTexture]. <br /><br />

		[page:Constant EquirectangularReflectionMapping] and [page:Constant EquirectangularRefractionMapping]
		are for use with an equirectangular environment map.  Also called a lat-long map, an equirectangular
		texture represents a 360-degree view along the horizontal centerline, and a 180-degree view along the
		vertical axis, with the top and bottom edges of the image corresponding to the north and south poles
		of a mapped sphere.<br /><br />

		[page:Constant SphericalReflectionMapping] is for use with a spherical reflection map such as may be obtained
		by cropping a photograph of a mirrored ball.  Sphere maps will be rendered "facing" the camera, irrespective
		of the position of the camera relative to the cubemapped object or surface.<br /><br />

		See the [example:webgl_materials_envmaps materials / envmaps] example.
		</p>


		<h2>Wrapping Modes</h2>
		<code>
		THREE.RepeatWrapping
		THREE.ClampToEdgeWrapping
		THREE.MirroredRepeatWrapping
		</code>
		<p>
		These define the texture's [page:Texture.wrapS wrapS] and [page:Texture.wrapT wrapT] properties,
		which define horizontal and vertical texture wrapping.<br /><br />

		With [page:constant RepeatWrapping] the texture will simply repeat to infinity.<br /><br />

		[page:constant ClampToEdgeWrapping] is the default.
		The last pixel of the texture stretches to the edge of the mesh.<br /><br />

		With [page:constant MirroredRepeatWrapping] the texture will repeats to infinity, mirroring on each repeat.
		</p>

		<h2>Magnification Filters</h2>
		<code>
		THREE.NearestFilter
		THREE.LinearFilter
		</code>

		<p>
		For use with a texture's [page:Texture.magFilter magFilter]	property,
		these define the texture magnification function to be used when the pixel being textured maps to an
		area less than or equal to one texture element (texel).<br /><br />

		[page:constant NearestFilter] returns the value of the texture element that is nearest
		(in Manhattan distance) to the specified texture coordinates.<br /><br />

		[page:constant LinearFilter] is the default and returns the weighted average
		of the four texture elements that are closest to the specified texture coordinates,
		and can include items wrapped or repeated from other parts of a texture,
		depending on the values of [page:Texture.wrapS wrapS] and [page:Texture.wrapT wrapT], and on the exact mapping.
		</p>

		<h2>Minification Filters</h2>
		<code>
		THREE.NearestFilter
		THREE.NearestMipmapNearestFilter
		THREE.NearestMipmapLinearFilter
		THREE.LinearFilter
		THREE.LinearMipmapNearestFilter
		THREE.LinearMipmapLinearFilter
		</code>

		<p>
		For use with a texture's [page:Texture.minFilter minFilter]	property, these define
		the texture minifying function that is used whenever the pixel being textured maps
		to an area greater than one texture element (texel).<br /><br />

		In addition to [page:constant NearestFilter] and [page:constant LinearFilter],
		the following four functions can be used for minification:<br /><br />

		[page:constant NearestMipmapNearestFilter] chooses the mipmap that most closely
		matches the size of the pixel being textured
		and uses the [page:constant NearestFilter] criterion (the texel nearest to the
		center of the pixel) to produce a texture value.<br /><br />

		[page:constant NearestMipmapLinearFilter] chooses the two mipmaps that most closely
		match the size of the pixel being textured and uses the [page:constant NearestFilter] criterion to produce
		a texture value from each mipmap. The final texture value is a weighted average of those two values.<br /><br />

		[page:constant LinearMipmapNearestFilter] chooses the mipmap that most closely matches
		the size of the pixel being textured and uses the [page:constant LinearFilter] criterion
		(a weighted average of the four texels that are closest to the center of the pixel)
		to produce a texture value.<br /><br />

		[page:constant LinearMipmapLinearFilter] is the default and chooses the two mipmaps
		that most closely match the size of the pixel being textured and uses the [page:constant LinearFilter] criterion
		to produce a texture value from each mipmap. The final texture value is a weighted average of those two values.<br /><br />

		See the [example:webgl_materials_texture_filters materials / texture / filters] example.
		</p>

		<h2>Types</h2>
		<code>
		THREE.UnsignedByteType
		THREE.ByteType
		THREE.ShortType
		THREE.UnsignedShortType
		THREE.IntType
		THREE.UnsignedIntType
		THREE.FloatType
		THREE.HalfFloatType
		THREE.UnsignedShort4444Type
		THREE.UnsignedShort5551Type
		THREE.UnsignedShort565Type
		THREE.UnsignedInt248Type
		</code>
		<p>
		For use with a texture's [page:Texture.type type]	property, which must correspond to the correct format. See below for details.<br /><br />

		[page:constant UnsignedByteType] is the default.
		</p>

		<h2>Formats</h2>
		<code>
		THREE.AlphaFormat
		THREE.RGBFormat
		THREE.RGBAFormat
		THREE.LuminanceFormat
		THREE.LuminanceAlphaFormat
		THREE.RGBEFormat
		THREE.DepthFormat
		THREE.DepthStencilFormat
		</code>
		<p>
		For use with a texture's [page:Texture.format format]	property, these define
		how elements of a 2d texture, or *texels*, are read by shaders.<br /><br />

		[page:constant AlphaFormat] discards the red, green and blue components and reads just the alpha component.<br /><br />

		[page:constant RGBFormat] discards the alpha components and reads the red, green and blue components.<br /><br />

		[page:constant RGBAFormat] is the default and reads the red, green, blue and alpha components.<br /><br />

		[page:constant LuminanceFormat] reads each element as a single luminance component.
		 This is then converted to a floating point, clamped to the range [0,1], and then assembled
		 into an RGBA element by placing the luminance value in the red, green and blue channels,
		 and attaching 1.0 to the alpha channel.<br /><br />

		[page:constant LuminanceAlphaFormat] reads each element as a luminance/alpha double.
		The same process occurs as for the [page:constant LuminanceFormat], except that the
		alpha channel may have values other than *1.0*.<br /><br />

		[page:constant RGBEFormat] is identical to [page:constant RGBAFormat].<br /><br />

		[page:constant DepthFormat] reads each element as a single depth value, converts it to floating point, and clamps to the range [0,1].
		This is the default for [page:DepthTexture DepthTexture].<br /><br />

		[page:constant DepthStencilFormat] reads each element is a pair of depth and stencil values.
		The depth component of the pair is interpreted as in [page:constant DepthFormat].
		The stencil component is interpreted based on the depth + stencil internal format.
		<br /><br />

		Note that the texture must have the correct [page:Texture.type type] set, as described above.
		See [link:https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext/texImage2D WebGLRenderingContext.texImage2D] for details.
		</p>

		<h2>DDS / ST3C Compressed Texture Formats</h2>
		<code>
		THREE.RGB_S3TC_DXT1_Format
		THREE.RGBA_S3TC_DXT1_Format
		THREE.RGBA_S3TC_DXT3_Format
		THREE.RGBA_S3TC_DXT5_Format
		</code>
		<p>
		For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format]	property,
		these require support for the
		[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/ WEBGL_compressed_texture_s3tc]
		extension. <br /><br />

		There are four [link:https://en.wikipedia.org/wiki/S3_Texture_Compression S3TC] formats available via this extension. These are:<br />
		[page:constant RGB_S3TC_DXT1_Format]: A DXT1-compressed image in an RGB image format.<br />
		[page:constant RGBA_S3TC_DXT1_Format]: A DXT1-compressed image in an RGB image format with a simple on/off alpha value.<br />
		[page:constant RGBA_S3TC_DXT3_Format]: A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression.<br />
		[page:constant RGBA_S3TC_DXT5_Format]: A DXT5-compressed image in an RGBA image format. It also provides a 4:1 compression, but differs to the DXT3 compression in how the alpha compression is done.<br />
		</p>

		<h2>PVRTC Compressed Texture Formats</h2>
		<code>
		THREE.RGB_PVRTC_4BPPV1_Format
		THREE.RGB_PVRTC_2BPPV1_Format
		THREE.RGBA_PVRTC_4BPPV1_Format
		THREE.RGBA_PVRTC_2BPPV1_Format
		</code>
		<p>
		For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format]	property,
		these require support for the [link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/ WEBGL_compressed_texture_pvrtc]
		extension. <br />
		PVRTC is typically only available on mobile devices with PowerVR chipsets, which are mainly Apple devices.<br /><br />

		There are four [link:https://en.wikipedia.org/wiki/PVRTC PVRTC] formats available via this extension. These are:<br />
		[page:constant RGB_PVRTC_4BPPV1_Format]: RGB compression in 4-bit mode. One block for each 4×4 pixels.<br />
		[page:constant RGB_PVRTC_2BPPV1_Format]: RGB compression in 2-bit mode. One block for each 8×4 pixels.<br />
		[page:constant RGBA_PVRTC_4BPPV1_Format]: RGBA compression in 4-bit mode. One block for each 4×4 pixels.<br />
		[page:constant RGBA_PVRTC_2BPPV1_Format]: RGBA compression in 2-bit mode. One block for each 8×4 pixels.<br />
		</p>

		<h2>ETC Compressed Texture Format</h2>
		<code>
		THREE.RGB_ETC1_Format
		</code>
		<p>
		For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format]	property,
		these require support for the [link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc1/ WEBGL_compressed_texture_etc1]
		extension. <br /><br />
		</p>

		<h2>Encoding</h2>
		<code>
		THREE.LinearEncoding
		THREE.sRGBEncoding
		THREE.GammaEncoding
		THREE.RGBEEncoding
		THREE.LogLuvEncoding
		THREE.RGBM7Encoding
		THREE.RGBM16Encoding
		THREE.RGBDEncoding
		THREE.BasicDepthPacking
		THREE.RGBADepthPacking
		</code>
		<p>
		For use with a Texture's [page:Texture.encoding encoding]	property.<br /><br />

		If the encoding type is changed after the texture has already been used by a material,
		you will need to set [page:Material.needsUpdate Material.needsUpdate] to *true* to make the material recompile.<br /><br />

		[page:constant LinearEncoding] is the default.
		Values other than this are only valid for a material's map, envMap and emissiveMap.
		</p>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
		</p>
	</body>
</html>