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

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

Страницы: 1 2 3 4 518 Следующая »
#30
12:31, 22 ноя 2019

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

#31
12:42, 22 ноя 2019

нашёл проверил хм хм хм вроде в старой версии всё работает, страаанно однако - ладно ухожу в туман медитировать над листингами (ещё вопрос над какими - ну всё всё уже растаял)

#32
14:52, 22 ноя 2019

Neirapik
> sr2d я не обновлял с год где-то
Я x86 версию не обновлял несколько лет уже.

#33
15:23, 22 ноя 2019

я дополнения пишу в sr2d

#34
15:36, 22 ноя 2019

сейчас точно не вспомню но я добавлял ускорение закраски (до 50% сокращает время за счёт закраски одной командой 4-х пикселей), добавил рект закраску с входными значениями границ закраски чтобы не менялся ранее установленный сетлокрект, ну и добавил упрощённую полупрозрачную заливку плюс вертикальные и горизонтальные линии отдельным асм блоком отрабатываются прямым перебором заданого колва пикселей что гораздо быстрее и актуально для меня так как я часто активный интерфейс в реальном времени использую и он привязан к разным динамичным данным и тут скорость прорисовки весьма актуальна и на практике мне удалось с экраном 1920 на 1080 с полной четырёхкратной заливкой включая полупрозрачную (накладываются текущая нейроматрица + графики из нескольких тысяч линий и куча текста из моего модуля шрифтов) и всё это менее чем за милисекунду
спс за sr2d

#35
18:59, 22 ноя 2019

и да забыл добавить что это всё в 3д пространстве для возможности масштабирования так как рабочее пространство гораздо больше рабочего стола то на экран проецируется вид из плавающей точки что позволяет расматривать структуры и графики как захочется в сочетании с доп интерфейсом всплывающем в узлах при приближении или по вызову
P.S.  всё закругляюсь а то закручу тут флуд

#36
(Правка: 14:28) 14:18, 23 ноя 2019

Mikle
Привет, напомни, я что-то опять забыл, DrawRotate без альфы рисуется, или я какой-то момент упускаю?
Вот сейчас понадобилось, и я опять вспомнить не могу, вроде крутил с альфой раньше. В аргументах не вижу что-то оп.

Т.е. если у спрайта сорса есть альфа, то при рисовании с ротейтром она игнорится у меня.

#37
16:05, 23 ноя 2019

SilentPrayerCG
DrawRotate рисует всё вместе с альфой как 4 независимых канала, для альфаналожения нужно сначала выполнять DrawRotate во временный спрайт, а потом временный спрайт на приёмник отображать с помощью Draw с OpAlphaBlend.

#38
(Правка: 17:03) 17:00, 23 ноя 2019

Привет! (снова). Отчитаюсь о результате - переписал свои дополнения для sr2d в инструкции sse и глюк пропал (хорошо что так сделал до переделки движка)
в общем удачи и спасибо за внимание! возращаюсь дальше работать. (правда все выходные на суматоху потратил - уж лучше эту суматоху в кино смотреть)

#39
17:51, 23 ноя 2019

Mikle
ну у меня в итоге альфа получалась в том месте где за счет поворота было пустое место, а вот в том месте где изначально в спрайте была альфа нет. т.е если в спрайте круг, то рисуется один фиг крутящийся квадрат.

так как мне нужно было круг делать, я в итоге сделал отдельно маску, крутил свой спрайт и потом копировал маску из спрайта в альфу, и потом уже рисовал

#40
21:04, 23 ноя 2019

SilentPrayerCG
> в итоге альфа получалась в том месте где за счет поворота было пустое место, а
> вот в том месте где изначально в спрайте была альфа нет. т.е если в спрайте
> круг, то рисуется один фиг крутящийся квадрат.
Вот я по-быстрому сделал пример на x64 версии, всё нормально работает: https://yadi.sk/d/YUCRKXxAVdDysg

#41
(Правка: 24 ноя 2019, 0:05) 23:20, 23 ноя 2019

Mikle
Спасибо, гляну.
Вроде-бы получилось повторить.
Получается DrawRotate на спрайт переносит всё, и цвет и альфу? Ну т.е замещает данные "холста", а не смешивает с ними?

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

https://gamedev.ru/files/images/?id=142657

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

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

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

#42
8:27, 24 ноя 2019

SilentPrayerCG
> DrawRotate на спрайт переносит всё, и цвет и альфу? Ну т.е замещает данные
> "холста", а не смешивает с ними?
Да.
SilentPrayerCG
> это сложно опцию сделать что-бы ресайз без фильтрации был?
Не сложно. Постараюсь в ближайшее время.
SilentPrayerCG
> не могу понять почему такая окантовка получается
Попробуй перед DrawRotate очищать временный спрайт цветом с нулевой альфой. В моём примере этого нет потому, что спрайт вращается всегда на небольшой угол, старый спрайт всегда затирается новым.

#43
9:33, 24 ноя 2019

Mikle
Понял о чем ты, типа друг на друга аккумулируются, но по-идее я каждый раз заново спрайт создаю, потому что каждый раз новый размер нужен

вот код

 Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim Canvas As New Sprite(2048, 2048)

        Dim brush As New Sprite("T:\MASKS\_BrushedRadial.png")
        Dim brush_rotated As Sprite
        Dim brush_resized As Sprite
        Dim R As New Random
        Dim x, y, s As Integer
        Dim a As Single

        For n = 0 To 10000
            a = R.Next(360) + R.NextDouble
            s = R.Next(200, 300)
            brush_resized = New Sprite(brush, Transform.None, s, s)
            brush_rotated = New Sprite(s, s)
            brush_rotated.DrawRotate(brush_resized, s * 0.5, s * 0.5, s * 0.5, s * 0.5, a, True)
            x = R.Next(2048)
            y = R.Next(2048)
            Canvas.Draw(brush_rotated, x, y, Op.AlphaBlend)
        Next
        Canvas.SaveToFile("r:\mask_big.png", Imaging.ImageFormat.Png)
    End Sub
#44
20:49, 24 ноя 2019

SilentPrayerCG
Я понял, виноват спрайт _BrushedRadial.png, попробуй мой вариант:
_BrushedRadial | SR2D, тестируем x64 версию.

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