README.md 4.2 KB
Newer Older
M
testing  
Mr.doob 已提交
1 2 3
three.js
========

M
Mr.doob 已提交
4
#### Javascript 3D Engine ####
M
Mr.doob 已提交
5

M
Mr.doob 已提交
6 7
Currently the engine only supports particles and triangles/quads with flat colors. The aim is to keep the code as simple and modular as possible.

M
Mr.doob 已提交
8
At the moment the engine can render using <canvas> and <svg>. WebGL rendering would come at a later stage but feel free to fork the project and have a go.
M
Mr.doob 已提交
9 10 11

Although this allows 3D for iPhoneOS and Android platforms the performance on these devices is not too good.

M
Mr.doob 已提交
12 13
[More info...](http://mrdoob.com/blog/post/693)

M
Mr.doob 已提交
14
### Examples ###
M
Mr.doob 已提交
15

M
Mr.doob 已提交
16
[![cube.png](http://github.com/mrdoob/three.js/raw/master/examples/geometry/cube.png)](http://mrdoob.com/lab/javascript/three/geometry/cube.html)
M
Mr.doob 已提交
17 18 19 20
[![random.png](http://github.com/mrdoob/three.js/raw/master/examples/particles/random.png)](http://mrdoob.com/lab/javascript/three/particles/random.html)
[![waves.png](http://github.com/mrdoob/three.js/raw/master/examples/particles/waves.png)](http://mrdoob.com/lab/javascript/three/particles/waves.html)
[![floor.png](http://github.com/mrdoob/three.js/raw/master/examples/particles/floor.png)](http://mrdoob.com/lab/javascript/three/particles/floor.html)

M
Mr.doob 已提交
21
### How to use ###
M
Mr.doob 已提交
22

M
Mr.doob 已提交
23
The library needs to be included first thing.
M
Mr.doob 已提交
24

M
Mr.doob 已提交
25
	<script type="text/javascript" src="js/three.js"></script>
M
Mr.doob 已提交
26

M
Mr.doob 已提交
27
Now we have access to the engine classes and methods.
M
Mr.doob 已提交
28

M
Mr.doob 已提交
29
This code creates a camera, then creates a scene object, adds a bunch of random particles to the scene, creates a &lt;canvas&gt; renderer and adds its viewport the document.body element.
M
Mr.doob 已提交
30 31 32 33

	<script type="text/javascript">

		var camera, scene, renderer;
34

M
Mr.doob 已提交
35 36 37 38
		init();
		setInterval(loop, 1000 / 60);

		function init()
39
		{
M
Mr.doob 已提交
40 41 42 43 44 45 46 47 48 49
			camera = new Camera(0, 0, 1000);

			scene = new Scene();
	
			renderer = new CanvasRenderer();
			renderer.setSize(window.innerWidth, window.innerHeight);

			for (var i = 0; i < 1000; i++)
			{
				var particle = new Particle( new ColorMaterial(Math.random() * 0x808008 + 0x808080, 1) );
M
Mr.doob 已提交
50
				particle.size = Math.random() * 10 + 5;
M
Mr.doob 已提交
51 52 53 54 55 56 57 58
				particle.position.x = Math.random() * 2000 - 1000;
				particle.position.y = Math.random() * 2000 - 1000;
				particle.position.z = Math.random() * 2000 - 1000;
				particle.updateMatrix();
				scene.add( particle );
			}

			document.body.appendChild(renderer.viewport);
59 60
		}

M
Mr.doob 已提交
61 62 63 64
		function loop()
		{
			renderer.render(scene, camera);
		}
M
Mr.doob 已提交
65

M
Mr.doob 已提交
66
	</script>
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

If you are interested on messing with the actual library, instead of importing the three.js compressed file, you can include the original files in this order:

	<script type="text/javascript" src="src/Class.js"></script>
	<script type="text/javascript" src="src/core/Color.js"></script>
	<script type="text/javascript" src="src/core/Vector3.js"></script>
	<script type="text/javascript" src="src/core/Matrix4.js"></script>
	<script type="text/javascript" src="src/core/Vertex.js"></script>
	<script type="text/javascript" src="src/core/Face3.js"></script>
	<script type="text/javascript" src="src/core/Face4.js"></script>
	<script type="text/javascript" src="src/core/Geometry.js"></script>
	<script type="text/javascript" src="src/cameras/Camera.js"></script>
	<script type="text/javascript" src="src/objects/Object3D.js"></script>
	<script type="text/javascript" src="src/objects/Mesh.js"></script>
	<script type="text/javascript" src="src/objects/primitives/Plane.js"></script>
	<script type="text/javascript" src="src/objects/primitives/Cube.js"></script>
	<script type="text/javascript" src="src/objects/Particle.js"></script>
	<script type="text/javascript" src="src/materials/ColorMaterial.js"></script>
	<script type="text/javascript" src="src/materials/FaceColorMaterial.js"></script>
	<script type="text/javascript" src="src/scenes/Scene.js"></script>
	<script type="text/javascript" src="src/renderers/Renderer.js"></script>
	<script type="text/javascript" src="src/renderers/CanvasRenderer.js"></script>
	<script type="text/javascript" src="src/renderers/SVGRenderer.js"></script>

M
Mr.doob 已提交
91
	
M
Mr.doob 已提交
92
### Change Log ###
M
Mr.doob 已提交
93

94 95 96 97 98 99
2010 04 26 - **r4** (16.274 kb)

* SVGRenderer Particle rendering
* CanvasRenderer uses context.setTransform to avoid extra calculations


M
Mr.doob 已提交
100
2010 04 24 - **r3** (16.392 kb)
M
Mr.doob 已提交
101 102 103 104 105 106

* Fixed incorrect rotation matrix transforms
* Added Plane and Cube primitives


2010 04 24 - **r2** (15.724 kb)
M
Mr.doob 已提交
107 108 109

* Improved Color handling

M
Mr.doob 已提交
110 111

2010 04 24 - **r1** (15.25 kb)
M
Mr.doob 已提交
112 113

* First alpha release