Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для FFPowerMan
2158 / 1238 / 509
Регистрация: 11.10.2018
Сообщений: 6,280

Как убыстрить движение картинки?

15.07.2019, 07:33. Показов 2934. Ответов 9

Студворк — интернет-сервис помощи студентам
Здравствуйте. Делаю эффект Melt - расплавление из игры Doom, когда картинка, как-бы расплавленная стекает вниз и за ней появляется другая картинка. И столбцы между собой стекают со смещением. Получилось, но работает очень медленно. Как убыстрить? Типа использовать OpenGL, Direct3D илиGDI?
Работаю в Embarcadero C++Builder 10.3.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2019, 07:33
Ответы с готовыми решениями:

движение картинки
всем привет у меня есть дальше я вывожу рисунок в нужные для меня координаты а вот сам вопрос как реализовать...

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

Движение картинки за картинкой
Есть два Image 1 и 2 Нужно что бы второй двигался к первому Как бы по параболе, т.е не прямо! Может кто сталкивался?:swoon:

9
 Аватар для FFPowerMan
2158 / 1238 / 509
Регистрация: 11.10.2018
Сообщений: 6,280
15.07.2019, 10:30  [ТС]
Скриншот:
Миниатюры
Как убыстрить движение картинки?  
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
15.07.2019, 16:55
1) Как вариант перебросить вычисления на видеокарту (CUDA/opencl)
2) Использовать параллельные вычисления (openmp)
3) Пересмотреть работу алгоритма

з.ы. Фреймворки примерные
0
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,018
Записей в блоге: 241
22.07.2019, 02:30
Цитата Сообщение от FFPowerMan Посмотреть сообщение
Как убыстрить? Типа использовать OpenGL, Direct3D илиGDI?
Либо OpenGL, либо Direct3D, либо Vulkan, либо Mantle и т.д. Я использую OpenGL. При использовании шейдеров - эти самые шейдеры и все данные загружаются в память видеокарты и оттуда быстро во множестве потоков выполняются GPU (графический процессором). В этой бесплатной онлайн книге на русском подробно на примерах показывается, как работать с шейдерами: https://thebookofshaders.com/?lan=ru
1
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,018
Записей в блоге: 241
22.07.2019, 15:32
Орфография

Добавлено через 22 секунды
Не сработало...
0
 Аватар для FFPowerMan
2158 / 1238 / 509
Регистрация: 11.10.2018
Сообщений: 6,280
08.08.2019, 10:43  [ТС]
А в какой системе(OpenGL, Direct3D, DirectX и т.д.) также сделано обращение к пикселям??????????
C++
1
Canvas->Pixels[x][y] = 0x00FF0000;
0
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,018
Записей в блоге: 241
08.08.2019, 14:20
В шейдерном OpenGL есть функция для чтения значения пикселя glReadPixels. Документация: http://docs.gl/gl3/glReadPixels

Я использую OpenGL из C#/WinForms/WPF, но на C++ почти также будет выглядеть:

C#
1
2
            byte[] pixels = new byte[4]; // Array for storing the pixel value
            GL.ReadPixels(x, y, 1, 1, PixelFormat.Rgba, PixelType.UnsignedByte, pixels);
0
 Аватар для FFPowerMan
2158 / 1238 / 509
Регистрация: 11.10.2018
Сообщений: 6,280
11.08.2019, 13:59  [ТС]
8Observer8, не могли бы Вы мне подсказать что не так. Я сделал консольный проект на Embarcadero RAD Studio C++ Builder 10.3 Community Edition. Проект из Интернета. Там просто картинка выводится на экран и все, изначально картинки лежит в где все файлы и загружается функцией auxDIBImageLoad. Возникают 2 ошибки:
1) Именно эта функция не видится компилятором
2) И еще какая-то
Как все это дело запустить?
Вложения
Тип файла: rar photo.rar (819 байт, 0 просмотров)
0
 Аватар для FFPowerMan
2158 / 1238 / 509
Регистрация: 11.10.2018
Сообщений: 6,280
11.08.2019, 14:06  [ТС]
Вторая неопознанная функция: auxInitWindowW.
0
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,018
Записей в блоге: 241
11.08.2019, 15:01
В Builder C++ я не работал с OpenGL. Скину проект для Visual Studio, где всё подсоединено, но нужно в Project -> "Platform ToolSet" выбрать версию VS, которая у вас, потому что я делал в 2015.

Варианты с разными библиотеками для создания окна (WinAPI, FreeGLUT, Sfml). Для загрузки картинки используется библиотека lodePNG, а Glaux устарела и её не рекомендуют к использованию здесь: https://www.khronos.org/opengl... _Libraries

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.08.2019, 15:01
Помогаю со студенческими работами здесь

вставка BMP картинки и её движение
Здравствуйте! У меня есть задание реализовать детскую игрушку. Написать программу нужно объктно-ориентированным способом. Я взяла машинку....

Движение картинки стрелками клавиатуры
Добрый день. Написал код, чтобы двигать шарик с помощью стрелок. Теперь хочется вместо шарика вставить какую-нибудь картинку(человечка,...

Как убыстрить индексацию изменений
Есть сайт, на некоторых страницах внесены изменения, также добавлены новые страницы. Это сделано уже месяц назад. а проиндексировалась с...

Как убыстрить генерацию таблицы в Word
Доброго всем времени суток! Есть проблемка. Помогите решить/повысить скорость. Весь код приводить не буду, опишу главное: ...

Как сделать движение картинки
Добрый день как сделать так чтобы картинка при загрузки страницы двигалась, как вот здесь главный банер ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru