menpo / landmarker.io

Image and mesh annotation web application
https://www.landmarker.io
BSD 3-Clause "New" or "Revised" License
114 stars 21 forks source link

(Automatically?) adjustable graphics settings #95

Open jabooth opened 9 years ago

jabooth commented 9 years ago

From experience, there are a few settings that are nice to enable on powerful devices but do lead to lower frame rates on less powerful devices. They are:

  1. Picture-in-picture mode on meshes (currently only implemented for orthographic view)
  2. Antialiasing on THREE.WebGLRenderer
  3. (Potentially) Retina/HiDPI on THREE.WebGLRenderer

    Easier goal

Add a settings page with toggles for either the above features or simply a 'high fidelity graphics' mode that toggles all this stuff on and off

Stretch goal

Track the FPS of the tool and dynamically enable/disable these features to ensure a good user experience

Notes

Key challenge here is enabling a run-time change of the WebGLRenderer, as I don't think these settings are mutable on an already constructed renderer (although this should be investigated!). If so, we would want to abstract out the 'restarting' of the renderer and then use this in initialization of the tool and at settings changes.

jabooth commented 9 years ago

I'd like to revisit this on some less powerful machines, but I think our recent efforts with minimising canvas redraws may actually negate the need for this kind of thing. For instance, I'm seeing good performance on iOS/Android mobile devices now. Before we take any step in this direction, we should check it's actually needed.