9 Commits
Author SHA1 Message Date
alteredq e08434c183 Reworked binary format / BinaryLoader / OBJ converter to use binary ajax fetch.
It was quite a pain - ArrayBuffers / Typed Arrays are fussy about byte alignment - but seems to be worth it.

Parsing times are down (modest gains for small objects / Firefox, bigger gains for large objects / Chrome, performance gains from 10% - 200%).

Also as a positive side effect, changing interleaved face arrays into uniform arrays seems to have helped a bit with gzip compression (about 6% smaller size for gzipped 526K Lucy).
2011-11-03 20:30:10 +01:00
alteredq 1658d7f083 Removed workers from Blender exporter.
Fixed Blender importer to work with Blender 2.60, add option for importing workers or non-worker models.

Fixed more examples to use worker-less format. All examples should work now.

Only Max exporter should be left to change.
2011-10-31 16:51:50 +01:00
alteredq 5fa19e8460 Fixed delays when loading multiple models.
Problem was having too many concurrent workers opened at once. Garbage collection apparently works very slowly on workers. Solution was to close them manually, after model data is sent to main thread.

Also some progress with Blender scene exporter. Some scenes now export correctly, though monkey test scene got worse, even with less hacky code.
2011-04-07 02:59:49 +02:00
alteredq f7e3a80d70 Added edges computation to OBJ converter.
If you want to get edges, run converter like with "-e" flag:

python convert_obj_three.py -i model.obj -o model.js -e

Output seems to match Blender exporter.
2011-04-05 03:37:13 +02:00
alteredq b31b8eebcd Changed exporters, converters and example models to use more proper JSON.
Single quote property names and hex numbers are not valid in JSON.
2011-03-26 06:05:46 +01:00
Mr.doob 348bb3be59 Merging with alteredq's branch. 2011-03-20 21:48:50 +00:00
alteredq bdc19a15c2 Updated OBJ converter to create new JSON model format.
Not tested yet, as the rest of the engine doesn't work yet.
2011-03-20 20:14:23 +01:00
alteredq ccdff87382 Changed also JSON model files and exporters/converters to use CamelCase property names.
Only Blender 2.56 exporter and OBJ converter were tested. If somebody is using other ones, please reexport some files to be sure they work.
2011-03-02 05:55:29 +01:00
alteredq ac5276b41f Added normal + ambient occlusion + displacement mapping demo.
A lot of things going on in this commit:

- added tangents computation for geometries
    - mesh must have UV coordinates
    - to be called explicitly once geometry is loaded like this: geometry.computeTangents()
    - tangents are stored in Vertex objects
    - quads are not solved properly (though workaround hack seems to work at least somehow, as far as each vertex appears at least somewhere)

- extended VBOs in WebGLRenderer to include tangent streams (when available)

- added "normal" shader to ShaderUtils (to be used with MeshShaderMaterial)
   - Blinn-Phong with one directional and one point light (7 varyings gone, just one spare)
   - normal maps are in tangent space
   - displacement maps use simple luminance value (could be changed if better precision is needed)

- displacement mapping uses vertex texture fetch
    - this requires GPU with Shader Model 3.0
    - not currently supported in ANGLE
    - for this, added "supportsVertexTextures" method to WebGLRenderer API, so that application can handle this
2010-12-09 12:27:49 +01:00