![]() |
|
Модераторы: Rickert |
![]()
|
|
| iu1005 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.10.2007 Репутация: нет Всего: нет |
Необоходимо отображать с перспективой много картинок с альфа-каналом, но картинки необходимо обновлять в каждом кадре. А сама загрузка картинки, как текстуры DirectX занимает слишком много времени, код:
выполняется 100 милисекунд и для 10 картинок 1fps - маловато. Выполнять в GDI+ все 3D-преобразования и отображение - быстрее, но тогда вся нагрузка идет на проц, который в принципе должен в это время выполнять другие операции. Подскажите, как мне ускорить отрисовку задуманного? Может можно как-то отобразить картинку, без загрузки ее, как текстуру/поверхность? Приветствуются решения независимо от технологий - Direct3D/DirectDraw/OpenGL/GDI...(но лучше, конечно, в Direct3D Это сообщение отредактировал(а) arilou - 21.11.2007, 15:58 |
||||
|
|||||
| Mazzi |
|
|||
|
Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 4 Всего: 21 |
Могу подкинуть идею. Когдато слышал, что можно выводить видео на любую поверхность. Как вариант вместо смены картинок использовать видеоролики.
-------------------- Мне нужны помощники. |
|||
|
||||
| iu1005 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.10.2007 Репутация: нет Всего: нет |
Так я кажись немного не об этом...
Видеоролик тоже нужно чем-то формировать... в этом-то все и дело. Вот, к примеру - куб гранями которого являются большие картинки больших разрешений, которые нужно обновлять из исходного Bitmap перед каждой отрисовкой. Куб должен быть 3D, то есть, должна быть видна перспектива. DirectX справляется - раз плюнуть, если текстуры (картинки загружены), а если их обновлять перед каждой отрисовкой, то именно сама загрузка картинок, как текстуры занимает для куба больше 0,5 секунды. Если такой куб рисовать возможностями GDI+, то конечно, никакой загрузки не будет, но тут мы на полную используем процессор, без аппаратной поддержки 3D, а это не годится... Вот загрузи любую игрушку с SoftwareRendering и увидишь, что означает отсутствие аппаратной поддержки |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
какого разрешения картинки? попробуй использовать Texture2D.GetData/SetData (это в XNA). Они тоже медленные, но может быть все же выстрее, чем пересоздание текстур на лету. попробуй изменять не текстуру целиком, а только изменившуюся часть. вообще, что именно выводится на текстуры? |
|||
|
||||
| iu1005 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.10.2007 Репутация: нет Всего: нет |
Цель - реализовать как можно больше функций Beryl (Video). Большая часть из возможного уже реализована, осталась в основном графика, с чем я никогда не работал. В основном - нужно отобржать графику всех окон в реалтайм. Получение графики окна - не проблема, а вот 2D/3D-преобразования и transparency... В принципе, максимально, что удалось подобрать - Direct3D, подготовить заранее объекты текстур, в которых в Render() выполнять:
1. Размеры текстуры и получаемой графики не совпадают, хотя размер окна заранее известен. Что-то где-то я перемудрил, но не найду где... 2. Как отрисовать такую текстуру полупрозрачной? И еще - задать, что если я где-то не нарисовал ничего, то сделать это место текстуры полностью прозрачным (к примеру - круглое окно зарисует не все пиксели текстуры, а только круг посредине). Если можно - киньте плиз ссылочкой, где выполняются подобные операции... а то как-то не с руки полностью обучаться Direct3D только для этой задачи...
|
||||||||
|
|||||||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |