Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.05.2010, 08:33
=Student= =Student= вне форума
Прохожий
 
Регистрация: 17.05.2010
Сообщения: 11
Репутация: 10
Восклицание Найти источник света в 3d

Помогите, пожалуйста, необходимо найти источник в трехмерном пространстве. Дана яркость точек. Вообще нужны алгоритмы. Может книги какие нибудь подскажите.
Ответить с цитированием
  #2  
Старый 17.05.2010, 10:13
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Возможно я ошибаюсь, но вообще задача сводится к поиску максимума, только не в плоском, а в 3-мерном массиве.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 17.05.2010, 12:28
Аватар для Physicist
Physicist Physicist вне форума
Прохожий
 
Регистрация: 04.04.2010
Сообщения: 21
Репутация: 10
По умолчанию

Некорректно поставленная задача. Что такое источник? С какой погрешностью необходимо определить его координаты? В силу таких вопросов правильно ли искать обычный максимум? Он может являться ошибкой измерения, или случайным максимумом белого шума.

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

Для фрагментирования массива можно огранизовать цикл, в котором указанная выше операция повторяется N раз, количество операций 10+N. Источник будет в кубе с максимальной суммой и минимальной дисперсией.
__________________
Лечить и учить умеют все, а вот рассчитать несущую балку...
Ответить с цитированием
  #4  
Старый 17.05.2010, 13:12
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну вы конечно более конкретно к задаче подошли, но я отталкивался от изначальной предпосылки:
Цитата:
Дана яркость точек
Следовательно размер источника света известен - точка.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 17.05.2010, 13:38
=Student= =Student= вне форума
Прохожий
 
Регистрация: 17.05.2010
Сообщения: 11
Репутация: 10
По умолчанию

Источник света предполагается как точка, он может быть прожектором, точкой(во все стороны светит). Я программу на glscene сделал которая вычисляет координаты источника света. Она очень проста. Мне препод сказал, что в геометрической оптике есть такая вещь, как можно найти источник света. Я весь инет прошарил, нет там ничего подобного. Так что нужны алгоритмы или книги какие нибудь где поискать можно.

Последний раз редактировалось =Student=, 17.05.2010 в 14:19.
Ответить с цитированием
  #6  
Старый 17.05.2010, 13:42
=Student= =Student= вне форума
Прохожий
 
Регистрация: 17.05.2010
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Возможно я ошибаюсь, но вообще задача сводится к поиску максимума, только не в плоском, а в 3-мерном массиве.
После нахождения максимума. Что делать с максимальной точкой? строить перпендикуляр?
Ответить с цитированием
  #7  
Старый 17.05.2010, 14:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Зачем, все мне кажется проще:
Предположим, что
1. куб пустой
2. свет идет затухая равномерно от самого источника по всем направлениям
Тогда вроде все элементарно:
Снимаем показания с 8 углов нашего куба и делением пополам вычисляем позицию источника.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 17.05.2010, 17:09
=Student= =Student= вне форума
Прохожий
 
Регистрация: 17.05.2010
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Зачем, все мне кажется проще:
Предположим, что
1. куб пустой
2. свет идет затухая равномерно от самого источника по всем направлениям
Тогда вроде все элементарно:
Снимаем показания с 8 углов нашего куба и делением пополам вычисляем позицию источника.
я че то не понимаю, при чем здесь куб. У меня объект может быть любым. Объясни пожалуста
Ответить с цитированием
  #9  
Старый 17.05.2010, 17:21
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Ну..Тебе ведь нужны координаты???
Координаты куба содержащего источник света содержат координаты самого источника...
А куб нужен для сканирования 3-х мерного пространства...Как минимальный кусок объема...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #10  
Старый 17.05.2010, 18:02
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Куб - это просто удобный аналог куска пространства для которого есть координаты Х,У,Z
Собственно там видимо хватит и 3 углов т.к. это необходимые 6 координат для определения точки в пространстве. Если непонятно, то поясню. Поскольку предполагается, что свет от источника распространяется равномерно и с затуханием, то можно построить такую модель. Имеем куб с размером грани в 100 пикселей. Имеем где-то внутри этого куба источник света для которого действует правило затухания на 1 пиксель/1% яркости. Т.е. сам источник света это 100%, соответственно если он находится строго в центре куба, то измерения яркости снятые по 3 вершинам куба должны дать нам по 50% везде. Любой сдвиг источника света в пределах куба будет менять пропорционально соотношение освещенности его углов. Теперь методом от обратного, можно получить по освещенности в углах местоположение источника света. Так понятнее?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 17.05.2010 в 18:06.
Ответить с цитированием
  #11  
Старый 17.05.2010, 18:46
=Student= =Student= вне форума
Прохожий
 
Регистрация: 17.05.2010
Сообщения: 11
Репутация: 10
По умолчанию

Спасибо большое, кажется начал догонять. Буду пробовать. в любом случае ОГРОМННОЕ СПАСИБО!!! Страдалецъ можешь посоветовать какую нибудь литературу по 3D графике, если не сложно

Последний раз редактировалось =Student=, 17.05.2010 в 18:50.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:20.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025