Войти
Вело-изобретателиФорумSR2D - софтовый 2D движок

SR2D, тестируем x64 версию. (11 стр)

Страницы: 16 7 8 9 10 11
#150
10:26, 15 апр 2022

SilentPrayerCG
Смысл такой, чтобы можно было  явно задать любой Op, а в случае пропуска этого параметра чтобы применялся Op.Paint. Но пользователь ведь может вписать явно Op.DefaultOp, в этом случае тоже должен получиться Op.Paint.

#151
21:06, 15 апр 2022

Mikle
но он и так паинт по дефолту) если ничего не писать, в конструкторе, = оп паинт.

#152
(Правка: 23:04) 23:02, 15 апр 2022

SilentPrayerCG
> если ничего не писать, в конструкторе, = оп паинт.
Но это защита от явного указания DefaultOp, который может предложить интеллисенс.

#153
10:49, 16 апр 2022

Mikle
это понятно, я имею ввиду что в аргументах, у меня есть выбор либо дефолт оп либо паинт
причем оп все равно по дефолту паинт, а не дофлт оп, а если дефолт оп то все равно паинт

или это просто по правилам полагается чтобы в таких перечислениях было значение "дефолт"?

я к тому что если убрать вообще оттуда дефолт оп, из енума этого, и убрать строчку "если оп = дефолт тогда оп = паинт", то ничего не поменяется, никто ничего не потеряет - или я ошибаюсь?

#154
(Правка: 18:31) 18:29, 16 апр 2022

SilentPrayerCG
Обрати внимание на работу Draw() (или MaskDraw()) — там можно указать нужный Op, а можно указать OpDefault (или вообще не задавать никакой Op, что то же самое), и тогда применится Op, назначенный для спрайта-источника по умолчанию. Для чего это сделано: чтобы начинающий пользователь мог пользоваться SR2D даже ещё не разобравшись с системой Op, параметр Op везде идёт Optional, при загрузке картинки из файла по умолчанию, если картинка в файле без альфаканала, назначается OpPaint, если с альфаканалом — OpAlphaBlend, если при загрузке указывался ColorKey — OpAlphaTest. Понижается порог вхождения, можно вообще не вникать, что такое Op, пропускать его, и сделать что-нибудь простое, типа игры Color Lines.

#155
19:29, 16 апр 2022

Mikle
т.е если загрузить в спрайт из файла, пнг-шку с альфой
потом во второй спрайт через draw рисовать 1ый спрайт, и выставить дефолт.оп, то это будет альфабленд?

#156
(Правка: 19:58) 19:44, 16 апр 2022

SilentPrayerCG
Да, верно. Можно вообще Op не указывать.

#157
(Правка: 21:30) 21:20, 27 апр 2022

Mikle
Привет. Я все мучаю отображение превьюхи картинки (точнее я забил на какое-то время, и снова решил помучить)
И что-то я опять, запутался.

Есть картинка, с альфой. Она загружается в спрайт selected image

дальше я пробую делать вот так

ResizedSelected = New Sprite(SelectedImage, Transform.None, SelectedImage.Width * PreviewScale, SelectedImage.Height * PreviewScale)

т.е я создаю спрайт, из 1ого спрайта, и размеры увеличиваю или уменьшаю (ну т.е зум, типа колесиком, ближе/дальше)

я для дебага вывожу в пикчур этот спрайт - всё хорошо

но дольше, я создаю спрайт, равный изначальному размеру selected image, и поверх него рисую через draw увеличенный спрайт с альфаблендом. Ну т.е у увеличенного спрайта по идее должна быть альфа (да и раньше с другим кодом работало вроде все, это сейчас иначе решил сделать этот момент)
в общем вот

ResizedPreview = New Sprite(SelectedImage.Width, SelectedImage.Height)
ResizedPreview.Draw(ResizedSelected, ResizedPreview.Width \ 2 - ResizedSelected.Width \ 2, ResizedPreview.Height \ 2 - ResizedSelected.Height \ 2, Op.AlphaBlend)

и дальше для дебага вывожу это в пикчур, и там пустота просто (ну и дальше по коду, где при скейле формы это все вырисовывается, тоже пустота. т.е рисуются шашечки, а вот зазумленный вариант уже не рисуется)

причем, если я сделаю resizedpreview.clearbuffer и добавлю цвет с альфой 255, то рисуется, первая картинка (увеличенная, на цветной спрайт)

Что-то я не пойму.. Пытался как-то оптимизировать зум, и что-то не особо получается.
Причем если я зумлю гдето в районе *2, цвета ломаются.
видимо это как-то связано с тем что спрайт очень большой, или.. я хз. тестовый спрайт у меня 2392 на 1863, т.е в два раза это будет 4700 на 3600 грубо говоря, при таких размерах у альфабленда может что-то ломаться?

https://disk.yandex.ru/d/0eRzWNERmHsc5w - вот как цвета меняются

ps
в общем выкинул нафиг вышеупомянутый код, в том-же коде где картинка ресайзится под форму, добавил множитель для зума
и да в этом коде с большим зумом, тоже цвета ломаются..
это не объясняет все равно почему-то вышеупомянутый код не работал, альфа что-ли ломается или что-то такое

т.е сейчас у меня есть картинка с альфой, и я её рисую поверх спрайта с шашечками

А до этого было, что я поверх пустого спрайта рисую спрайт другого размера, и потом все это рисую поверх шашечек - и не работало

в любом случае такой подход к зуму очень медленный
но я не представляю как сделать по другому

#158
14:58, 28 апр 2022

SilentPrayerCG
Сейчас к празднику сильно занят, некогда. Постараюсь не забыть глянуть.

#159
15:14, 28 апр 2022

Mikle
Ладно я после 9ого еще напишу.
Я видимо от зума откажусь, или попробую на битмапах сделать, не очень эта идея с апксейлом спрайта и рисованием его на маленький спрайт работает.

#160
22:23, 14 мая 2022

Mikle
Привет, я возможно баг нашел.
Сравнил даунскейл с альфой с реализацией в битмап.
В SR2D какие-то непонятные светлые участки появляются, там где их по логике не должно быть и там где в битмапе их нет.
https://ibb.co/drHKjMR - sr2d
https://ibb.co/PrRkzpx -  bitmap
https://ibb.co/fqHVjkt - sr2d (+черная подложка в фш)
https://ibb.co/Gs2XxVW - bitmap (+черная подложка в фш)
https://ibb.co/x5wBXyv - difference между последними двумя

#161
23:02, 14 мая 2022

Завтра вечером посмотрю, с утра уезжаю на весь день.

#162
(Правка: 15 мая 2022, 20:32) 23:17, 14 мая 2022

Mikle
ну глянь как время будет
это я так зарепортил чисто

ps
вот если что файл который я скейлил
https://ibb.co/CscSS0M

Страницы: 16 7 8 9 10 11
Вело-изобретателиФорумSR2D - софтовый 2D движок