File: BasisTextureLoader.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 (140 lines) | stat: -rw-r--r-- 4,628 bytes parent folder | download | duplicates (4)
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
<!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>
		[page:Loader] &rarr;

		<h1>[name]</h1>

		<p class="desc">
			Loader for Basis Universal GPU Texture Codec.<br><br>

			[link:https://github.com/BinomialLLC/basis_universal/ Basis Universal] is a
			"supercompressed" GPU texture and texture video compression system that
			outputs a highly compressed intermediate file format (.basis) that can be
			quickly transcoded to a wide variety of GPU texture compression formats.
		</p>

		<p>
			This loader parallelizes the transcoding process across a configurable number
			of web workers, before transferring the transcoded compressed texture back
			to the main thread. The required WASM transcoder and JS wrapper are available from the
			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
			directory.
		</p>

		<h2>Example</h2>

		<code>
		var basisLoader = new THREE.BasisTextureLoader();
		basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
		basisLoader.detectSupport( renderer );
		basisLoader.load( 'diffuse.basis', function ( texture ) {

			var material = new THREE.MeshStandardMaterial( { map: texture } );

		}, function () {

			console.log( 'onProgress' );

		}, function ( e ) {

			console.error( e );

		} );
		</code>

		[example:webgl_loader_texture_basis]

		<h2>Browser compatibility</h2>

		<p>
			BasisTextureLoader transcodes input textures in '.basis' format to an
			appropriate compressed texture format for the target device, where
			possible. This allows the same source texture to be served across
			desktop, Android, and iOS devices, and transcoded into ASTC, DXT, ETC1,
			or PVRTC1. Other output formats may be supported in the future.
		</p>
		<p>
			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
		</p>
		<p>
			This loader relies on ES6 Promises and Web Assembly, which are not
			supported in IE11.
		</p>

		<br>
		<hr>

		<h2>Constructor</h2>

		<h3>[name]( [param:LoadingManager manager] )</h3>
		<p>
		[page:LoadingManager manager] — The [page:LoadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
		</p>
		<p>
		Creates a new [name].
		</p>

		<h2>Properties</h2>
		<p>See the base [page:Loader] class for common properties.</p>

		<h2>Methods</h2>
		<p>See the base [page:Loader] class for common methods.</p>

		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
		<p>
		[page:String url] — A string containing the path/URL of the <em>.basis</em> file.<br />
		[page:Function onLoad] — A function to be called after the loading is successfully completed.<br />
		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
		</p>
		<p>
		Load from url and call the <em>onLoad</em> function with the transcoded [page:CompressedTexture].
		</p>

		<h3>[method:this detectSupport]( [param:WebGLRenderer renderer] )</h3>
		<p>
		[page:WebGLRenderer renderer] — A renderer instance.
		</p>
		<p>
		Detects hardware support for available compressed texture formats, to determine
		the output format for the transcoder. Must be called before loading a texture.
		</p>

		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
		<p>
		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.
		</p>
		<p>
		The WASM transcoder and JS wrapper are available from the
		[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
		directory.
		</p>

		<h3>[method:this setWorkerLimit]( [param:Number limit] )</h3>
		<p>
		[page:Number limit] — Maximum number of workers. Default is '4'.
		</p>
		<p>
		Sets the maximum number of web workers to be allocated by this instance.
		</p>

		<h3>[method:this dispose]()</h3>
		<p>
		Disposes the loader object, de-allocating any Web Workers created.
		</p>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/BasisTextureLoader.js examples/js/loaders/BasisTextureLoader.js]
		</p>
	</body>
</html>