Faster Loading with JSON 3D Model Format

May 25, 2015

Now the JSON 3D model formats are also implemented in 3D Wayfinder. This gives us better browser-side loading time as browsers’ native JSON parser is faster, than parsing binary models in Javascript. The average gain in loading time is 55%, which means that 3D Wayfinder is loading more than 2 as fast as before.

Below are testing results with 2 different project. It seems, that the improvement affects more larger projects.
We have made a minor change in loading logic also. Now the application will render the 3D models before all the textures are downloaded. Textures will appear as they are loaded. This allows to start using 3D wayfinder as soon as the 3D model files have been loaded.

Here are the initial test results for 2 projects:

1. Project: demo
———————————————–

Project statistics:
Visible faces (opaque/transparent): 5653/646
Visible renderers (opaque/transparent): 10/24
Visible batches (opaque/transparent): 10/4

Total geometry loading time (measured by floors):
Binary format: 1666.570ms + 1941.258ms = 3607.828ms
JSON format: 846.446ms + 945.121ms = 1791.567ms

Loading times without network transfer time:
Binary format: 1211.667ms + 1149.466ms = 2361.133ms
JSON format: 46.198ms + 31.087ms = 77.285ms

2. Project: Large customer project
———————————————–

Project statistics:
Visible faces (opaque/transparent): 229533/6459
Visible renderers (opaque/transparent): 629/13
Visible batches (opaque/transparent): 49/13

Total geometry loading time (measured by floors):
Binary format: 23673.256ms + 13435.160ms + 4924.420ms = 42032.836ms
JSON format: 10225.722ms + 2929.486ms + 3642.354ms = 16797.562ms

Loading times without network transfer time:
Binary format: 20016.574ms + 11549.349ms + 3087.721ms = 34653.644ms
JSON format: 226.997ms + 136.840ms + 70.465ms = 434.302

JSON model specifications can be found from FRAK Github repository.

« »

Bumps and Dents in 3D with Normal Maps

March 24, 2015

With new material management, we have added also normal maps. Normal mapping is a technique used for faking the lighting of bumps and dents in 3D models – an implementation of bump mapping.

It is used to add details without using more polygons. Which means you can create smaller and faster models for 3D Wayfinder. Normal maps will enhance the appearance and details of a low polygon model by generating a normal map from a high polygon model or height map.

Here is an old town model without normal map:

3D Wayfinder without normal map

In following screenshot is the same model with normal maps applied:

3D Wayfinding with normal map. Bumps and dents in 3D models.

The result will look like the stones are all modeled out in 3D.

Here is the texture and normal map added to this texture:

Texture and normal map

To use normal maps, you have to select “Normal-mapped” for the material from the shader column.

Normal maps material selection

Then press “Edit” and you can upload texture and normal map image:

Selecting material for normal map

« »

Transparency in 3D Wayfinder

August 22, 2014

Recently we introduced improved transparency in 3D Wayfinder handling to FRAK engine. It can now be configured between three transparency rendering modes: sorted, blended and stochastic.

Wayfinder blended transparency in 3D Wayfinder

The sorted mode is what used to be the default earlier. There is mainly for backwards compatibility and fallback reasons. This can be used for decent transparency. But the geometry has to be modeled while keeping in mind that transparent meshes are compared by their centers.

Failure case for the old algorithm:

old_transparency_in_3D_Wayfinder

The first of the new modes is blended and it uses the weighted blended order-independent transparency algorithm. Also with a few modifications related to handling alpha-mapped surfaces. This mode is the new default for the engine. Since floating point textures seem to be supported by most browsers these days.

Weighted Blended Order-independent Transparency:

weighted_blended_transparency_in_3D_Wayfinder

The second new mode is stochastic. It is still a work in progress. But a viable alternative for certain situations. Stochastic transparency in 3D Wayfinder works by using random noise to give each transparent surface a proportional probability of getting through to the camera. This provides slightly more physically correct results. Currently is a bit too noisy.

Stochastic Transparency:

stochastic_transparency_in_3D_Wayfinder

« »