Giter VIP home page Giter VIP logo

Comments (10)

fire avatar fire commented on May 31, 2024

I thought color raw ranges are from 0 to FLOAT_MAX. Maybe someone tried to make raw colors easier to use.

from godot.

MajorMcDoom avatar MajorMcDoom commented on May 31, 2024

I thought color raw ranges are from 0 to FLOAT_MAX. Maybe someone tried to make raw colors easier to use.

Whenever I used raw mode in the past, it's been from 0 to 1. And as you can see in the video, the values are clearly expected to be in 0 - 1 range. Setting them with these new ranges gives very washed out results.

from godot.

fire avatar fire commented on May 31, 2024

There's a way to change slider properties so they slide from 0 to 1 and then you can enter any value.

from godot.

MajorMcDoom avatar MajorMcDoom commented on May 31, 2024

Well, this is wild. I just looked through the history of relevant files, and nothing seems to have changed recently that would affect the ranges. 4.2 also seems to have this identical behaviour. Perhaps they were always intended to be this way? i.e. you can set them to any value, but the raw value range that corresponds to 0 - 255 in the other modes is 0 - 1. So full white in raw mode is (1, 1, 1). But the slider ranges are 0 - 100 because... reasons? In any case, I guess this isn't really a bug, but a combination of bad memory and interesting UX.

from godot.

fire avatar fire commented on May 31, 2024

I'll love to hear a better setting for raw colours though.

You mentioned:

  1. Raw colours range from (0 - 1) not like (0 - 100)
  2. Raw colours can be set to any value.

from godot.

MajorMcDoom avatar MajorMcDoom commented on May 31, 2024

I'll love to hear a better setting for raw colours though.

You mentioned:

1. Raw colours range from (0 - 1) not like (0 - 100)

2. Raw colours can be set to any value.

The way I see it, there are three aspects to raw colors:

  1. The actual range: FLOAT_MIN - FLOAT_MAX
  2. The normal (non-HDR) range: 0 - 1
  3. The UX

The UX, ideally, should allow for setting to any value within the actual range, while simultaneously communicating the existence and/or relative placement of the normal range.

It's debatable what the ideal UX would look like. It could be anything from using fields instead of sliders, to having helpful labels, to disabling the sliders when a value is explicitly set.

But what I think is bad is the current approach, which:

  1. Fails to communicate either type of range (actual or normal)
  2. Introduces an arbitrary third range (0 - 100) which is meaningless to the actual user task
  3. Prevents the user from setting above 100, and prevents the user from setting negative values, both of which should be allowed (it's allowed in code, and is useful for many graphics tricks).

My personal take on a better UX for this would be:

  • Make the sliders disabled, and only allow setting component values via the spinners / fields.
  • Make the sliders still display using a range of 0 - 1, thus communicating the normal range.
  • Optionally add indicators for when the values are set beyond the normal range.

from godot.

fire avatar fire commented on May 31, 2024
  1. Make the sliders read-only but still shown. The raw colour channel property is still editable.
  2. show the range of the slider as between 0 and 1 and indicate when exceeding.

@KoBeWi do we have anything in Godot Engine proposals or pull requests that can do this?

from godot.

KoBeWi avatar KoBeWi commented on May 31, 2024

Optionally add indicators for when the values are set beyond the normal range.

This exists:

image

The base color range is 0-1, but higher values are allowed to enable some effects like glow. It's even documented: https://docs.godotengine.org/en/stable/classes/class_colorpicker.html#enumerations

Make the sliders read-only but still shown.

idk what this would achieve.

do we have anything in Godot Engine proposals or pull requests that can do this?

There is #88072

from godot.

MajorMcDoom avatar MajorMcDoom commented on May 31, 2024

Optionally add indicators for when the values are set beyond the normal range.

This exists:

image

The base color range is 0-1, but higher values are allowed to enable some effects like glow. It's even documented: https://docs.godotengine.org/en/stable/classes/class_colorpicker.html#enumerations

Make the sliders read-only but still shown.

idk what this would achieve.

do we have anything in Godot Engine proposals or pull requests that can do this?

There is #88072

See my last post for all the rationale. I understand the base range, and the higher representational range. The issue here is with the 0 - 100 range.

The disabling of the sliders was really to simplify the implementation, because leaving a slider interactable while allowing out-of-range value representation is quite a complicated change from the current implementation. As I said, the ideal UX is definitely up for debate. But the current one is very misleading, and is not even feature-complete.

from godot.

MajorMcDoom avatar MajorMcDoom commented on May 31, 2024

There is #88072

Thanks for that link though! Will comment there. :)
I don't want this to get derailed into a proposal, because I didn't open this issue intending / prepared to do that. I already closed it.

from godot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.