Skip to content
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

Clarify the use of non-8-bit-channels in property textures #748

Open
javagl opened this issue Jun 23, 2023 · 1 comment
Open

Clarify the use of non-8-bit-channels in property textures #748

javagl opened this issue Jun 23, 2023 · 1 comment

Comments

@javagl
Copy link
Contributor

javagl commented Jun 23, 2023

(This does not refer to 3D Tiles at the core, but to the EXT_structural_metadata extension - but I think that here's the best place to keep track of this)

The Property Texture Data Storage section may not be explicit enough about how to handle property textures where channels have more than 8 bits.

There is an implementation note that says

Specialized texture formats may allow additional channels, or channels with a higher number of bits per channel. The usage of such texture formats for property textures has to be defined by additional extensions.

But some of the following statements (e.g. about how to assemble a FLOAT32 from four 8-bit channels) could be generalized to cover the cases of e.g. assembling a FLOAT64 from four 16-bit channels. Care has to be taken (maybe again in form of an implementation note) about the implications of this statement. Specifically: We probably do not want to make support for 16-bit channels a requirement in the specification. But we could be clearer about how they are supposed to be handled, iff they are supported.

@javagl
Copy link
Contributor Author

javagl commented Sep 20, 2023

The feature ID texture channels property defines which channels are supposed to be combined (i.e. shifted and ORed together) to generate the feature ID. Beyond the question about non-8-bit channels (mentioned above), further clarifications that could be added:

Should there be a limit on the number of channels that can be combined for a feature ID?
For example, should it be possible to define the channels = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] (if an image format with this many channels existed)?

Should it be possible to use the same channel multiple times in order to generate the feature ID? For example, would channels = [0,1,0,1] be allowed?
At the first glance, this looks like it could not yield sensible IDs. But as some brainstorming (even though it is a bit of a stretch): People might want to use the bits like "tags". One could create one texture object with RGBA channels, and A always being 0. Then, one could create feature IDs with channels = [0,1,2,3] yielding 0x00BBGGRR, or with channels = [0,3,3,3] yielding 0x000000RR, which could be "disassembled" by the client, to see whether the center bits are BBGG or 0000...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant