Kaynağa Gözat

Add document for browser support

keqingrong 7 yıl önce
ebeveyn
işleme
3675404aaf
2 değiştirilmiş dosya ile 185 ekleme ve 0 silme
  1. 1 0
      docs/list.js
  2. 184 0
      docs/manual/introduction/Browser-support.html

+ 1 - 0
docs/list.js

@@ -5,6 +5,7 @@ var list = {
 		"Getting Started": {
 			"Creating a scene": "manual/introduction/Creating-a-scene",
 			"Import via modules": "manual/introduction/Import-via-modules",
+			"Browser support": "manual/introduction/Browser-support",
 			"WebGL compatibility check": "manual/introduction/WebGL-compatibility-check",
 			"How to run things locally": "manual/introduction/How-to-run-thing-locally",
 			"Drawing Lines": "manual/introduction/Drawing-lines",

+ 184 - 0
docs/manual/introduction/Browser-support.html

@@ -0,0 +1,184 @@
+<!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>[name]</h1>
+
+	<h2>Overview</h2>
+	<div>
+		<p>
+			<strong>TL;DR</strong> three.js supports most modern browsers, including Internet Explorer 11 and above.</p>
+		<p>
+			three.js provides WebGL, Canvas, SVG and CSS renderers. Different renderers may have different requirements of compatibility.
+			In theory, three.js works on all browsers that support WebGL: Google Chrome 9+, Firefox 4+, Opera 15+, Safari
+			5.1+, Internet Explorer 11 and Microsoft Edge. More infomation can be found at
+			<a href="https://caniuse.com/#feat=webgl" target="_blank">Can I use WebGL?</a>.
+		</p>
+	</div>
+
+	<h2>Internet Explorer Compatibily</h2>
+	<div>
+		<p>
+			It is strongly recommended to upgrade older versions of IE to IE11. If you still need to support IE9, you can use CanvasRenderer
+			instead. Note that CanvasRenderer only supports a small subset of WebGLRenderer's features.
+		</p>
+		<p>
+			For Internet Explorer, the table below lists avaiable renderers.
+		</p>
+		<table>
+			<thead>
+				<tr>
+					<th>Renderer</th>
+					<th>IE Version</th>
+				</tr>
+			</thead>
+			<tbody>
+				<tr>
+					<td>WebGLRenderer</td>
+					<td>IE11+</td>
+				</tr>
+				<tr>
+					<td>CanvasRenderer</td>
+					<td>IE9+</td>
+				</tr>
+				<tr>
+					<td>SVGRenderer</td>
+					<td>IE9+</td>
+				</tr>
+				<tr>
+					<td>CSS3DRenderer</td>
+					<td>IE10+</td>
+				</tr>
+				<tr>
+					<td>CSS2DRenderer</td>
+					<td>IE9+</td>
+				</tr>
+			</tbody>
+		</table>
+	</div>
+
+	<h2>Part of ECMAScript Language Features or Web APIs Used in three.js</h2>
+	<div>
+		<p>
+			Here are some features used in three.js. Some of them may require additional polyfills.
+		</p>
+		<table>
+			<thead>
+				<tr>
+					<th>Feature</th>
+					<th>Use Scope</th>
+					<th>Modules</th>
+				</tr>
+			</thead>
+			<tbody>
+				<tr>
+					<td>Typed Arrays</td>
+					<td>Source</td>
+					<td>BufferAttribute, BufferGeometry, etc.</td>
+				</tr>
+				<tr>
+					<td>Web Audio API</td>
+					<td>Source</td>
+					<td>Audio, AudioContext, AudioListener, etc.</td>
+				</tr>
+				<tr>
+					<td>WebVR API</td>
+					<td>Source</td>
+					<td>WebVRManager, etc.</td>
+				</tr>
+				<tr>
+					<td>Blob</td>
+					<td>Source</td>
+					<td>FileLoader, etc.</td>
+				</tr>
+				<tr>
+					<td>performance</td>
+					<td>Source</td>
+					<td>Clock, etc.</td>
+				</tr>
+				<tr>
+					<td>requestAnimationFrame</td>
+					<td>Source</td>
+					<td>WebGLRenderer, VideoTexture, etc.</td>
+				</tr>
+				<tr>
+					<td>Promise</td>
+					<td>Examples</td>
+					<td>GLTFLoader, GLTF2Loader, WEBVR, etc.</td>
+				</tr>
+				<tr>
+					<td>Fetch</td>
+					<td>Examples</td>
+					<td>ImageBitmapLoader, etc.</td>
+				</tr>
+				<tr>
+					<td>Web Workers</td>
+					<td>Examples</td>
+					<td>WWOBJLoader2, etc.</td>
+				</tr>
+				<tr>
+					<td>File API</td>
+					<td>Examples</td>
+					<td>GLTFExporter, etc.</td>
+				</tr>
+				<tr>
+					<td>URL API</td>
+					<td>Examples</td>
+					<td>GLTFLoader, etc.</td>
+				</tr>
+				<tr>
+					<td>TextEncoder & TextDecoder</td>
+					<td>Examples</td>
+					<td>FBXLoader, GLTFLoader, PCDLoaderetc, STLLoader, etc.</td>
+				</tr>
+				<tr>
+					<td>Pointer Lock API</td>
+					<td>Examples</td>
+					<td>PointerLockControls, etc.</td>
+				</tr>
+			</tbody>
+		</table>
+	</div>
+
+	<h2>Polyfills</h2>
+	<div>
+		<p>Just import polyfills base on your requirements. Taking IE9 as an example, you need to polyfill at least these features:</p>
+		<ul>
+			<li>Typed Arrays</li>
+			<li>Blob</li>
+			<li>performance</li>
+			<li>requestAnimationFrame</li>
+		</ul>
+	</div>
+
+	<h3>Suggested polyfills</h3>
+	<div>
+		<ul>
+			<li>
+				<a href="https://github.com/zloirock/core-js" target="_blank">core-js</a>
+			</li>
+			<li>
+				<a href="https://github.com/inexorabletash/polyfill/blob/master/typedarray.js" target="_blank">typedarray.js</a>
+			</li>
+			<li>
+				<a href="https://github.com/stefanpenner/es6-promise/" target="_blank">ES6-Promise</a>
+			</li>
+			<li>
+				<a href="https://github.com/eligrey/Blob.js" target="_blank">Blob.js</a>
+			</li>
+			<li>
+				<a href="https://gist.github.com/paulirish/5438650" target="_blank">performance</a>
+			</li>
+			<li>
+				<a href="https://gist.github.com/paulirish/1579671" target="_blank">requestAnimationFrame</a>
+			</li>
+		</ul>
+	</div>
+</body>
+</html>