_Пожалуйста, опишите, что должно произойти_
Scratch 2, если вы установите эффект яркости на 100 и цветовой эффект на 50, вот что вы получите
_Опишите, что происходит на самом деле_
В Scratch 3 вы получаете весь белый цвет (я добавил фон, чтобы вы его видели).
Эта ошибка упрощает проблему, возникшую у меня при открытии этого проекта с нуля 3 https://scratch.mit.edu/projects/1270935/
Это должно выглядеть так
А вместо этого выглядело так
cc @cwillisf
Я все еще вижу некоторые странности с яркостью, но они немного отличаются от перечисленных выше. Похоже, что проект 1270935 работает нормально. Кроме того, значения яркости от -100 до 0 соответствуют ожидаемым.
Для яркости от 0 до 100 кажется, что он становится ярче, но не полностью белым, как в 2.0.
Вот он в 2.0:
И вот оно в 3.0:
Я использовал этот проект: https://scratch.mit.edu/projects/276912470/, чтобы проверить это.
/ cc @kchadha @ktbee @cwillisf
Я нашел кое-что странное. Если вы используете только эффект яркости для спрайта в царапине 2, он будет выглядеть так (от 0 до 100)
Царапина 2:
Однако, если вы также используете цветовой эффект на любом спрайте, все спрайты изменятся, чтобы выглядеть следующим образом:
Также Scratch 2:
И вот как сейчас выглядит эффект яркости в Scratch 3.0.
Царапина 3:
@cwillisf, когда цветовой эффект сломался в прошлый раз, когда вы сказали, что это как-то связано с движком рендеринга?
Нашел соответствующую ветку со ссылками на полезный код: https://github.com/LLK/scratch-flash/issues/570
Обратите внимание, что проблема HSV и HSL здесь не возникает. Вот 1) текущий эффект яркости, 2) эффект яркости с использованием HSL, 3) эффект яркости в Scratch 2. Ни 1, ни 2 не соответствуют 3.
Может быть актуально: https://scratch.mit.edu/projects/269088736/#comments -105915881
TL; DR эффект положительной яркости, похоже, не влияет на костюм, цвета заливки которого уже имеют 100% яркость (т. Е. Ползунки показывают яркость = 100). Я думаю, что эффект яркости в 2.0 больше похож на «смешивание с белым (или черным)», а не на «регулировку компонента яркости»? Но я не тестировал.
Я нашел что-то странное
Хорошая находка, @fsih! Добавление цветового эффекта к проекту приводит к тому, что Scratch 2.0 переключается в режим 3D-рендеринга, что объясняет, почему разница проявляется именно тогда. Похоже, что средства визуализации 2D и 3D в Scratch 2.0 очень по-разному работают с эффектом яркости. Это верно для некоторых графических эффектов: например, эффект водоворота меняет направление.
К сожалению, у меня нет четкого представления о том, какая версия эффекта яркости нужна большинству проектов; я предполагаю, что большинство проектов в конечном итоге используют 2D-рендерер, но я не уверен.
Эффект яркости в Scratch 3.0, кажется, соответствует 3D-рендереру в Scratch 2.0, но не соответствует 2D-рендереру в Scratch 2.0. Если мы решим сопоставить 3D-рендерер, я думаю, что мы уже сделали; если мы решим сопоставить 2D-рендерер, то есть хоть какая-то шейдерная работа.
Проекты в основном используют эффект яркости для перехода от белого к черному и обратно, поэтому я думаю, что было бы наиболее разумно сопоставить 2D-рендерер Scratch 2. Спрайты, становящиеся белыми, также были исходным поведением до того, как нам пришлось добавить 3D-рендерер, и ошибка LLK / scratch-flash # 570 была создана из-за того, что средство 3D-рендеринга было "неправильным": https://scratch.mit.edu/discuss/topic/73118/
@cwillisf @fsih Для меня имеет смысл сопоставить поведение 2D-рендерера. Спасибо за расследование!
Самый полезный комментарий
Проекты в основном используют эффект яркости для перехода от белого к черному и обратно, поэтому я думаю, что было бы наиболее разумно сопоставить 2D-рендерер Scratch 2. Спрайты, становящиеся белыми, также были исходным поведением до того, как нам пришлось добавить 3D-рендерер, и ошибка LLK / scratch-flash # 570 была создана из-за того, что средство 3D-рендеринга было "неправильным": https://scratch.mit.edu/discuss/topic/73118/