You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the picked position is limited to 8 bits per axis due to WebGL color buffer limitations. While this is typically enough for small models things get less and less accurate as bounding box sizes increase. Accurate results are important for things like object placement in large scenes (eg. when clicking on a large ground plane to place an object there).
Because rendering to floating point buffers is iffy under the current WebGL spec we can't rely on it to replace the uint color buffer that we currently use.
We should add a second getter for picked position that returns a high precision result through some other means (eg. ray intersection in JS or multiple render passes of the picked object). Because this is potentially a slow operation we should look into using Promises to return the result.
Normals are always unit vectors so they have a possible error of 0.0078 units when encoded to 8 bits, which should be good enough for most applications.
Currently the picked position is limited to 8 bits per axis due to WebGL color buffer limitations. While this is typically enough for small models things get less and less accurate as bounding box sizes increase. Accurate results are important for things like object placement in large scenes (eg. when clicking on a large ground plane to place an object there).
Because rendering to floating point buffers is iffy under the current WebGL spec we can't rely on it to replace the uint color buffer that we currently use.
We should add a second getter for picked position that returns a high precision result through some other means (eg. ray intersection in JS or multiple render passes of the picked object). Because this is potentially a slow operation we should look into using Promises to return the result.
Normals are always unit vectors so they have a possible error of 0.0078 units when encoded to 8 bits, which should be good enough for most applications.
Originating problem is described in #60
The text was updated successfully, but these errors were encountered: