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

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

Страницы: 1 2
#15
18:57, 15 сен. 2019

Mikle
я точно попал в параллельную вселенную, эффект Манделы
до недавнего времени был уверен, что 100% jpeg - lossless
теперь еще и в бмп альфа бывает (сам сейчас на сейве это увидел)

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

как вариант если-бы можно было выбирать

#16
(Правка: 1:02) 0:19, 18 сен. 2019

Mikle
Что-то я опять трою

есть спрайт куда все будет рисоваться

SpriteOutput
допустим
и есть два спрайта sprite1 просто картинка, sprite2 картинка с альфой

я рисую так

SpriteOutput.Draw(SpriteNoAlpha,0,0)
SpriteOutput.Draw(SpriteAlpha,0,0,Op.AlphaBlend)

вывожу spriteoutput и получается дичь, либо первый спрайт (который типа бэкграунд) рисуется поверх, а того не видно или он позади, либо еще чтото

сделал вот так

SpriteOutput.Op  = Op.Paint
SpriteOutput.ClearBuffer(ARGB(255,255,0,0))
SpriteOutput.Draw(SpriteNoAlpha,0,0)
SpriteOutput.Draw(SpriteAlpha,0,0,AplhaBlend)
SpriteOutput.PaintToDevice(Hdc)

и результат просто красный квадрат.

ничего понять не могу...

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

#17
(Правка: 9:41) 8:23, 18 сен. 2019

SilentPrayerCG
> SpriteOutput.Op  = Op.Paint
Эта строка не нужна - имеет смысл только Op источников.
> SpriteOutput.ClearBuffer(ARGB(255,255,0,0))
Эта тоже не нужна - всё равно SpriteNoAlpha всё затрёт, в том числе альфаканал.

Но всё должно работать и так, дай проект с файлами картинок, посмотрю.

#18
10:19, 18 сен. 2019

Mikle
я забыл, а как должно быть вообще?
если я хочу сделать спрайт цвета А
и нарисовать спрайт Б с альфой на него?
и потом все это вывести в буфер который уже нарисовать на девайс?

щас я попробую разобраться в чем там дело было...  но почему-то рисовался только цвет которым я клеарил

#19
10:27, 18 сен. 2019

SilentPrayerCG
> а как должно быть вообще?

  SprBack.ClearBuffer(ARGB(255, 255, 0, 0))
  SprBack.Draw(SprAlpha, 0, 0, Op.AlphaBlend)
  SprBack.PaintToDevice(hDC)
#20
(Правка: 10:52) 10:51, 18 сен. 2019

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

Мой косяк. Ну вот и хорошо, а то я уже боялся, какой-нибудь глюк случился не отлавливаемый.

а вот насчёт засарение альфы, получается, если спрайт 1 не прозрачный, я рисую на него спрайт 2 - прозрачный, спрайт 1 получает его альфу так?, если если я спрайт 1 нарисую на спрайт 0 с блендом, то он получиться нарисуется с альфой от спрайта 2 так?

#21
13:46, 18 сен. 2019

SilentPrayerCG
Сейчас AlphaBlend уже не портит альфу, какая была - такая и останется.

#22
18:02, 18 сен. 2019

Mikle
Понял, это хорошо.

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