Понедельник, 18 Ноября 2024, 00:35

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
SR2D, Софтверный движок для работы с 2D графикой. Релиз.
-Mikle-Дата: Среда, 25 Января 2012, 14:47 | Сообщение # 1
Изобретатель велосипедов
Сейчас нет на сайте
Давно занимаюсь разработкой софтверного движка 2D графики для VB6.

SR2D предназначен для использования при создании оконных 2D приложений. На настоящий момент SR2D состоит из модуля modSR2D, класса SR2D_Sprite и DLL - SR2D.dll. Класс SR2D_Sprite предназначен для хранения двумерного изображения с альфа каналом, различных его преобразований и отображения на форму или любой контрол, обладающий hDC.
Для использования необходимо подключить к проекту указанные модуль и класс, а DLL разместить в папке проекта. Движок не использует для работы никаких API, кроме SetDiBitsToDevice, используемой для вывода изображения на экран и нескольких ф-ций GDI+ для чтения и сохранения файлов.
SR2D.dll на 10% написана на C++ и на 90% на ассемблере с активным применением MMX. Это - набор API-подобных stdcall ф-ций.

Движок свободен для некоммерческого и коммерческого использования. Единственное условие - не переименовывать SR2D.dll.
То, что движок "для VB6" - не критично, модуль modSR2D и класс SR2D_Sprite фактически являются портом SR2D.dll для VB6, для использования SR2D с любым языком достаточно перевести порт.

Я только что зарелизил версию 3.1 SR2D, тут несколько небольших примеров:
SR2D_3_1
287 кБ.

Пока полноценного ReadMe нет, но можно смотреть старый ReadMe, от версии 2.0, изменения вполне логичны и понятны без доп. описания, тут движок, ReadMe и несколько примеров для версии 2.0:
SR2D_2_0
400 кБ.

Что нового по сравнению с версией 2.0:
1. Добавился оператор OpBlend (интерполяция источника и приёмника).
2. Теперь использовать маску можно не только с любым оператором, но и с MulAddS2X, ClearBuffer, MoveBit, MoveByte, DrawDPBM, DrawEBM.
3. В DrawDPBM добавился точечный источник света.
4. Загрузка из файла средствами GDI+, соответственно поддержка .bmp, .jpg, .png и т. д. форматов.
5. Сохранение в .bmp, .jpg, .png с альфаканалом (кроме .jpg) и без него.
6. При загрузке можно задавать трансформации - масштабирование (с фильтрацией), поворот, отражение.
7. Появился поворот спрайта на произвольный угол, в том числе с АА.
8. ColorKey теперь задаётся не только при загрузке, но и через метод AddColorKey. "Add" потому, что таких ключей можно задавать сколько угодно, все указанные цвета станут прозрачными.
9. Новый метод MaskInterSector позволяет находить площадь пересечения масок. Удобно применять для коллизий, задавая в качестве маски альфаканал.

Примеры готовых игр, на старой версии:
BriX
58 кБ.

FlyGame
74 кБ.
(блиц игра, написана за 4 часа)

Добавлено (04.11.2011, 14:09)
---------------------------------------------
Сделал пример рисования кистью и некоторых других технологий, применимых в графических редакторах:
Paint
и пример анимации:
Anim

Добавлено (24.11.2011, 10:16)
---------------------------------------------
Скринсейвер, фигуры Лиссажу в 3D:
Stars
Выключение по движению мышки я убрал специально.
Управление:
Space - смена рисунка.
Escape - выход.

Добавлено (25.01.2012, 14:47)
---------------------------------------------
Портировал третью версию SR2D на C# и vb.net.
Пример пока один - DPBM:
SR2D_CS
SR2D_NET


Сообщение отредактировал -Mikle- - Суббота, 04 Февраля 2012, 17:50
RikettaДата: Среда, 25 Января 2012, 15:13 | Сообщение # 2
Strategist
Сейчас нет на сайте
Классно. Однозначно попробую порт шарпа.

Fougerite - Rust Server OpenSource API
TerraDev - Terraria OpenSource Hack
-Mikle-Дата: Воскресенье, 20 Мая 2012, 14:49 | Сообщение # 3
Изобретатель велосипедов
Сейчас нет на сайте
Версия 3.2:
VB6
vb.net
C#
1. В этой версии исправлен баг с сохранением в файл в Win7-64.
2. Изменён синтаксис команды LoadFromObject. Теперь она называется LoadFromIPicture, вместо параметра:
Code
Source As Variant

теперь два параметра:
Code
Src As IPicture, ByVal hDC As Long

Благодаря этому я избавился от позднего связывания, получил возможность грузить не только с PictureBox или Form, но и с любого контрола, не обладающего hDC, например с ImageBox. Вторым параметром можно передавать hDC формы или, к примеру, рабочего стола.
3. Добавилась процедура DrawLine. Меняя параметр DotStep, можно рисовать прерывистые линии, если установить параметр IsXor = True, то цвет будет получаться как Dest Xor Color. Если использовать Color = &H808080, то получается в любом случае цвет, контрастный с приёмником, если DrawLine с IsXor = True применить повторно, то приёмник полностью восстанавливается, можно не перерисовывать.
AGENTX001Дата: Понедельник, 21 Мая 2012, 13:30 | Сообщение # 4
почётный гцупер
Сейчас нет на сайте
-Mikle-, а для Free Pascal хедеров не будет?
-Mikle-Дата: Понедельник, 21 Мая 2012, 13:43 | Сообщение # 5
Изобретатель велосипедов
Сейчас нет на сайте
AGENTX001, я бы хотел сделать порт и для Delphi-Pascal, но я их почти не знаю.
А для того, чтобы не просто перевести, а учесть особенности конкретного языка, его нужно знать хорошо. Например, порты под C# и vb.net у меня отличаются от порта под VB6, это учёт особенностей конкретной платформы. Так же перевести на Паскаль я сам не смогу, но был бы рад помощи.
Stalker_ShooterДата: Понедельник, 21 Мая 2012, 14:09 | Сообщение # 6
3D XNA'шник
Сейчас нет на сайте
Красота happy . Однозначно +

*Не убегай от снайпера, умрешь уставшим.
*Мои статьи...
FSOДата: Пятница, 22 Июня 2012, 11:50 | Сообщение # 7
почетный гость
Сейчас нет на сайте
-Mikle-, а зачем генерация чисел в Form1.caption тут ?

GCup.ru ? Не, не слышал!
-Mikle-Дата: Пятница, 22 Июня 2012, 11:57 | Сообщение # 8
Изобретатель велосипедов
Сейчас нет на сайте
Это FPS - быстродействие.
НохчиДата: Пятница, 22 Июня 2012, 11:57 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
-Mikle-, очень хорошо, но почему софтвер? 2012 год на дворе.

Многие вопросы по Windows отпадут, если посмотреть тут
-Mikle-Дата: Пятница, 22 Июня 2012, 13:40 | Сообщение # 10
Изобретатель велосипедов
Сейчас нет на сайте
Quote (Нохчи)
2012 год на дворе

Всё верно, мощные видеокарты, но и мощные процессоры, всё больше графических задач, с которыми вполне справляется CPU. А софт. рендер - это простота:
одной командой Dim Spr As New SR2D_Sprite создаём спрайт,
одной командой Spr.LoadFromFile загружаем в него изображение,
одной командой Spr.PaintToDevice отображаем его на форму или контрол.
Кроме того - это независимость от версии дров, установленной версии DirectX и т. п.
Кроме того - это лёгкий и быстрый доступ к полученному изображению, без всяких тормозных Lock.
AGENTX001Дата: Пятница, 22 Июня 2012, 13:48 | Сообщение # 11
почётный гцупер
Сейчас нет на сайте
-Mikle-, клас biggrin Что с портами для дельфина? smile
НохчиДата: Пятница, 22 Июня 2012, 13:57 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Quote
Всё верно, мощные видеокарты, но и мощные процессоры, всё больше графических задач, с которыми вполне справляется CPU. А софт. рендер - это простота:

Я когда так от SDL отказался, когда сравнил скорость его софтверной отрисовки со скоростью хардверной OpenGL. Разница была колоссальная. В любом случае, работа достойна уважения.

В планах нет открытия исходников? Интересует именно MMX.


Многие вопросы по Windows отпадут, если посмотреть тут
-Mikle-Дата: Пятница, 22 Июня 2012, 14:23 | Сообщение # 13
Изобретатель велосипедов
Сейчас нет на сайте
AGENTX001, я помню, просто, чтобы грамотно составить ТЗ, нужно самому хоть немного в него въехать, а времени что-то совсем мало. Плохо, что у нас с тобой нет языков, которые бы мы оба знали, чтобы было, на чём давать примеры.
Нохчи, исходники не скрываю, какие именно ф-ции интересуют?
НохчиДата: Пятница, 22 Июня 2012, 14:27 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Вращение/масштабирование спрайтов(насколько я понял реализовано на асме), интересует как проводилась оптимизация. Плюс, если я ничего не путаю, в test.exe реализован Bump и для чего понадобился MMX.

Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Пятница, 22 Июня 2012, 14:31
-Mikle-Дата: Пятница, 22 Июня 2012, 14:41 | Сообщение # 15
Изобретатель велосипедов
Сейчас нет на сайте
Quote (Нохчи)
Вращение/масштабирование спрайтов

Это сделано на C++. Вот масштабирование:

Вращение могу дать вечером, на работе у меня нет исходников, а прототип на VB6 можно посмотреть в этой теме:
Алгоритмы обработки изображений

В test.exe действительно бамп, точнее DPBM, бывает ещё EBM. MMX очень хорош для одновременного выполнения одинаковых действий над четырьмя целыми числами, например, при суммировании цветов. В MMX не нужно отслеживать переполнение, там автоматом работает НАСЫЩЕНИЕ.
НохчиДата: Пятница, 22 Июня 2012, 14:45 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
Спасибо. Изучаю.

Многие вопросы по Windows отпадут, если посмотреть тут
-Mikle-Дата: Четверг, 06 Сентября 2012, 11:50 | Сообщение # 17
Изобретатель велосипедов
Сейчас нет на сайте
Приятная новость.
Разработчики FBSL - Freestyle Basic Script Language, портируют SR2D:
FBSL+SR2D


Сообщение отредактировал -Mikle- - Четверг, 06 Сентября 2012, 11:50
JackNazaryanДата: Воскресенье, 28 Октября 2012, 02:09 | Сообщение # 18
старожил
Сейчас нет на сайте
Работайте)) неплохо
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг