Текущий архив: 2008.05.18;
Скачать: CL | DM;
ВнизСОС!!! (Быстрый вывод изображения. OpenGL?) Найти похожие ветки
← →
Огнеяр (2007-05-24 15:52) [0]Я застрял. Проблема в том, чтобы вывести на экран содержимое TBitmap максимально быстро и без миганий. Поможите, кто чем может, уже месяц мучаюсь.
Задача:
Выводить на экран (можно на форму) исображения из файлов. частота вывода до 20 мкс с точностью до 1-3 мкс. Предполагаю, что это можно сделать через Директ Х или Опен ГЛ, но я с этими библиотеками совершенно не знаком.
Краснова прочитал, но там трехмерные задачи, а у меня - плоская графика. Либо, просто не понял.
← →
DVM © (2007-05-24 15:55) [1]
> TBitmap максимально быстро и без миганий
BitBlt() мигает разве? Да она 1000 битмапов 800х600 в секунду может вывести.
← →
DVM © (2007-05-24 15:57) [2]
> частота вывода до 20 мкс с точностью до 1-3 мкс
Ты не ошибся насчет микро- ? Если выводить через 20 микросекунд - то это за секунду будет 50 000 битмапов!!! Что это такое?
← →
antonn © (2007-05-24 15:58) [3]стробоскоп какой то...
← →
Ognejar1 (2007-05-24 19:14) [4]Уточняю.
Изображений от 2 до 3. Период вывода - разный, но точность его должна быть такой, как я сказал. Одна картинка стирает другую, затем точная пауза (до 10 секунд).
Нужен кусок кода, потому что я уже обалдел от разноязыких книжек, где все, якобы, элементарно, поэтому и не объясняется.
Блин, куда здесь пароль вводить?
← →
DVM © (2007-05-24 21:28) [5]
> но точность его должна быть такой, как я сказал.
такую точность нельзя обеспечить.
Мне вообще непонятно на кой ляд сменять изображения быстрее, чем частота обновления экрана или время реакции пиксела (для LCD монитора).
Честно говоря я все равно не понял задачи. Можно поточнее, может и придумаем что.
← →
Ognejar1 (2007-05-24 22:00) [6]Задача - проверка мозговой реакции человека (цепочка глаз->мозг->рука) дисплеи нормальные, никаких LCD, 200 мегагерц. Собственно, я думаю, что условие слишком суровое, но беда в том, что у меня мерцает при любой частоте экрана и вывода. И почти все тексты про быстрый вывод на С, а я в нем ни уха, ни рыла. Озверел уже.
← →
DVM © (2007-05-24 22:21) [7]Так уже яснее.
Теперь давай прикинем. Итак:
1) Тебе нужны миллионные (1/1 000 000) отрезки секунды.
2) Время переключения пиксела среднестатистического LCD монитора 3-8 мсек, т.е. 3-8 тысячных(!) секунды. Т.е. монитор тебе даст ограничение по точности в 1/1000 секунды не меньше. Про CRT я вообще молчу.
3) Рука - человек должен нажать кнопку на клавиатуре. Частота сканирования клавиатуры также не высока - тоже даст свое ограничение.
4) Операционная система не может гарантировать точный отсчет столь малых интервалов времени.
Тебе точно нужны миллионные доли секунды, а не тысячные?
← →
DVM © (2007-05-24 22:24) [8]
> но беда в том, что у меня мерцает при любой частоте экрана
> и вывода
BitBlt - это почти самый быстрый способ вывода. Мерцания быть не должно.
Покажи как выводишь.
← →
homm © (2007-05-24 23:12) [9]> дисплеи нормальные, никаких LCD, 200 мегагерц.
плакаль :)
← →
Ognejar1 (2007-05-24 23:41) [10]Сейчас перепроверил - мили. Извини за дезу...
Сперва выводил так:
// if flag=1 then glBindTexture(GL_TEXTURE_2D, MyTextureTex) // Bind the Texture to the object
// else if flag=2 then glBindTexture(GL_TEXTURE_2D, MyTextureTex1);
картинка правильная, но мерцает.
Потом вот так:
glClearColor (0.5, 0.5, 0.75, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glRasterPos2f(-0.25, -0.25);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
if flag=1 then glDrawPixels(ImageWidth, ImageHeight, GL_RGB, GL_UNSIGNED_BYTE, @MyTextureTexа)
else if flag=2 then glDrawPixels(ImageWidth, ImageHeight, GL_RGB, GL_UNSIGNED_BYTE, @MyTextureTexа1);
Теперь вместо картинки - черный прямоугольник.
← →
Jeer © (2007-05-25 10:33) [11]
> Ognejar1 (24.05.07 23:41) [10]
а про SwapBuffer не забываешь ?
← →
Ognejar1 (2007-05-25 12:38) [12]Стоит...
← →
Я Гость (2007-05-26 16:12) [13]чтобы не было мерцания нужно использоватьь буфферизацию и [11]
← →
Ognejar1 (2007-05-29 10:54) [14]Знать бы еще как. Говорил же, не знаю я этих библиотек.
Страницы: 1 вся ветка
Текущий архив: 2008.05.18;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.045 c