Masking was real pain to get working with multiple render targets :/.
Unfortunately this introduced dependencies on MaskPass.js and ShaderPass.js even for use cases that do not use masking. Bah, will need to figure out some better way for deployment.
Cause everywhere there are warnings about not writing to the same texture which is also being read. Curiously enough this didn't make problems so far (save for mysterious lines when doing "heat" effect in ro.me).
No need to use full-screen render targets for quarter-screen images (still keeping big one for geometry pass to emulate antialiasing).
Also added check for existence of normalMatrix in shader when setting uniforms in WebGLRenderer. Null was being sent to GPU for materials that don't use normals (e.g particles).
It doesn't have effect there anyway as scene is rendered to FBO without multisampling.
Turning antialiasing off here didn't have much effect on performance though (unlike for particles).
Also updated GUI-DAT (didn't help with recent Chrome compositing bugs, though this is Chrome Windows issue), added FileAPI to Detector and fixed aspect ratio bug in WebGLRenderer.
Clearing API for rendering to RenderTarget is now flipped: before forced clearing of render target was default, now no clearing is default.
New way of doing things saves one extra duplicitous clear call when switching render targets (like when doing postprocessing).
(doing documentation is indeed turning out to be useful)
Went through all examples, all should work.
JSON files exported from Blender / converted from OBJ files still use underscored property names internally. I don't know, should these also be changed?
That was much tougher than expected. No wonder other WebGL video demos around the web are broken.
Firefox OpenGL / ANGLE and Chrome OpenGL were ok, getting it to work in Chrome ANGLE was rather tricky.
Please report if something got broken. I tried to go through all textured examples but I may have missed something.
If you want to refresh texture on WebGL side, you just set "texture.needsUpdate" flag (if you use Loader or ImageUtils.loadTexture / loadTextureCube everything is taken care of).
Flag has to be set also for canvas-based textures, sorry no escaping this :(. I tried and it lead to ugly problems (e.g. AO minecraft demo mixes several asynchronously loaded and generated images into one texture, with autodetect always something was broken).
"needsUpdate" should work also on cube textures, though it's not tested yet (also there I didn't put hack for Chrome ANGLE).
build/Three.js - Includes all renderers + extras
build/custom/ThreeCanvas.js - Canvas renderer only
build/custom/ThreeDOM.js - DOM renderer only
build/custom/ThreeSVG.js - SVG renderer only
build/custom/ThreeWebGL.js - WebGL renderer only
build/custom/ThreeExtras.js - Extras only
Moved `THREE.Detector.js` to `examples/js/Detector.js`.
Updated examples to reflect these changes.