| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Perfect Engine, графический движок |
| Автор: SaiLight 30.9.2014, 15:11 | ||
http://files.perfectlight.ru/pl_resources/images/PerfectEngine_Logo.jpg Здравствуйте. Хотелось бы рассказать здесь немного об одном интересном проекте, разрабатываемом командой Perfect Light. Это Perfect Engine - простой 2D-графический Движок с открытым исходным кодом на Delphi для некоммерческого использования. Прежде всего, ориентирован на обучение начинающих программистов, потому исходный код максимально упрощен и прокомментирован. Движок разделен на 2 части: сам Движок, отвечающий за всю предварительную подготовку и хранение графических ресурсов и Рендер, выводящий эту графику на экран, за счет чего достигается полная его независимость от конкретной графической библиотеки и возможность привязки приложения к любой из них. В настоящий момент реализован стандартный GDI-Рендер 'peRender_Canvas.pas', обеспечивающий легкий вывод графики средствами WinAPI и не требующий никаких сторонних библиотек и расширений. Сам Движок имеет встроенные Камеру, Хранилище графики (менеджер ресурсов), Таймер, а также, несколько интересных особенностей, в числе которых - удобная и автоматизированная работа с кадрами анимации в одном спрайте (вы просто указываете номер кадра, и Движок сам выбирает его из общего спрайта) и возможность быстрого рендера кадра в текстуру. Процесс подключения Perfect Engine к своей программе, также, максимально упрощен - достаточно вызова всего одной строки кода, чтобы экран закрасился установленным вами фоновым цветом. Ниже приведен минимальный объем действий, необходимый для подключения Движка к своей программе:
В настоящий момент Движок активно дорабатывается - всю подробную информацию о нем можно почитать на форуме команды Perfect Light, в соответствующей, посвященной ему, теме. Исходный код Perfect Engine в скором времени будет выложен - командой приветствуются любые идеи, высказанные вами по поводу Движка и способствующие его улучшению. ![]() Думаю, важно было бы упомянуть в этой теме и другую разработку команды Perfect Light - это гибкая Система частиц Perfect Particle 2, позволяющая реализовать в своей программе довольно широкий набор максимально разнообразных эффектов. В данный момент библиотека дорабатывается (возможно, о ней в дальнейшем будет создана отдельная тема) - недавно Система, также, была полностью отвязана конкретного графического API, и теперь имеет возможность выводить рассчитанные Частицы даже с использованием Canvas (GDI). По одной из ссылок, представленных ниже, можно скачать программу, демонстрирующую возможности Системы с привязкой к Perfect Canvas (предшественнику Perfect Engine). http://files.perfectlight.ru/othersites/PP2_0.jpg http://files.perfectlight.ru/othersites/PP2_1.jpg http://files.perfectlight.ru/othersites/PP2_2.jpg http://files.perfectlight.ru/othersites/PP2_3.jpg http://files.perfectlight.ru/othersites/PP2_4.jpg Думаю, что Perfect Engine будет одинаково полезен как для обучения начинающих программистов, так и для создания собственных игровых и других графических проектов. При грамотно разработанных Рендерах Движок будет обладать довольно серьезными возможностями для вывода графики, и уже сейчас дает возможность переключения между графическими библиотеками простой заменой имени Рендера в секции Uses. А при объединении с такой Системой частиц как Perfect Particle 2 он выходит на совершенно новый уровень в своем развитии. В будущем планируется создание Рендеров Движка для таких библиотек, как FastLib, OpenGL и, возможно, DirectX. Спасибо за внимание! Более подробная информация о Движке, а также, Системе частиц и других наших проектах, представлена в соответствующих разделах форума команды Perfect Light. Мы были бы рады любым вашим идеям в вопросе усовершенствования Движка, а также, любой помощи в доработке представленных проектов. Ниже указаны некоторые полезные ссылки, среди которых - программа, тестирующая возможности Perfect Engine и программа, тестирующая Систему частиц Perfect Particle 2 с привязкой к Perfect Canvas, в которой вы можете насладиться шестью доступными эффектами. Полную версию программы (25 красивых эффектов) вы можете скачать с форума нашей команды. Там же - более подробное описание представленных проектов... http://files.perfectlight.ru/pl_resources/programs/perfectengine/perfectengine.zip http://files.perfectlight.ru/pl_resources/programs/perfectengine/perfectutilites.zip http://files.perfectlight.ru/pl_resources/programs/perfectengine/perfectengine_demo.zip http://www.engine.perfectlight.ru/ |
| Автор: drkot 30.9.2014, 18:09 |
| Рекламный прогиб защитан. И что дальше? Предлагаю удалить тему. Кто за? |
| Автор: SaiLight 30.9.2014, 18:45 |
| drkot, дальше - развитие проекта, и то, что я разместил ссылку на его официальный сайт, - не является рекламой. Проект полностью бесплатен и распространяется с открытым исходным кодом, прежде всего нацеливаясь на изучение новичками в программировании, а это значит, что они (новички) как-то должны о нем узнать, вот и все. Никакой вещественной выгоды с этого проекта я пока получать не планирую, а это значит, что тему вряд ли можно считать рекламной. |
| Автор: drkot 30.9.2014, 18:56 | ||
с каких это пор офф сайте не есть реклама? в раздел для готовых проектов и тестирования
когда будет, тогда и говорите Это раздел для вопросов... раз вопросов нет, следовательно флуд и реклама Добавлено через 2 минуты и 39 секунд К стати... на сайте предоставляются платные услуги... а данный пост используется для повышения тица. |
| Автор: SaiLight 30.9.2014, 19:02 | ||||
А вы читайте повнимательнее:
Я ясно написал, что в данной теме жду любых идей и пожеланий по поводу Движка - возможно, будут замечены ошибки в тестовых программах, а также, описание было дано достаточно полное, чтобы дать максимальное представление о Движке - кто-то может просто высказать идеи и пожелания. Когда будет готов исходный код - я выложу его сюда, и тогда высказываемые пожелания смогут быть более конструктивными. А куда я выложу код, если тему закроют? |
| Автор: drkot 30.9.2014, 19:10 |
| подождем модераторов... PS: глупость можно простить, но наглость... |
| Автор: SaiLight 30.9.2014, 19:17 | ||
| drkot, не вижу в этом никакой наглости - есть проект, который был бы интересен людям, и есть форум, на котором эти люди собираются. Так отчего же не дать этот проект людям, собирающимся на форуме? А ссылка на официальный сайт была указана только потому, что данный проект был размещен на нескольких форумах (кстати, вы - первый, кто заговорил про рекламу), и оперативно отвечать на сообщения с разных форумов у меня не получится. Ссылка на официальный сайт была размещена только потому, что общаться со всеми заинтересованными в разработке проекта было бы удобнее в одном и том же месте. В любом случае, модераторы рассудят.
drkot, вы и правда думаете, что я написал графический Движок, а также, вспомогательный проект к нему на 13 000 строк только для того, чтобы повысить ТИЦ своего сайта? Глупо думать, что я повышаю ТИЦ (Тематический Индекс Цитирования, если вы не в курсе) дизайнерской студии за счет своих проектов, выложенных на Форум программистов. |
| Автор: SaiLight 2.10.2014, 11:49 |
| Движок обновлен. На данный момент добавлена возможность сохранения содержимого буфера в файл (Скриншот) - самим сохранением управляет, разумеется, Рендер, Движок лишь вызывает соответствующую функцию в момент полной готовности кадра. Из планов на ближайшее будущее - усовершенствование математической модели Движка в плане более точной проверки на попадание объектов в область экрана. С настоящего момента имеется возможность скачать исходный код Движка и код тестовой программы, реализующей его возможности. Скачать исходный код самого Движка можно по прямой ссылке ниже, тестовая программа выложена в первом сообщении официальной темы Perfect Engine на нашем форуме. Там же всегда можно будет скачать самые последние версии всех файлов, относящихся к Движку. http://files.perfectlight.ru/pl_resources/programs/PerfectEngine_Engine.zip (10 kb) http://goo.gl/HeLrL8 (495 kb) http://perfectlight.ru/forum/programs/37-perfect-engine-graficheskij-dvizhok-2014-god.html |
| Автор: phomm 2.10.2014, 19:36 |
| Вступлюсь за уважаемого мной автора. Возможно, досточтимый drkot не бывает на других форумах программистов, и не видел, что SaiLight публикует свои работы, в том числе вкладывая в них образовательный смысл, ещё с года 2010 где-то, а сайт у их команды появился от силы 2 или 3 месяца назад, где теперь собрана вся предыдущая разрозненная публикация. Уверяю, что таких целеустремлённых и продуктивных разработчиков, желающих делиться, и умеющих это делать, надо ещё поискать, и нападать из-за неких собственных предубеждений я скажу, что неправильно, лучше бы сперва изучили минимальный бекграунд вопроса, чтобы сформировать мнение, а то вышло опрометчиво, некорректно и грубо. Насчёт закрытия и переноса темы - проект в довольно большой части своей концепции рассчитан на обучение новичков, обучению задачам разработки медиа-приложений на дельфи, что данный движок как раз и делает, и иного места ему найти сложно. По теме - автор и так знает, т.к. мы с ним уже общались, и думаю, ещё не раз будем общаться, в том числе про движок. Исходники, конечно, гляну и изложу свои замечания, как обычно, буде таковые найдутся |
| Автор: Pavia 2.10.2014, 22:38 |
| drkot, Завидуете автору то что он что-то сделал, а вы нет? SaiLight, А вот врать не хорошо. Это реклама. И не как не обучение для новичков. И движок на до бы переделать уж больно много ошибок проектирования и не однозначных решений. Не говоря о ошибках. Хотя стоит сказать что это чуть лучше чем предлагают новички для новичков. Но всё же тут ещё работать и работать над движком и примерами. |
| Автор: drkot 2.10.2014, 23:24 |
Чему завидовать? Сотне строк кода? Или эфемерному движку которого так и нет? Наверно каждый может достать "поделки" из чулана... Но если поделки выкладывать, так так и писать... мол поделка на суд общественности... И главное для этого есть раздел на форуме! А тут на тебе "революционное решение в области графики"! Причем автор специально для этого зарегистрировался! Если копнуть он уже все форумы этим движком "обделал". Вот и твин нарисовался... они похоже по байту в день кодят... судя по материалам... да что Вы говорите?! учит как писать бестолковые объекты и загружать в них картинки? Где конвейеры? где потоки? про директдрав я даже не заикаюсь.... Это весьма посредственная курсовая работа... |
| Автор: SaiLight 2.10.2014, 23:44 | ||||||||
phomm, спасибо за поддержку, нечасто ее встретишь, когда делаешь не то, чего от тебя ожидают. Например, программируешь на Delphi.
Если я хочу, чтобы о проекте, ориентированном на новичков, узнали новички, то, будь это хоть трижды реклама по чьим-то меркам, я, не ожидая от этого совершенно никакой выгоды, могу позволить себе такую 'рекламу'. Реклама ради тех, на помощь кому нацелен этот проект, не считается мной за рекламу.
Pavia, с удовольствием выслушаю все ваши (и не только ваши) пожелания по данному вопросу. Только чуть более конкретные. Когда на одном из форумов phomm высказывал мне замечания, все его пожелания были конкретными и понятными - такие пожелания я ожидаю услышать и от остальных более опытных участников. Если вы не можете высказать подобных замечаний, то все остальные будут пропущены мною мимо. Я делаю то, что могу и как могу, стараясь максимально преуспеть в каждой задаче.
drkot, советую вам внимательнее читать мои сообщения - движок уже давно открыт, и его можно скачать. А также, был бы бесконечно признателен вам, если бы вы начали общаться чуть более дружелюбно или покинули данную тему, потому что спорить и воевать с вами я не хочу.
Вы все наши материалы смотрели? Среди наших работ есть как компьютерные программы (вплоть до 13 000 строк в Perfect Particle 2, что 'сотней' никак не обзовешь), так и проекты в области веб-дизайна и иных сферах дизайнерской деятельности - моделировании, работе в Photoshop и других редакторах. Наша работа напрямую никак не связана с программированием, и если мы успеваем 'кодить по байту в день', чтобы кого-то чему-то научить, то это уже может считаться огромным трудом с нашей стороны, потому как немногие делают даже это. |
| Автор: drkot 3.10.2014, 14:27 |
бла бла бла, все что видно это Ваш пафосный треп.... где доказательства? шел бы ты лесом, солнышко со своими тицами и пиарами, и не срал бы в приличной теме. а то пафос из всех дыр прет, "ля ля фа фа проект для новичков" "пол сотни человек попку рвут уже три года"... как то маловат результат для таких невхерственных амбиций... |
| Автор: drkot 3.10.2014, 14:47 |
| SaiLight, Вы конечно извините, но еще лет 20 назад представленная Вами работа вызвала бы обильное рукоплескание, но сейчас технологии ушли немного дальше. |
| Автор: Keeper89 10.10.2014, 01:41 |
| Что напали на автора? Он разместил, кому надо почитают. Всем остальным (переносом по темам, банами и т.д.) займутся модераторы. |
| Автор: xackera 13.10.2014, 08:55 |
| SaiLight, может Вам стоит написать в http://forum.vingrad.ru/forum/topic-21411/view-all.html? |
| Автор: SaiLight 13.10.2014, 10:25 |
| xackera, возможно, но если я создам кроме этой темы еще и сообщение по той ссылке, тогда здешние антиспамы меня точно съедят.) |
| Автор: Dimonka2 16.1.2015, 20:38 |
| Ну и где исходники? |
| Автор: SaiLight 11.2.2015, 02:08 |
| Dimonka2, приношу извинения за столь долгий ответ. Обновил первое сообщение темы, выложив прямую ссылку на архив с исходниками Perfect Engine. Движок понемногу растет, когда появится свободное время, еще немного доработаю его к выпуску новой версии. На данный момент с использованием Perfect Engine одним знакомым программистом была написана небольшая коммерческая программа, если он будет не против, также, выложу ссылку на нее в данной теме. |
| Автор: SaiLight 28.5.2015, 11:50 |
| Всем привет! Рад поделиться на данном форуме результатами огромной работы, проделанной нами со SpectreZ'ом в рамках проекта по усовершенствованию графического движка Perfect Engine. Как выяснилось некоторое время назад, движок, все же, пользуется некоторым спросом: на данный момент с его использованием написано уже несколько проектов, среди которых имеется, ко всему прочему, и один коммерческий. Также, ко мне не раз поступали запросы об ускорении выпуска новой версии Perfect Engine, в которой, как я обещал, ожидали увидеть реализацию OpenGL-рендера. В любом случае, работа подошла к концу, и я рад поделиться на данном форуме результатами наших трудов. Итак, сначала обо всем вкратце... 1. Добавлен OpenGL-рендер 2. Исправлены и улучшены некоторые функции движка 3. Открыт официальный сайт поддержки движка 4. Написан демо-проект - логическая игра Crown Теперь - немного подробнее... OPENGL Perfect Engine теперь обладает двумя рендерами - Canvas и OpenGL, выбор одного из которых можно осуществлять, например, при старте программы. Напомню, что движок полностью отвязан от конкретного модуля вывода, а это значит, что при желании любой из них вы можете написать сами. Программный код с использованием функций Perfect Engine работает без единого изменения с любым используемым рендером - достаточно только заменить требуемый модуль в разделе 'uses'. Проблемы с полупрозрачными изображениями в GDI-рендере и иные подобные им решаются за счет введения нового свойства UsedRender, отображающего имя используемого в данный момент модуля. Вот некоторые из особенностей, реализованных в новом OpenGL-рендере, которые невозможно обойти стороной:
Из недостатков хотелось бы отметить отсутствие поддержки VBO, FBO, шейдеров и иных продвинутых технологий. Надеюсь, в будущих версиях движка эти недостатки будут устранены. ИСПРАВЛЕНИЯ Полный список всех изменений в текущей версии Perfect Engine вы можете увидеть в модуле PerfectEngine.pas, здесь же хотелось бы коснуться лишь, на мой взгляд, одного из наиболее важных нововведений. Теперь вместо типа TColor движок использует новый тип данных, хранящий в себе кроме значения цвета и значение прозрачности - TAlphaColor, а также, имеет встроенный набор функций для работы с этим типом (peRoutine.pas). Почему же данное нововведение было особенно мною выделено? Для упрощения работы с цветом написана вспомогательная программа Perfect Palette, реализующая цветовую палитру с возможностью выбора цвета в пространстве HSL и получения его кода в формате, пригодном для использования в Photoshop, а также, в TAlphaColor-формате. Все усовершенствования вносились в Perfect Engine при разработке использующих его проектов. Я лично сотрудничал с разработчиком коммерческого проекта, когда он сообщил мне о желании использовать Perfect Engine для упрощения вывода графики - таким образом уже в тот момент были исправлены некоторые серьезные проблемы в его работе. Если вы хотите использовать Perfect Engine в своих проектах, обязательно свяжитесь со мной в Контакте (http://vk.com/sailight) или на http://www.engine.perfectlight.ru/ движка - возможно, наше сотрудничество пойдет на пользу обоим проектам. САЙТ Открыт официальный сайт поддержки http://www.engine.perfectlight.ru/. Основное его назначение - быстрое предоставление информации по всем функциям движка. Для этого в правом верхнем углу сайта расположена строка поиска - введите в нее полное или частичное название функции, нажмите ENTER, и вы получите исчерпывающую информацию по вашему запросу. Список доступных функций со временем будет пополняться. Также, воспользовавшись гостевой книгой, вы можете задать любой интересующий вас вопрос о работе с Perfect Engine и сообщить обо всех багах, найденных в нем и идеях по его усовершенствованию. А еще здесь будут собираться все проекты, использующие наш движок. Если вы создали игру с его использованием - обязательно сообщайте о ней нам, и мы разместим ее на своем сайте! ДЕМО Ну и последнее. Наконец, удалось выделить немного свободного времени для написания более или менее серьезного игрового проекта с использованием Perfect Engine. Игра называется Crown и, также, распространяется с открытым исходным кодом, и оттого, как мне кажется, будет весьма интересна каждому, кто желал бы разобраться в устройстве подобных игр. А для остальных - просто интересный способ убить время, насладившись необычным взглядом команды Perfect Light на идею логической игры 'Три в ряд'. Всем спасибо за внимание. Ппрямые ссылки на архивы с движком, вспомогательными и демонстрационными проектами я разместил в первом сообщении темы. |