Scratch-render: Эффект Яркость + Цвет не работает так же, как Scratch 2

Созданный на 1 июн. 2017  ·  8Комментарии  ·  Источник: LLK/scratch-render

Ожидаемое поведение

_Пожалуйста, опишите, что должно произойти_
Scratch 2, если вы установите эффект яркости на 100 и цветовой эффект на 50, вот что вы получите
image

Фактическое поведение

_Опишите, что происходит на самом деле_

В Scratch 3 вы получаете весь белый цвет (я добавил фон, чтобы вы его видели).
image


Эта ошибка упрощает проблему, возникшую у меня при открытии этого проекта с нуля 3 https://scratch.mit.edu/projects/1270935/
Это должно выглядеть так
image

А вместо этого выглядело так
image


cc @cwillisf

bug compatibility needs-triage

Самый полезный комментарий

Проекты в основном используют эффект яркости для перехода от белого к черному и обратно, поэтому я думаю, что было бы наиболее разумно сопоставить 2D-рендерер Scratch 2. Спрайты, становящиеся белыми, также были исходным поведением до того, как нам пришлось добавить 3D-рендерер, и ошибка LLK / scratch-flash # 570 была создана из-за того, что средство 3D-рендеринга было "неправильным": https://scratch.mit.edu/discuss/topic/73118/

Все 8 Комментарий

Я все еще вижу некоторые странности с яркостью, но они немного отличаются от перечисленных выше. Похоже, что проект 1270935 работает нормально. Кроме того, значения яркости от -100 до 0 соответствуют ожидаемым.

Для яркости от 0 до 100 кажется, что он становится ярче, но не полностью белым, как в 2.0.

Вот он в 2.0:
brightnesstest2 0

И вот оно в 3.0:
brightnesstest3 0

Я использовал этот проект: https://scratch.mit.edu/projects/276912470/, чтобы проверить это.

/ cc @kchadha @ktbee @cwillisf

Я нашел кое-что странное. Если вы используете только эффект яркости для спрайта в царапине 2, он будет выглядеть так (от 0 до 100)
Царапина 2:
screen shot 2019-01-09 at 22 32 37

Однако, если вы также используете цветовой эффект на любом спрайте, все спрайты изменятся, чтобы выглядеть следующим образом:
Также Scratch 2:
screen shot 2019-01-09 at 22 32 14

И вот как сейчас выглядит эффект яркости в Scratch 3.0.
Царапина 3:
screen shot 2019-01-09 at 22 29 56

@cwillisf, когда цветовой эффект сломался в прошлый раз, когда вы сказали, что это как-то связано с движком рендеринга?

Нашел соответствующую ветку со ссылками на полезный код: https://github.com/LLK/scratch-flash/issues/570

Обратите внимание, что проблема HSV и HSL здесь не возникает. Вот 1) текущий эффект яркости, 2) эффект яркости с использованием HSL, 3) эффект яркости в Scratch 2. Ни 1, ни 2 не соответствуют 3.
screen shot 2019-01-09 at 22 30 45

Может быть актуально: 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-рендерера. Спасибо за расследование!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги