Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Микроанимация (нужен совет)


Рекомендуемые сообщения

Здравствуйте.

Мое имя Виктор. Конструктор (искусственный интеллект). Алма-Ата, Казахстан.

Необходимо написать компьютерную программу, но в Казахстане проблемы с профессиональными программистами. Возможно, кто-нибудь сможет помочь советом: с чего начинать и что делать.

Суть задачи в двух словах:

Имеем контур, например, квадрат, состоящий из 100 пикселов: 100 пэлов R, 100 пэлов G, 100 пэлов B.Необходимо изменять яркости пэлов R с частотой 10 Гц, G- 20 Гц, В- 30 Гц (значения условны).Такая «микроанимация».Другими словами ,яркости пэлов должны изменяться не синхронно.

При этом принципиальны не абсолютные значения частот,а их отношения :Fr/Fg,Fg/Fb. Т.е. частоты могут быть плавающими, а разность между ними должна быть постоянной (или почти постоянной).

Назначение программы – создание эффектов присутствия, аналогичных стереоскопическим (графический редактор глубины пространства).

Ссылка на комментарий
Поделиться на другие сайты

V.G.:

с чего начинать и что делать
Начинать надо ИМХО с поисков программиста, который не прочь подхалтурить. В принципе он может жить и не в Казахстане, связь сейчас достаточно развита. Возможно, удастся найти и такого, который просто заинтересуется проектом и поработает бесплатно, даже операционные системы многие программируют как хобби, а проект у Вас интересный. Конечно, надо расписать проект покрасочней и поконкретней, "эффект присутствия" - слишком абстрактно. Особой квалификации от программиста не требуется, лишь начальное знакомство с работой с библиотекой DirectDraw, входящей в состав стандартного пакета библиотек DirectX, входящего в состав Windows. Она служит именно для рисования изображений в играх и т.п. Изображение на ЖК мониторе перерисовывается со стандартной частотой 60 Гц, это вполне подходит (обычно можно установить и 72 или 75 Гц, но нас это не интересует, эти частоты есть не на всех мониторах). Каждую перерисовку квадрата новым цветом надо синхронизировать со сменой кадра, для этого в DirectDraw есть специальная функция WaitForVerticalBlank. Пример ее использования есть, например, тут на Delphi, но библиотека подпрограмм рисования DirectDraw может работать с любым языком.

На монитор подается видеосигнал, в котором для каждой точки устанавливается яркость каждого пэла (под пэлом я понимаю подэлемент пиксела, поскольку иногда этот термин используют и как эквивалент слова пиксел). Именно яркости пэлов точки и кодируются программистом при задании цвета. Значит, цвета квадрата будут меняться, например, так:

1-й кадр: RGB, это белый цвет.

2-й кадр: RGB, это белый цвет

3-й кадр: RG-, это желтый цвет.

4-й кадр: R--, это красный цвет.

5-й кадр: R-B, это фиолетовый цвет.

6-й кадр: R-B, это фиолетовый цвет.

7-й кадр: -G-, это зеленый цвет.

8-й кадр: -G-, это зеленый цвет.

9-й кадр: -GB, это коричневый цвет.

10-й кадр: --B, это синий цвет.

11-й кадр: ---, это черный цвет.

12-й кадр: ---, это черный цвет.

И повторять в цикле... Конечно, можно и сдвинуть фазу какого-либо цвета, например, так:

1-й кадр: R--, это красный цвет.

2-й кадр: RG-, это желтый цвет

3-й кадр: RGB, это белый цвет.

4-й кадр: RGB, это белый цвет.

5-й кадр: R--, это красный цвет.

6-й кадр: R--, это красный цвет.

7-й кадр: --B, это синий цвет.

8-й кадр: -GB, это коричневый цвет.

9-й кадр: -G-, это зеленый цвет.

10-й кадр: -G-, это зеленый цвет.

11-й кадр: --B, это синий цвет.

12-й кадр: --B, это синий цвет.

Так длительного черного цвета не будет, возможно, мелькание так будет менее раздражающим.

Еще лучше будет, если менять и яркости пэлов так, чтобы средняя яркость при смене цвета оставалась неизменной. По крайней мере, палочкам сетчатки глаза, которые цвета не различают, будет спокойней. Пусть дергаются только колбочки, их намного меньше, авось и утомлять это будет меньше. И не надо забывать про эпилептиков. Впрочем, это уже нейрофизиология... :) При чем тут, кстати, искусственный интеллект? :g:

После рисования квадрата одним из заданных цветов надо ждать смены кадра через функцию WaitForVerticalBlank и снова рисовать новым цветом. Собственно, цветА знать и не надо, цвет в программах задается прямо уровнями его составляющих RGB.

Бр-р... Представил себе квадрат, меняющий цвет 40 раз в секунду... Собственно, всем этим уже занимались в лабораториях КГБ. Читал пост человека, который клялся, что методика опробовалась в телегипнозе Кашпировского, этот человек тогда работал на телевидении.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

V.G.:

Бр-р... Представил себе квадрат, меняющий цвет 40 раз в секунду... Собственно, всем этим уже занимались в лабораториях КГБ. Читал пост человека, который клялся, что методика опробовалась в телегипнозе Кашпировского, этот человек тогда работал на телевидении.

Речь идет об управлении яркостью пэлов индивидуально.При этом изменение яркости не должно быть гармоническим (это принципиально).

Задача сделать пиксел бесцветным: ни черным, ни белым, ни цветным.В биофизике -это эффект абсолютной слепоты или истинной слепоты мозга.

Спасибо.

Красочное оформление проекта ниже.

( графические редакторы нейронных эффектов )

1. Редакторы глубины пространства

Компьютерная графика создаваемая сегодня, как правило, плоская включая и объемные изображения в 3D формате. Использование более совершенных технологий для формирования “эффекта присутствия” ограничено в основном трудностями теоретического характера: несовершенностью теории монокулярного восприятия глубины пространства.

Существует три способа создания изображений в “реальном формате”:

а) Посредством стереоскопического эффекта.

б) Посредством двигательного параллакса.

в) Посредством эффекта неоднозначности.

2. Теоретические трудности

Согласно существующим представлениям, стереоскопическое зрение является основным и самым мощным инструментом при восприятии реального мира или его виртуальных аналогов. Монокулярные эффекты глубины относят к вспомогательным инструментам, действие которых не зависит от внешних физических феноменов, относится к чисто умозрительным эффектам и основывается на опыте и вычислениях в зрительных полях мозга.

Вместе с тем известно, что около шести процентов людей не обладают стереоскопическим зрением, не испытывая при этом никаких ограничений в восприятии реальности окружающего мира.Во-вторых, ”грубые” эффекты глубины можно создавать на обычном компьютере, посредством несложной анимации. И если в случае двигательного параллакса еще можно рассуждать о вычислительных процессах мозга, то в случае эффектов неоднозначности никакой явной информации для вычислений глубины пространства нет.

3.Нейронные эффекты неоднозначности

Как правило, 3D-рисунки содержат всю необходимую для вычислений глубины пространства “объемную” информацию: перспективу и относительные размеры объектов , их частичное перекрывание, тени, блики и т.д.. Но рисунки выглядят плоскими. Им можно придать объем посредством стереоэффектов (автостереограммы) или посредством симуляции физических границ объектов на изображении. Такого рода симуляцию можно осуществить в самом простом случае через цветовую анимацию, когда смешения цветов не происходит. Психофизику феномена определяет то, что мозг не может воспринимать неоднозначную информацию, т. е. видеть объект одновременно красным и зеленым или белым и черным. В такой ситуации возникает эффект слепоты мозга. (именно на этом психофизическом явлении основан и стереоэффект-феномен информационного конфликта)

У границы любого физического объекта вследствие явления дифракции распространяются ,как преломленные световые волны, так и отраженные, т. е. световой поток несет двойственную информацию ,которая не может быть идентифицирована цветовыми нейронами. Такие “молчащие” нейроны и помогают мозгу вычислить физические границы объектов ,чего не происходит в случае плоского изображения ,где информация строго однозначна.

4.Эффекты неоднозначности в компьютерной графике

Несовершенство методов стерео и цветовой анимации не позволяет использовать их в компьютерной графике, за исключением демонстрации зрительных иллюзий.

При генерации компьютерной сцены на мониторе яркость цветовых точек пикселов изменяется синхронно. Это необходимо для синхронной работы RGB-нейронов сетчатки. Именно синхронная работа “цветовых” нейронов и позволяет мозгу идентифицировать цвет пиксела. При десинхронизации изменений яркости RGB-точек по контурам объектов рисунка появится ощущение пространственной реальности изображения.

5.Плюсы и минусы эффекта неоднозначности

Эффект неоднозначности при генерации реальных “изображений” удобен тем, что позволяет обходиться только программными средствами без технической модернизации компьютера. Его простоту также можно отнести и к существенным недостаткам:

I) возможность использования только в графических рисунках;

II) возможность использования только в статических компьютерных сценах;

III) изображения должны содержать ярко выраженные эффекты глубины пространства (как контурные так и цветовые).

Несмотря на отмеченные недостатки, эффекты неоднозначности являются мощным средством создания “эффекта присутствия”, не уступающего по качеству стереоскопическим технологиям в области графического рисунка.

Пример грубого эффекта неоднозначности в графике-

http://image012.mylivepage.com/chunk12/146.../roulette01.gif или

http://ozz.ru/index.php/topic,12275.696.html (файл roulette01)

Ссылка на комментарий
Поделиться на другие сайты

V.G.:

Речь идет об управлении яркостью пэлов индивидуально.При этом изменение яркости не должно быть гармоническим (это принципиально).
Пэлы управляются индивидуально. Видеосигнал передается по трем проводам - одна линия управляет яркостью красных пэлов, вторая - зеленых, третья -синих. Изменение яркости не является гармоническим (по синусоиде?). Пэл включается на заданную степень яркости, вот и все.
Задача сделать пиксел бесцветным: ни черным, ни белым, ни цветным.
Такое могут себе представить только продвинутые буддисты. Не имеющий цвета предмет - прозрачный. Любое изменение падающего или проходящего через элемент потока света создает цвет этого элемента. При полной яркости пикселы бесцветны (прозрачны) и мы видим свет ламп за ними. Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Эффект слепоты мозга-научный факт.В этом случае мы не видим (а вернее,не ощущаем) ничего и черный цвет тоже.Это истинная слепота мозга. Этот феномен невозможно передать словами,так же как ,впрочем, и ощущения цвета.(Как описать чем красный цвет отличается от зеленого?).

Есть второй подход в решении задачи: определить возможности индивидуального управления яркостями пэлов R,G,B и разработать соответствующий алгоритм реализации программы.

Подход менее практичный и более сложный для конструктора. Но, как видиться мне, существующих аппаратных возможностей компьютеров достаточно для создания нужных эффектов.

Поэтому первый вопрос:

- Могут ли сигналы управляющие яркостями пэлов R,G,B иметь пилообразную форму с передним фронтом более крутым, чем задним?

Один из важнейших разделов информатики (и биоинформатики также) –информационные конфликты.

Стандартное объяснение стереоскопии в литературе любого уровня - каждый глаз видит несколько иное изображение и это причина эффектов глубины пространства.

Более точно- при совмещении несколько различных изображений в зрительных полях мозга возникают локальные информационные конфликты: некоторые подъэлементы зрительной картины содержат разнородную информацию. И , как правило, это области границ объектов. Ширина области конфликта- признак глубины пространства.

Эффекты неоднозначности- еще один способ создать информационный конфликт. В настоящей задаче это решается на уровне пэлов R,G,B.

Ссылка на комментарий
Поделиться на другие сайты

V.G.:

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

Яркость пэла устанавливается 60 раз в секунду и остается в промежутке между установками постоянной (если пренебречь кратковременными переходными процессами - есть время перехода пэла от одной яркости к другой, оно зависит от разницы яркостей, но на современных мониторах в любом случае значительно меньше 1/60 с). Соответственно "пила" может быть только в виде гистограммы с шагом в 1/60 секунды.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Немного теории.Это необходимо,чтобы мы понимали друг друга.

Любые ощущения можно представить общей формулой: мы видим то, что помним, мы слышим то, что помним и т.д. и т.д. и т.д.

В конце концов – мы есть то, что помним. На любом уровне.

Впрочем, на этих же принципах работает и компьютер.

Любая ячейка памяти предназначена для хранения однозначной информации: это может быть 0 или 1, либо 0,+1 или -1 в случае троичных компьютеров. Попытка разместить в ячейке памяти неоднозначную информацию окончится неудачей. Если, конечно, предварительно не определить приоритет в неоднозначности.

В итоге ячейка окажется «пустой». Этим же заканчиваются попытки разместить в ячейках памяти мозга неоднозначную информацию от глаз. «Пустые» ячейки в зрительной памяти мозга- информация для вычисления контуров физических объектов. (Несколько образно, но суть передана)

И следующие вопросы:

1.Насколько крутым может быть передний фронт пилообразного сигнала? Как я понимаю, здесь может быть как min так и max значений в зависимости от уровня яркости.

2.Возможно ли промодулировать пилообразный управляющий сигнал? Т.е. можно ли задать значения яркостей пиков по определенному закону?

И еще немного теории.

Цветовые модели -математический инструмент, с помощью которого можно рассчитать и построить любой цвет и оттенок (иначе: как можно точнее отобразить реальность).

Если реальность не отображать, а создавать виртуально ,то и модели необходимы виртуальные.

Пример- иллюзорные (фейхнеровские) цвета ,создаваемые посредством диска Бэнхэма. Ни одна из цветовых моделей не годиться для их описания.

До настоящего времени нет теоретического обоснования для генерации такого рода цветов, хотя и секрета большого тоже нет. Обычная физика.

Т.е. чтобы обмануть мозг нужна не супертехника,а нестандартный подход и понимание происходящих процессов.

И просьба личного характера. У меня есть родственник. Хочу сделать из него программиста для решения такого рода задач.(Посредством видеосистемы компьютера можно создавать не только иллюзии глубины, но и звуков и запахов, тактильных и вкусовых ощущений, тепла и холода и т.д. Невероятно, но это научный факт).

Помогите советом -с какой литературы начинать. Направление – индивидуальное управление пэлами (подэлементами пиксела).

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

Ссылка на комментарий
Поделиться на другие сайты

V.G.:

1. В среднем для хороших мониторов порядка 1-2 мс, хотя длительность фронта изменения яркости зависит от уровня яркости и его перепада, а также направления этого перепада и, естественно, от модели монитора (разные ЖК матрицы). Дело не в длительности фронта электрического сигнала, подаваемого на ячейку матрицы, а в инерционности самой жидкокристаллической ячейки. Однако после переключения на новый уровень яркости он будет оставаться постоянным вплоть до нового переключения через 1/60 с. Яркость пикселов в течение этого периода нельзя менять плавно, новое обращение к ячейке до истечения этого интервала времени не предусмотрено схемами мониторов и перепрограммировано быть не может (разве что разработкой специальных моделей мониторов).

2. Значения яркостей можно задать с дискретностью 1/60 с. Как правило, у мониторов имеется возможность задавать их с частотой до 60-85 Гц (зависит от модели монитора), но монитор не обязательно будет переключать пикселы с этой частотой, он может все равно интерполировать ее в стандартные 60 Гц. Управляющий сигнал, даже если он пилообразный, все равно будет дискретизироваться с этой частотой. Будут ли это истинные , скажем, 85 Гц или интерполяция в 60 Гц, производителями мониторов обычно скрывается, это "ноу-хау" изготовителя монитора.

Иначе говоря, значения яркостей пиков можно задать по определенному закону, но с дискретностью в 1/60 с, при этом на каждом интервале яркость будет постоянной, за исключением переходных процессов изменения яркости длительностью примерно по 1 мс. То есть "пики" обязательно будут площадками.

Насчет "пустоты" ячейки все же не согласен. В ячейке окажется случайное содержание, но она не будет "пустой". Впрочем, как я понимаю, это вопрос терминологии, но понятие "пустоты" как синонима неопределенности, ИМХО, мешает ясности понимания.

С точки зрения теории информации хаос, конечно, содержит ноль информации, но это вопрос интерпретации - то, что для одного хаос, для другого стройная картина. Например, картина газо-пылевого облака, несомненно, хаотична, но для пилота, скажем, космического корабля, который должен избегать столкновения с крупными частицами, она содержит огромное количество информации.

В отношении изучения программирования - я бы все же начал с основных понятий языков программирования, лучше всего Pascal'я - он и был первоначально разработан для легкого входа в изучение программирования. Затем надо было бы заняться компьютерной анимацией и языком профессионалов - C++.

Ссылка на комментарий
Поделиться на другие сайты

V.G.:

1. В среднем для хороших мониторов порядка 1-2 мс, хотя длительность фронта изменения яркости зависит от уровня яркости и его перепада, а также направления этого перепада и, естественно, от модели монитора (разные ЖК матрицы). Дело не в длительности фронта электрического сигнала, подаваемого на ячейку матрицы, а в инерционности самой жидкокристаллической ячейки. Однако после переключения на новый уровень яркости он будет оставаться постоянным вплоть до нового переключения через 1/60 с. Яркость пикселов в течение этого периода нельзя менять плавно, новое обращение к ячейке до истечения этого интервала времени не предусмотрено схемами мониторов и перепрограммировано быть не может (разве что разработкой специальных моделей мониторов).

2. Значения яркостей можно задать с дискретностью 1/60 с. Как правило, у мониторов имеется возможность задавать их с частотой до 60-85 Гц (зависит от модели монитора), но монитор не обязательно будет переключать пикселы с этой частотой, он может все равно интерполировать ее в стандартные 60 Гц. Управляющий сигнал, даже если он пилообразный, все равно будет дискретизироваться с этой частотой.

Ваше отношение к следующему совету.Не слишком ли категорично? Или я что-то неправильно понял?

Сообщение от V.G.

Направление – индивидуальное управление пэлами (подэлементами пиксела).

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

А они таковы:

каждому субпикселю соответствует обычно (т.е. в режимах видеоконтроллера, предназначенных для качественной работы с цветом)один байт в видеопамяти. Байт может принимать 256 различных значений. Теоретически такое же количество значений яркости должен принимать и субпиксель, но есть ряд ограничений. В частности:

- нелинейность передаточной характеристики.

- ограниченная разрядность матрицы.

- конечное время установления.

Наиболее интересная - ограниченная разрядность матрицы: у ВСЕХ TN матриц разрядность не превосходит 6, а количество отображаемых градаций, соответственно, 64. Чтобы эмулировать 256 (на самом деле 252) градаций субпиксель заставляют мигать между двумя соседними уровнями с частотой 15 или 30 Гц.

Кроме того, обновление состояния субпикселя происходит не сразу, а, во-первых, синхронно с процессом сканирования видеопамяти видеоконтроллером 60-85 раз в секунду. Во-вторых, ЖК имеют определенную инерционность, т.е. изменение имеет еще дополнительную задержку. В-третьих, т.к. технически нельзя сделать эту задержку менее примерно 10 мс, применяют хитрую технику, заключающуюся в том, что при, скажем, увеличении яркости на субпиксель в течение короткого времени подается повышенный уровень сигнала, за счет чего изменение яркости происходит быстрее. Но идеальной балансировки добиться не удается - за счет разброса параметров часть субпикселей не успевают дойти до нужной яркости за время импульса, а другоие, наоборот, "проскакивают" это значение. Это в идеале. Реально у всей матрицы может наблюдаться либо "неуспевание", либо "проскакивание", притом различное для разных пикселей.

Ссылка на комментарий
Поделиться на другие сайты

V.G.:

Это в целом правильное описание, хотя можно сделать некоторые замечания.

а) Задержка 10 мс только характеризует инерционность ЖК ячейки при подаче на нее постоянного сигнала. За счет упомянутой "хитрой техники", хотя в ней нет ничего хитрого, она сводится к действительным 1-2 мс, хотя, как я уже отметил раньше, это время сильно зависит от перепада яркостей.

б) "у ВСЕХ TN матриц разрядность не превосходит 6". Это так, но в мониторах применяются не только TN-матрицы, они характерны только для дешевых мониторов. В более дорогих применяются, например, матрицы IPS, обеспечивающие "честные" 24 бита на каждую точку, или матрицы PVA, которые выпускаются, насколько мне попадалось, и такие, и этакие :). Кроме того, навряд ли Вас точная цветопередача очень волнует, Вы вполне можете ограничиться 262 тыс. цветов "честной цветопередачи" даже для TN матриц (TN, PVA, IPS - типы матриц, они отличаются по устройству ячеек).

Вообще же, как для практически всех устройств, управляемых электроникой, используется возможность "электронных мозгов" этих устройств компенсировать несовершенства механической или химической технологии. ЖК монитор выполняет огромное количество расчетов по коррекции цветовой температуры изображения, компенсации нелинейности характеристик жидкокристаллических ячеек, динамическому изменению контраста изображения и т.п. Это далеко не простое управление яркостью каждой ячейки подачей на нее пропорционального требуемой яркости напряжения.

Однако я не понимаю, почему Вы считаете, что индивидуальное управление пэлами невозможно. Именно так строится передача изображения от компьютера монитору - индивидуальным управлением пэлами. А каким образом передаются команды каждому пэлу - это внутреннее дело используемой технологии, Вам совсем не нужно знать устройство этого "черного ящика". Вам, насколько я понимаю, достаточно знать, что дискретность изменения яркости пэлов составляет 1/60 c, а фронты кривой изменения яркости - порядка единиц миллисекунд.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Частота сканирования пикселов в видеосистеме задается таймером. При этом существующие стандартные частоты не привязаны аппаратно,т. е. их можно изменить При этом сканирование можно задавать не одним, а тремя таймерами, для каждого подъэлемента пиксела отдельно. При этом, в принципе, возможна реализация любого числа таймеров для задания нужных режимов сканирования.

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

Используя необходимое количество таймеров, мы можем задавать режимы сканирования подъэлементов пиксела индивидуально любому сценарию?

Ведь в существующих системах сканирование пикселов управляется одним таймером,хотя и по трем проводам или я ошибаюсь?

Ссылка на комментарий
Поделиться на другие сайты

Монитор и графическая карта, часто называемая также видеокартой или видеоадаптером - разные устройства. То есть это две разные, связанные стандартными интерфейсами, видеосистемы. А процессор компьютера (вместе с системной, называемой также материнской, платой) - третье устройство. Вам нужно перепрограммировать именно специализированные микросхемы микроконтроллеров монитора. В какой степени используются возможности этих контроллеров, насколько тесно они интегрированы с другими подсистемами монитора и насколько можно их перепрограммировать, я сказать не берусь, тем более что это сильно зависит от конкретного монитора. Кроме того, тут мы вторгаемся в область производственных секретов фирм. Такое перепрограммирование осуществляется при помощи специальной технологической аппаратуры, не говоря уже о необходимости знания изменяемых программ, которые задокументированы только во внутренней документации фирм "для служебного пользования". Во всяком случае, создавать собственные модификации фирменных мониторов для реализации особых требований к ним нереально. Надо исходить из тех устройств, что есть, и возможностей, которые в них предусмотрены.

clip_image003.jpg

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...