226 Commits
Author SHA1 Message Date
Mr.doob 0f2badfdd1 Previous commit: Matrix4.transformMatrix4.transformVector3 and Matrix4.tranformVector4
This commit fixes what that change broke.
Removed chromatic distortion from WebGL reflection/refraction.
2010-11-30 16:15:16 +00:00
Mr.doob 195d9a3820 Merge remote branch 'alteredq/master' 2010-11-30 15:48:52 +00:00
Mr.doob 5ee46bd973 Some Matrix4 optimisations... 2010-11-30 15:48:40 +00:00
alteredq de9b681204 Added forgotten MeshShaderMaterial.js Oops :# 2010-11-30 15:25:53 +01:00
Mr.doob 67250c69d9 Merging with alteredq's branch. 2010-11-30 05:06:46 +00:00
Mr.doob dde35ca06e Minor changes.
Trying to catch a bug with SmoothShading material objects with no vertexNormals.
2010-11-30 04:56:50 +00:00
alteredq d502ccef1d Moved binary files load progress reporting to Loader.js. Added load progress reporting to demos with larger meshes.
To be used like this:

    var loader = new THREE.Loader( true );
    container.appendChild( loader.statusDomElement );

    loader.loadBinary( url, function( geometry ) { createScene( geometry ) }, path );

    function createScene( geometry ) {
        ...

        loader.statusDomElement.style.display = "none";

    }
2010-11-30 02:21:22 +01:00
alteredq 14bccd81ea Synced with mrdoob's branch. 2010-11-30 00:01:42 +01:00
alteredq 45b3ceb7df Added MeshShaderMaterial (and Fresnel shader as its first example).
MeshShaderMaterial is still work in progress, expect changes.

Nice side effect of WebGLRenderer refactoring: optimized one significant bottleneck (with noticeable effect on framerate in some demos), typed arrays corresponding to matrix uniforms are now set (instead of being created anew in each frame).

Also created fully full build, with all extras included. This helps with deployment, especially when multiple versions of Three have to coexist in the same folder structure (got burned on this few times already).
2010-11-29 23:44:33 +01:00
Mr.doob 011b123a6e ReflectionMapReflectionMapping
`RefractionMap` ⟶ `RefractionMapping`
2010-11-28 09:47:37 +00:00
Mr.doob 34f802e392 Code clean up.
Removed old Blender exporters.
Slim exporter is now Normal exporter (needs some testing).
2010-11-28 06:52:59 +00:00
Mr.doob a2acf0b390 CanvasRenderer/SVGRenderer: RenderableFace4 is now gone. Unfortunately it created more problems than it solved.
CanvasRenderer now with ShadingSmooth, or something along the lines...
2010-11-27 11:30:01 +00:00
Mr.doob 724870d5f1 Crappy/Temporal WebGLRenderer Reflection/Refraction Chromatic Dispersion hack. (Just for kicks) 2010-11-26 21:06:59 +00:00
Mr.doob b913baa6f0 Code clean up and minor optimisations. 2010-11-26 07:58:44 +00:00
Mr.doob 2c50ad366b Merge remote branch 'alteredq/master' 2010-11-26 02:12:00 +00:00
Mr.doob f5f9becaf1 Minor tweaks. 2010-11-26 02:11:31 +00:00
alteredq 38dacb0d1e Some small refactoring in WebGLRenderer.
There shouldn't be any change in functionality, just moved code around and clarified comments.
2010-11-26 00:28:04 +01:00
alteredq e1f885fbf0 Made 2d textures reusable in WebGLRenderer.
2d texture encapsulates bitmap, wrapping and minifying/magnification parameters.

Which reminds me, maybe also minifying/magnification options should be parameters in Texture object.

Though as defaults are "best" (LINEAR / LINEAR_MIPMAP_LINEAR = trilinear filtering), this would make sense just for special use cases like when trying to achieve "retro" look (like in Minecraft, http://gregs-blog.com/2008/01/14/how-to-turn-off-bilinear-filtering-in-opengl/ ;).
2010-11-25 22:24:21 +01:00
alteredq 06e64013d9 Fixed bug in SceneUtils. 2010-11-25 04:26:24 +01:00
alteredq 812af5dc93 Merge remote branch 'remotes/upstream/master' 2010-11-24 22:40:28 +01:00
alteredq e5ddb133a5 Added load progress callback to binary loader.
Turns out it is working better over the real web than on localhost (where it seems loading is too fast for Chrome to pick up UI changes, so it queues them and shows them all just after loading is already finished).

Still not working properly - getting length of full content, this seems to be unreliable across browser / server combination.

Instead passing to callback JSON object with both total and loaded bytes, so this can be handled in the application layer:

{ total: bytes_total, loaded: bytes_loaded }

To be used e.g. like this:

loader.loadBinary( url, function( geometry ) { createScene( geometry ) }, path, updateProgress );

function updateProgress( progress ) {

    var message = "Loaded ";

    if ( progress.total ) {

        message += ( 100 * progress.loaded / progress.total ).toFixed(0) + "%";

    } else {

        message += ( progress.loaded / 1000 ).toFixed(2) + " KB";

    }

    $( "status" ).innerHTML = message;

}
2010-11-24 22:38:41 +01:00
Mr.doob 158f2e71c9 Merge remote branch 'alteredq/master' 2010-11-24 07:22:14 +00:00
Mr.doob 14eb44a279 ParticleBasicMaterial with a map attached are back on CanvasRenderer.
Added a simple example for that.
2010-11-24 07:22:06 +00:00
alteredq ec13438bb7 Merge remote branch 'remotes/upstream/master' 2010-11-24 06:03:44 +01:00
alteredq aaf569936b More sane object removal from WebGLRenderer.
Not anymore automatic, but also much less wasteful.

Has to be called in tandem with scene object removal:

    scene.removeObject( object );
    webglRenderer.removeObject( scene, object );
2010-11-24 06:01:38 +01:00
Mr.doob cd41fc1e07 Merge remote branch 'alteredq/master' 2010-11-24 04:26:26 +00:00
Mr.doob d734dbeaf5 Optimised GeometryUtils::merge 2010-11-24 04:26:15 +00:00
alteredq 2582c77b46 Synced with mrdoob's branch. 2010-11-24 03:51:46 +01:00
alteredq d3cd0887d2 Added handling of object removal to WebGLRender. Added visibility parameter to Object3D. 2010-11-24 03:43:44 +01:00
alteredq 8f38ddcacd In WebGLRenderer transparent materials are now handled in the same pass as blended materials (resulting in better fake transparency ;)
The order of render passes is now following:

1. opaque materials with normal blending

2. opaque materials with additive blending
3. opaque materials with subtractive blending

4. transparent materials with additive blending
5. transparent materials with subtractive blending
6. transparent materials with normal blending

With growing number of passes it's possible it may be worth to do some pre-sorting, though it would have to be tested.

Current way is fairly cheap as if there are no corresponding materials in the pass, for loops just blast through (potentially many very cheap operations).

Pre-sorting would mean creating arrays on the fly in each frame (one expensive operation with effect on garbage collection, which especially Firefox is currently very bad at).
2010-11-23 23:25:27 +01:00
Mr.doob e2512fe2de Merge remote branch 'alteredq/master' 2010-11-22 22:35:21 +00:00
Mr.doob 87b37e124a Added wireframe_linecap and wireframe_linejoin to main materials.
Fixed SVGRenderer.
2010-11-22 22:35:14 +00:00
alteredq 84e5b6d929 Fixed broken UVs creation for quads in Loader. 2010-11-22 22:58:38 +01:00
Mr.doob 29aa335303 Minor reformating, code fixes and new build. 2010-11-22 21:13:57 +00:00
Mr.doob 315eff0df5 Merge remote branch 'timknip/master' 2010-11-22 21:03:39 +00:00
timk f391247b77 Basic implementation of SVGRenderer::renderLine 2010-11-22 20:36:40 +01:00
alteredq e546ae3c48 Refactored panorama creation helpers into SceneUtils.js
This cleaned up cube mapping examples quite a bit ;)
2010-11-22 17:33:41 +01:00
alteredq 558e7c5db8 Added texture wrapping parameter to Texture.js. Fixed OBJ converter example to have tiled texture.
Wrapping options follow WebGL specs: ClampToEdge [default], Repeat, MirroredRepeat.
2010-11-22 16:43:55 +01:00
alteredq b409e5b04e Proper merge with mrdoob's branch.
All cube mapping examples should work and be consistent between MeshCubeMaterial and 6 texture versions.
2010-11-22 14:13:41 +01:00
alteredq 9cd7308d2b Attempt to merge with mrdoob's branch.
This version is inconsistent. Will follow with another merge.
2010-11-22 13:48:30 +01:00
Mr.doob a1d014c110 Cube.js matching WebGLRenderer cubemap. 2010-11-22 11:45:42 +00:00
Mr.doob 3ce86f1a5b THREE.loadImageArray ⟶ ImageUtils.loadArray
Made up MeshCubeMaterial (missing from alteredq branch)
2010-11-22 08:49:45 +00:00
Mr.doob 45553e88db Merging with alteredq's branch. 2010-11-22 07:46:59 +00:00
Mr.doob d644096e6d CanvasRenderer and SVGRenderer code clean up.
Removed a loop at line projection time.
2010-11-22 07:31:49 +00:00
alteredq 0cdd188e17 Added MeshCubeMaterial: WebGLRenderer specific material for more efficient rendering of panoramas when doing cube mapping.
Also moved loadImageArray utility function from examples into TextureCube.js

To be used like this:

    var urls = [ "px.jpg", "nx.jpg", "py.jpg", "ny.jpg", "pz.jpg", "nz.jpg" ];
    var images = THREE.loadImageArray( urls );
    var textureCube = new THREE.TextureCube( images );

    // create scene

    var objectMaterial = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube } )
    createScene( objectMaterial );

    // create panorama

    var size = 100000;
    var panoMaterial = new THREE.MeshCubeMaterial( { env_map: textureCube } );
    var mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, null, true ), panoMaterial );
    sceneCube.addObject( mesh );

Warning: this functionality is currently changing a lot, expect things to get broken before stabilization.
2010-11-22 02:10:07 +01:00
Mr.doob 4b606714a2 Fixed non-seamless panorama in WebGLRenderer.
I can't see any other WebGL example being affected by this change (for bad).
2010-11-21 18:04:53 +00:00
Mr.doob cf7dc4d2d9 Cube.js now does merge vertices pass. 2010-11-21 10:44:42 +00:00
Mr.doob 0bc79b591b Cube tweaks reverted. It was yet again a left-handed to right-handed problem.
Would be nice if everyone in the internets used the same coordinate system :P
2010-11-21 08:08:11 +00:00
Mr.doob 7b0039ec95 Cube: Swapped Top/Bottom with Front/Back.
Trying to get to the same order of alteredq's cubemap.
2010-11-21 01:38:12 +00:00
Mr.doob c663b05453 Added a proper Cube.
Updated some examples.
CanvasRenderer: Skip render when opacity is 0.
2010-11-21 00:36:17 +00:00