![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 29.09.2009
Сообщений: 6
|
![]()
Здраствуйте. Простите пожалуста. У меня такая проблемка: я создал програмку на OpenGL, а она при обновлении окна мелькает и некоректно выводит изображение на монитор. Если после предедущей перерисовки экрана полностю очищать буфер цвета командой "glClear clrColorBufferBit", а потом перерисовать весь рисунок - мельканий не будет. Проблема состоит в том, что мне нужна часть рисунка с предедущего кадра + новые дорисовки. Такой метод вызывает мелькание на некоторых компютерах.
Кто нибудь сталкивался с такой ситуацией? Что делать? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
я бы перерисовывал полностью тогда...
а вообще буферизацию пробывали?(ведь ГЛ это может) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
Ну дык создавайте копию предыдущего кадра и перерисовывайте его.(сразу не выводите, а перерисовывайте в памяти). А потом просто отчищайте экран и выводите получившийся кадр.
pushl $0x18E3DF6B
call ICQ |
![]() |
![]() |
![]() |
#4 |
Регистрация: 29.09.2009
Сообщений: 6
|
![]()
Сюжет проги такой: есть экран радара с 1 000 000 елементов. Эти все елементы полностю прорисовываются за 3 сек. Но если прорисовывать экран по частям, оставляя старые элементы нестертыми - пользователь может работать в реальном времени обрабатовая данные, со скоростю их поступления
Использую так называемую двойную буферизацию. Источник проблем обнаружил в мелькании при перерисовке части экрана без стерания старой части картинки |
![]() |
![]() |
![]() |
#5 |
Регистрация: 29.09.2009
Сообщений: 6
|
![]()
Эксперементировал прогу на нескольких компах:
на двух XP прога идет отлично на вистах появляются мелькания и некоректное отображение один XP с таким-же эфектом, как и виста ноут с вистой и XP (это один и тот-же ноут) на висте глючит, а на XP показует нормально |
![]() |
![]() |
![]() |
#6 |
Регистрация: 29.09.2009
Сообщений: 6
|
![]()
И еще одна инф.
Прога для теста взята с сайта http://nehe.gamedev.net/data/lessons....asp?lesson=04 А ее описание с сайта http://pmg.org.ru/nehe/nehe04.htm Если убрать в процедуре DrawGLScene() строку glClear clrColorBufferBit - должна оставатся старая картинка + на нее рисуется новая. Но перед выводом на экран происходит мелькание ![]() |
![]() |
![]() |
![]() |
#7 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
- еще можно использовать быстрый вывод однажды созданного объекта- задайте const // ID- объектов для быстрого вывода glCallList(ID) Place =1; при создании Цитата:
p.s.: вы случаем не в области радиолокации працюэте, а то как раз занимаюсь тем же ...у меня два массива, один array [0..499,0..1499] of Tval, второй динамический и обнаружения от одних накладываю на 3D проекцию своих данных - все за полсек / проц Athlon 1GGz RAM128 Video GeForce4 mx440-64MB ("жлобство" на предприятии)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 01.10.2009 в 15:52. Причина: пример вывода - вложение |
||
![]() |
![]() |
![]() |
#8 | |||
Регистрация: 29.09.2009
Сообщений: 6
|
![]() Цитата:
На счет команды CallList - еще ее не испытовал, но когда-то я мозговал над проблемой, которая решается с помощю этой команды. Цитата:
Цитата:
Новая папка.rar Я тоже люблю помучатся над оформлением своих прог! И судя по слову "працюэте" мы еще и земляки ![]() |
|||
![]() |
![]() |
![]() |
#9 | |||||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
Цитата:
Цитата:
- но в локацию лучше не идтить, платят мало в этой области :-( Цитата:
Цитата:
![]() ... самому непривычно было, ведь математически и геометрически привыкли все ноль с горизонтали
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|||||
![]() |
![]() |
![]() |
#10 |
Регистрация: 29.09.2009
Сообщений: 6
|
![]()
Вобщем, я долго думал над тем, как переделать прогу под команду CallList. Но наконец-то все работает и моя прога опять стала кросс-платформенной и перестала зависить от компа, на котором установленна. И хотя с двойной буферизацией было-бы все по проще запрограмировать, но зато этот метод позволяет избавится от очищения экрана при изменении его размеров и его мелькания при роботе программы!!!
![]() Что и требовалось добится ![]() Последний раз редактировалось Multitabs; 03.10.2009 в 20:22. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разрешение экрана | Копоть Артём | Помощь студентам | 15 | 04.08.2009 18:12 |
Чтение с экрана. | Пaвeл | Помощь студентам | 2 | 05.05.2009 19:29 |
Мелькание курсора при скриншотах | Роман Радер | Общие вопросы Delphi | 11 | 30.04.2009 03:27 |
Разрешение экрана | Sweta | HTML и CSS | 4 | 06.09.2008 10:05 |
Скриншот экрана | Terran | Общие вопросы Delphi | 2 | 16.12.2007 15:13 |