-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
64 bit label support #1955
Comments
Upstream PRs finally got merged last night, so I forked Since the maintainer is inactive I won't bother PRing until we're using the fork and have confirmed it's working for us. |
I have a branch fixing numjs' BigInt64 support, which fills out the first column of the matrix (ndarray). For the second column, actually getting the data into WebGL2 and rendered, while I have a branch getting textures uploaded in the correct GL internalformat/type/format triples, the next step is creating subclasses of Note that this is a different problem from the rest of the shader columns, which refer to stack viewer filter shaders. Those issues and type-generality still need to be addressed, but we also need to factor the concepts of viewer filters (which apply to the entire render buffer) and layer filters (like object labeling, which apply to specific layers). This is because we likely want layers to be required to render down to normal GL floats for a sane pipeline, meaning the mapping from label IDs to colors should happen as part of the layer. |
This adds support for rendering non-uint8 blocks by adding custom `SpriteRenderers` for each data type. These renderers create shaders based on Pixi's but with appropriate datatypes and scaling to output the data type into a normal floating point render buffer. Note that 64-bit integer types render to 16-bit RGBA, and that float64 is not supported. All other types were tested, though not all are necessary useful as is. This builds toward support for label rendering and 3D texture rendering. See catmaid#1955.
This adds support for rendering non-uint8 blocks by adding custom `SpriteRenderers` for each data type. These renderers create shaders based on Pixi's but with appropriate datatypes and scaling to output the data type into a normal floating point render buffer. Note that 64-bit integer types render to 16-bit RGBA, and that float64 is not supported. All other types were tested, though not all are necessary useful as is. This builds toward support for label rendering and 3D texture rendering. See catmaid#1955.
This adds support for rendering non-uint8 blocks by adding custom `SpriteRenderers` for each data type. These renderers create shaders based on Pixi's but with appropriate datatypes and scaling to output the data type into a normal floating point render buffer. Note that 64-bit integer types render to 16-bit RGBA, and that float64 is not supported. All other types were tested, though not all are necessary useful as is. This builds toward support for label rendering and 3D texture rendering. See catmaid#1955.
This adds support for rendering non-uint8 blocks by adding custom `SpriteRenderers` for each data type. These renderers create shaders based on Pixi's but with appropriate datatypes and scaling to output the data type into a normal floating point render buffer. Note that 64-bit integer types render to 16-bit RGBA, and that float64 is not supported. All other types were tested, though not all are necessary useful as is. This builds toward support for label rendering and 3D texture rendering. See catmaid#1955.
This adds support for rendering non-uint8 blocks by adding custom `SpriteRenderers` for each data type. These renderers create shaders based on Pixi's but with appropriate datatypes and scaling to output the data type into a normal floating point render buffer. Note that 64-bit integer types render to 16-bit RGBA, and that float64 is not supported. All other types were tested, though not all are necessary useful as is. This builds toward support for label rendering and 3D texture rendering. See #1955.
This allows for manual control of min/max scaling via the console, and builds towards future ability to perform shader computation before tiles are rendered to a render buffer. Note that presently TypedSpriteRenderer is still shaded between all TypedSprites of the same type, so this pipeline is not granular enough for most intended uses. Consequently no configuration is exposed for now. Related to #1955.
Taken from #1801.
Tested support
Summary
Taken from lab wiki.
To avoid maintaining a Scijs fork to handleImageBlock
s in CATMAID, we will evaluate the TensorFlow.js base library. It is not clear if it fully supports 64 bit —tf.tensor
takes anyTypedArray
as input (which includesBigInt64Array
/BigUint64Array
), but thedtype
specifier istf.DataType
which is'float32'|'int32'|'bool'|'complex64'
. If suitable, having tensors processing and eventually TensorFlow support in CATMAID may be useful for general image processing and in-browser inference.int64
tensors from other TensorFlow backends, they are silently cast toint32
.ndarray
Roadmap
The text was updated successfully, but these errors were encountered: