Commit Graph
378 Commits
Author SHA1 Message Date
alteredq df513e044c Transplanted simple hierarchy system from WebGLRenderer2 into WebGLRenderer.
Work in progress.

As with static objects, faster with OpenGL (34 -> 38 fps) and slower with ANGLE (30 -> 27 fps).
2011-02-15 04:22:37 +01:00
alteredq 04cae71659 Refactored render pass madness in WebGLRenderer to something a bit more sane.
Also fixed subtle bug in `materials_gl` example: face.material => face.materials (since renaming this example was just silently broken)
2011-02-14 23:12:30 +01:00
alteredq a9af9481e5 Added vertex colors to ASCII model loader and to Blender exporter (plus corresponding example).
Also fixed quads vertex color bug in WebGLRenderer and did small optimization of face state handling.
2011-02-14 20:21:42 +01:00
alteredq eced0ca840 Small performance optimizations in WebGLRenderer: skipping few more typed arrays setters.
This should affect only use cases with lots of animated objects (unlike current performance tests where object matrices are not updated).
2011-02-13 22:51:17 +01:00
alteredq 082da28c8e Renamed THREE.Supports to THREE.Detector, moved it to extras. Also cleaned up example title tags. 2011-02-13 19:19:55 +01:00
alteredq 29cf97eee7 Added centralized message for non-WebGL-compatible browser to majority of examples.
That was painful; hopefully since now it should be easier to have it in every WebGL example.

It's enough to add one line (ideally as the first thing that gets executed):

    if ( ! THREE.Supports.webgl ) THREE.Supports.addGetWebGLMessage();

This will add message box with default styling centered near top of the window. Optional parameters "parent" and "id" can be specified for further customization and integration with the document, also message DOM element is returned for easier access.

    var messageElement = THREE.Supports.addGetWebGLMessage( { parent: container, id: "my_message" } );

By default, message is added to document.body and has id "oldie" (can be styled with CSS).
2011-02-13 00:09:09 +01:00
alteredq 8e2f8c8b13 Fixed broken WebGL support detection.
Created "THREE.Supports" object, which should centralize this stuff. So far it detects <canvas>, WebGL and WebWorkers; later it could detect for example GPU capabilities.

Not sure about name or location, but it's pretty tiring go through all examples when something changes, so it should be somewhere in the library.

Code duplication is bad: even html snippets with error message should be centralized somewhere, so that when new browsers arrive we wouldn't have to keep changing them in many places.
2011-02-12 20:02:05 +01:00
alteredq 12fb60f1be Added glow to lines vertex color example. 2011-02-12 18:30:09 +01:00
alteredq d34d8d8e05 Vertex colors examples tweaks. 2011-02-12 02:00:33 +01:00
alteredq f5642a3beb Added mesh vertex color example. 2011-02-12 01:26:41 +01:00
alteredq 9a9ed7cc85 Fixed lights removal not being reflected in WebGLRenderer. 2011-02-11 23:54:08 +01:00
alteredq ad51a48fcd Added "depth_test" parameter to materials.
This is to be able to control depth buffer writing / testing on per geometry chunk level (before it was possible just to hack it on per scene level via exposed GL context).

Disabling depth test is useful for example for additively blended particles, handling of transparency or for having background textured quad.

Another option would be to have it on per object level, but then this could prevent different handling of objects with both transparent and opaque parts.

Also in this commit:

- more progress towards mesh vertex colors
- less matrix multiplications in render call
- fixed ugly bug in doubleSided / flipSided handling
- cleanup of materials
    - added a lot of missing stuff in debug strings and parameters handlers
    - normal and depth materials now have opacity parameter
    - wrote comments for non-obvious things
2011-02-11 19:58:58 +01:00
alteredq fe6d492573 Added vertex colors to WebGL lines plus corresponding example.
Vertex colors for meshes in progress ...
2011-02-11 03:25:54 +01:00
alteredq fc9d5bc83e Ported voxel painter demo to work with WebGLRenderer. 2011-02-08 18:23:40 +01:00
alteredq b3ea0d5fcd Changed a bit clear color API.
Renamed: setClearColor( hex, opacity ) => setClearColorHex( hex, opacity )

New: setClearColor( color, opacity )

In this way it's a bit cheaper to animate clear color.

Hope I didn't break examples - I searched for "setClearColor" and changed it in one place where it was used.
2011-02-08 12:49:14 +01:00
alteredq feed283804 Added support for material blending parameter to scene loader. 2011-02-04 17:14:23 +01:00
alteredq 750a242f0c Added vertex colors for particles. 2011-02-03 23:54:30 +01:00
alteredq 8227d9f118 Added billboard particles (semi-opaque depth sorted).
Work in progress, caveats:

- sort happens just inside one ParticleSystems, so everything gets messed up when more ParticleSystems are in the same screen space
- not yet solved proper order of operations, if you change object transform, you need to update ParticleSystem object matrix manually before rendering (so that sort works, otherwise it will use transform from previous frame)

Also fixed transparency in fog and did small optimizations in WebGLRenderer.
2011-02-03 02:53:33 +01:00
alteredq bc88bdb67b Refactored KERNEL_SIZE define out of convolution shader lib.
This is ugly, but allows to use different kernel sizes, making it useful not just for Gaussian blur (which is slow with large kernel).
2011-02-02 18:53:50 +01:00
alteredq aa8bdaea3d Moved film shader into ShaderUtils. 2011-02-02 18:31:04 +01:00
alteredq 84d1b582ae Moved textured quad screen shader into ShaderUtils. 2011-02-02 16:17:39 +01:00
alteredq 418a6da757 Moved convolution shader from example into ShaderUtils. 2011-02-02 14:15:28 +01:00
alteredq 1d9c3405a3 Changed ParticleSystem to autoupdate transform by default (as do Mesh and Line objects). 2011-02-02 12:41:42 +01:00
alteredq 74fe85f7ef Added particle sprites WebGL example. 2011-02-01 19:59:18 +01:00
alteredq c8a85ebffd Added info box and browser compatibility check to WebGL particle example. 2011-02-01 14:43:32 +01:00
alteredq 54e3bc61bd Added elementary support for particles to WebGLRenderer.
It works more or less the same as lines:

  - particles are passed to ParticleSystem object as geometry
  - material is ParticleBasicMaterial (textures should be supported, not tested yet)
  - geometry can be updated by setting "__dirtyVertices" property of the geometry
2011-02-01 14:26:33 +01:00
Mr.doob ad0a8a7446 Merge remote branch 'alteredq/master' 2011-01-27 21:23:55 +00:00
Mr.doob a7ac6fa598 Made CanvasRenderer ParticleBasicMaterial handling consistent with the rest — material.map needs to be a Texture. 2011-01-27 21:23:33 +00:00
alteredq 36f041a3e3 Another small improvement of scene loader blocking.
Also shader program building is now spread over loading time.
2011-01-27 02:52:19 +01:00
alteredq 549f90854b Small improvement in scene loading blocking.
Creating all GPU stuff when rendering the first frame doesn't work well with gated initialization :(.
2011-01-27 01:10:29 +01:00
alteredq 1fea9391b8 Added very simple user interface for checking what's inside the scene (in scene loader example).
Click on small [+] in the upper left corner.
2011-01-26 23:14:19 +01:00
alteredq 506d7e1fa0 Added progress reporting to scene loader. 2011-01-26 21:15:55 +01:00
Mr.doob 52c0de2b09 Merging with alteredq's branch. 2011-01-26 18:36:49 +00:00
alteredq 3d663b3428 Added handling of texture mapping and material combine parameters to scene loader. 2011-01-26 18:00:06 +01:00
alteredq 38ad5d466e Added loading indication and "start" button to scene loader example. 2011-01-26 14:56:40 +01:00
alteredq 8679cbcea5 Small code cleanup in scene loader. 2011-01-26 11:27:11 +01:00
alteredq b13f7efafd Added handling of texture filtering parameters to scene loader. 2011-01-26 01:21:18 +01:00
alteredq 7bd3c4b7e0 Added to scene loader support for Icosahedron primitive and material shading parameter. 2011-01-26 00:08:49 +01:00
alteredq 5a6a872e75 Synced with mrdoob's branch. 2011-01-25 21:50:16 +01:00
alteredq b0113fb874 Added support for cube textures and background color to scene loader.
Also made car prettier and showed how to modify the scene after loading.
2011-01-25 21:46:52 +01:00
Mr.doob 40934a3a83 Merge remote branch 'alteredq/master' 2011-01-25 20:06:47 +00:00
Mr.doob 37a053b308 Fixed PointLight prototype code (thx rectalogic) 2011-01-25 20:05:46 +00:00
alteredq 8faa18b620 Added simple scene format loader.
This is very much work in progress - expect things to change and to be broken.
2011-01-25 18:32:07 +01:00
alteredq 52f4a750a3 Added simple tone mapping to HDR example.
Based on formula from: http://transporter-game.googlecode.com/files/HDRRenderingInOpenGL.pdf
2011-01-23 23:21:36 +01:00
alteredq 8f133abd30 Added HDR texture example. 2011-01-23 18:39:14 +01:00
Mr.doob 5accd0cfd7 Brought back Object3D.rotationMatrix (Projector still uses it). 2011-01-18 07:29:39 +00:00
Mr.doob 28e18bcf2c Added texture/disturb.jpg 2011-01-17 00:00:38 +00:00
alteredq 271ba6c524 Added support for "doubleSided" mesh property to WebGLRenderer.
Testing on current examples didn't show any noticeable performance degradation when enabling / disabling culling for every object in every frame.

"FlipSided" property could be probably done in very similar way, just setting "gl.frontFace( gl.CCW )" or "gl.frontFace( gl.CW )"
2011-01-16 15:10:58 +01:00
alteredq 6668440006 Cleaned bit postprocessing example code. 2011-01-16 14:35:17 +01:00
alteredq d50863908c Small improvements in postprocessing example.
Alternating convolution pass textures aspect ratio and using linear magnification filtering leads to less artefacts.
2011-01-16 11:51:56 +01:00