Use orientation, mouse, qwe-keys to navigate.
Canvas is matched to your browser window. 3D WebGL model 60 fps on Nexus 10.
I get the same ~ 60 fps for all
512x512 quests with one rendering call per frame: plain,
with z-ordered data, geometry clipmaps, textures (see comments below).
1024x1024 worlds are to heavy (30 fps) as like as
the script with view frustum culling
(multiple rendering of only visible meshes from 4x4 array).
I've got about 60 / 10 fps for
antialias off / on (see tests).
Therefore antialiasing is switched off for all quests temporally.
"Sea quest" tiny demo
(512x512 terrain, ~10 kb, all scripts in public domain).
Find 6 poles in correct order
(blue, cyan, green, yellow, red and white).
The first 4 poles variant.
Use q,w,e keys, fingers, mouse or
device orientation to navigate in full screen.
World number 0 is used.
2048x2048 foggy terrain
is stored in a 8-bit texture with periodic boundaries.
515x512 region is rendered
4096x4096 textures are acceptable for Nexus 10 but
calculations of normals on CPU are slow (~5 sec for 2048x2048 grids).
Geometry clipmaps algorithm
2048x2048 terrain and GPU based geometry clipmaps algorithm
with 3 levels of details are used (256x256 patches are sketched
on the left). 2 additional layers smooth borders (similar to
"Continuous Distance-Dependent Level of Detail for
Rendering Heightmaps (CDLOD)" Filip Strugar, 11 July 2010).
Procedural fractal and
spline based noise texture
are used to make simple animated clouds and water.
1000 simple towers are added (about half of them are
"imaginary" images repeated periodically at the borders
due to periodicity of the world). 8000 triangles
and one more rendring call. 60 fps on Nexus 10. So you can
add your own geometry. E.g. beacons or accurate textures for
towers (with loopholes). Sorry, no accurate collision test.