source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/mrdoob-three.js-4862f5f/src/extras/cameras/CubeCamera.js@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 2.3 KB
Line 
1/**
2 * Camera for rendering cube maps
3 * - renders scene into axis-aligned cube
4 *
5 * @author alteredq / http://alteredqualia.com/
6 */
7
8THREE.CubeCamera = function ( near, far, cubeResolution ) {
9
10 THREE.Object3D.call( this );
11
12 var fov = 90, aspect = 1;
13
14 var cameraPX = new THREE.PerspectiveCamera( fov, aspect, near, far );
15 cameraPX.up.set( 0, -1, 0 );
16 cameraPX.lookAt( new THREE.Vector3( 1, 0, 0 ) );
17 this.add( cameraPX );
18
19 var cameraNX = new THREE.PerspectiveCamera( fov, aspect, near, far );
20 cameraNX.up.set( 0, -1, 0 );
21 cameraNX.lookAt( new THREE.Vector3( -1, 0, 0 ) );
22 this.add( cameraNX );
23
24 var cameraPY = new THREE.PerspectiveCamera( fov, aspect, near, far );
25 cameraPY.up.set( 0, 0, 1 );
26 cameraPY.lookAt( new THREE.Vector3( 0, 1, 0 ) );
27 this.add( cameraPY );
28
29 var cameraNY = new THREE.PerspectiveCamera( fov, aspect, near, far );
30 cameraNY.up.set( 0, 0, -1 );
31 cameraNY.lookAt( new THREE.Vector3( 0, -1, 0 ) );
32 this.add( cameraNY );
33
34 var cameraPZ = new THREE.PerspectiveCamera( fov, aspect, near, far );
35 cameraPZ.up.set( 0, -1, 0 );
36 cameraPZ.lookAt( new THREE.Vector3( 0, 0, 1 ) );
37 this.add( cameraPZ );
38
39 var cameraNZ = new THREE.PerspectiveCamera( fov, aspect, near, far );
40 cameraNZ.up.set( 0, -1, 0 );
41 cameraNZ.lookAt( new THREE.Vector3( 0, 0, -1 ) );
42 this.add( cameraNZ );
43
44 this.renderTarget = new THREE.WebGLRenderTargetCube( cubeResolution, cubeResolution, { format: THREE.RGBFormat, magFilter: THREE.LinearFilter, minFilter: THREE.LinearFilter } );
45
46 this.updateCubeMap = function ( renderer, scene ) {
47
48 var renderTarget = this.renderTarget;
49 var generateMipmaps = renderTarget.generateMipmaps;
50
51 renderTarget.generateMipmaps = false;
52
53 renderTarget.activeCubeFace = 0;
54 renderer.render( scene, cameraPX, renderTarget );
55
56 renderTarget.activeCubeFace = 1;
57 renderer.render( scene, cameraNX, renderTarget );
58
59 renderTarget.activeCubeFace = 2;
60 renderer.render( scene, cameraPY, renderTarget );
61
62 renderTarget.activeCubeFace = 3;
63 renderer.render( scene, cameraNY, renderTarget );
64
65 renderTarget.activeCubeFace = 4;
66 renderer.render( scene, cameraPZ, renderTarget );
67
68 renderTarget.generateMipmaps = generateMipmaps;
69
70 renderTarget.activeCubeFace = 5;
71 renderer.render( scene, cameraNZ, renderTarget );
72
73 };
74
75};
76
77THREE.CubeCamera.prototype = Object.create( THREE.Object3D.prototype );
Note: See TracBrowser for help on using the repository browser.