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

Create a 10-bit ImageRgbU10 image format #123

Open
Dawoodoz opened this issue Jan 11, 2025 · 0 comments
Open

Create a 10-bit ImageRgbU10 image format #123

Dawoodoz opened this issue Jan 11, 2025 · 0 comments
Labels
enhancement New feature or request Low priority No rush to have this done, because other things are more urgent.

Comments

@Dawoodoz
Copy link
Owner

Dawoodoz commented Jan 11, 2025

To get a higher range of brightness for post processed images, or simply get more precision in baked normal and position maps, it would be relatively easy to create a 10-bit format when channels are already accessed using masking and shifting.

Having RgbaU8 defined by byte indices and RgbU10 defined by bit significance would however make little sense. Would have to redefine the relation between endianness and pack order, so that color channels are ordered by bit significance instead of byte order. Then the channel indices in PackOrder need to change for big-endian instead of the direction of bit shifts.

Dynamic pack orders would not exist for RgbU10, because it will not be used in any window canvas.

To reduce duplicated code, the entire framework needs to be streamlined for template programming with minimal risk of ambiguity.

Static inheritance can be used to define a 10-bit type masked to 10 bits on assignments and padded to 16 bits when stored.

@Dawoodoz Dawoodoz added enhancement New feature or request Low priority No rush to have this done, because other things are more urgent. labels Jan 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Low priority No rush to have this done, because other things are more urgent.
Projects
None yet
Development

No branches or pull requests

1 participant