1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| XaMMaX |
Сообщение
#1
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Реальное имя: max Репутация: 0 |
подскажите какие-нибудь интересные графические 2д эффекты, фокусы с расстановкой пикселей или цветами, учитываю что не должна использоваться какая-либо видео акселерация видео картой(я имею ввиде без опенгл или дирестикс). Надеюсь вы меня поняли и что-нибудь подскажите :D
|
![]() ![]() |
| andriano |
Сообщение
#2
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Можно, конечно, получить данные непосредственно экрана. Но это долго. Долго это было под DOS, т.к. видеопамять намного тормознее по операции чтения, чем по операции записи. Еще дольше это под Windows.
В то же время хорошо себя зарекомендовал следующий алгоритм: 1. готовим в оперативной памяти буфер в формате BMP-файла, причем, с удобной нам глубиной цвета. 2. в обработчике сообщения WM_PAINT процедурой StretchDIBits переливаем содержимое буфера на экран. Примечания: к п.1: обычно я использую 256-цветный режим, т.к. для операций в труколоре обычно больше подходит OpenGL. Но это мое личное мнение. Опять же, сущесвуют исключения, например, то, что я привел вл втором посте темы. к п.2: мне кажется, что если размеры буферов совпадают (т.е. не требуется масштабирования), то операцию преобразования цвета (например от палитры 256 цветов в труколор) берет на себя железо видюшки прозрачно для программы. По крайней мере, судя по скорости этого преобразования. Что же касается примера, то чем не подходит, опять же, архив из второго поста? Там я как раз реализовал описанную технику. PS. Да, язык Ассемблера здесь в подавляющем большинстве случаев совсем необязателен. В приведенном римере, например, на нем написано всего несколько строк, и то лишь для того, чтобы использовать MMX для ускорения одного конкретного алгоритма. Сообщение отредактировано: andriano - |
XaMMaX Графические эффекты 6.05.2008 22:07
andriano Что-нибудь такое? 6.05.2008 23:48
XaMMaX Да, спасибо. Линзу поизучаю, но хотелось бы ещё чт… 6.05.2008 23:57
andriano
Да, спасибо. Линзу поизучаю, но хотелось бы ещё ч… 8.05.2008 2:23
klem4 не знаю подойдет или нет, но есть такая темка: Зан… 8.05.2008 22:29
XaMMaX 2klem4, Переработаю на свой лад и подойдёт, спасиб… 8.05.2008 22:40
XaMMaX Господа знатоки, вот думаю как реализовать эффект … 9.05.2008 15:02
andriano Если взрыв наподобие того, что справа - полупрозра… 10.05.2008 1:18
XaMMaX
Нет нет, ты смотрел на сам взрыв, а не на взрывну… 10.05.2008 2:12
andriano Честно говоря, по оному статичному скриншоту не мо… 10.05.2008 14:20
XaMMaX
Честно говоря, ты меня поставил в тупик. А как ещ… 11.05.2008 0:45
andriano Работаешь с экраном (вероятно экранным буфером) ка… 11.05.2008 2:17
XaMMaX Значит ли это, что мне все процедуры надо переписы… 11.05.2008 3:05
andriano Не понял вопроса. Какие процедуры ты записываешь в… 11.05.2008 3:10
XaMMaX
Хм, как с массивом, тоесть процедуры вывода допус… 11.05.2008 3:29
andriano Любая процедура, участвующая в формировании изобра… 11.05.2008 11:06
XaMMaX А пример подобного где-нибудь посмотреть можно? Мо… 11.05.2008 17:37
XaMMaX
Да вот запустить не могу. Я так понимаю компилиро… 12.05.2008 1:42
andriano Откомпилировано оно в TMT-Паскале, для Delphi, вер… 12.05.2008 14:34![]() ![]() |
|
Текстовая версия | 10.12.2025 14:27 |