Russian Qt Forum
Сентябрь 30, 2024, 14:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пиксельные координаты для зеркала [решено]  (Прочитано 3372 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Январь 06, 2012, 14:58 »

Добрый день

Может это совсем просто и я не могу сообразить, а может это и не имеет решения. В общем - растерялся  Улыбающийся

Есть имедж в котором известны 3D координаты x, y, z для каждого пикселя. Расчеты выполняются по пикселям, напр: взяли матрицу пикселей 4х4, обработали и.т.д. При этом конечно 3D координаты учитываются, напр расстояние между 2 соседними пикселями "на горизонте" может быть во много раз больше чем для 2 на переднем плане (следствие перспективы).

Все хорошо, но вот появляется зеркало. Для каждого пикселя зеркала известна 3D точка (x, y, z) которую зеркало отразит. В общем случае она может быть где угодно, видимой напрямую или нет, зеркало может быть как угодно выпуклым или вогнутым.  

Хотелось бы иметь "пиксельные координаты" для отраженных точек - чтобы использовать максимально имеющиеся расчеты для прямой видимости. Но как такие "пиксельные координаты" получить?

Спасибо
« Последнее редактирование: Январь 09, 2012, 14:14 от Igors » Записан
popper
Гость
« Ответ #1 : Январь 07, 2012, 11:04 »

Для каждого пикселя зеркала известна 3D точка (x, y, z) которую зеркало отразит.

Т.е. речь не идет о физическом зеркале, каждый "пиксель" которого отражает все точки полупространства по закону "угол падения равен углу отражения"?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Январь 07, 2012, 15:40 »

Т.е. речь не идет о физическом зеркале, каждый "пиксель" которого отражает все точки полупространства по закону "угол падения равен углу отражения"?
Используется типовая модель

- один пиксель зеркала (сам видимый напрямую) отражает одну 3D точку которая может находиться где угодно, в том числе и бесконечно далеко (небо)

- отражаемая точка находится по правилу "угол падения равен углу отражения"
Записан
popper
Гость
« Ответ #3 : Январь 07, 2012, 18:38 »

Исходя из заданной формы поверхности зеркала в каждой точке (пикселе) зеркала можно рассчитать вектор нормали N. Также для каждого пикселя зеркала известен вектор V на ту 3D точку, которую он отражает. Затем можно найти угол альфа между V и N (в диапазоне 0...90 градусов). Зеркальная точка лежит в плоскости этих векторов под углом 180-альфа относительно линии нормали. Расстояние до зеркальной точки равно длине вектора V.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Январь 07, 2012, 19:41 »

Исходя из заданной формы поверхности зеркала в каждой точке (пикселе) зеркала можно рассчитать вектор нормали N. Также для каждого пикселя зеркала известен вектор V на ту 3D точку, которую он отражает. Затем можно найти угол альфа между V и N (в диапазоне 0...90 градусов). Зеркальная точка лежит в плоскости этих векторов под углом 180-альфа относительно линии нормали. Расстояние до зеркальной точки равно длине вектора V.
Нормали к поверхности N всегда/везде определены. Также нет проблем с нахождением отражаемой точки (точек). Вопрос в том что делать со многими частями расчета которые используют пиксели (т.е. 2D). Пример:

- берем пиксель (строка столбец имеджа). Соседние пиксели на руках - находим расстояния до них уже в 3D. Получили R (радиус захвата точки) и.т.л. А вот как мне получить тот же радиус в "зазеркалье" ?
Записан
popper
Гость
« Ответ #5 : Январь 07, 2012, 22:45 »

но зеркальное отражение плоской фигуры в зеркале, поверхность которого не плоская, дает не плоскую фигуру.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Январь 09, 2012, 14:14 »

Почитал теорию, посмотрел open-sources. Есть стандартное решение этой проблемы (хотя легче от этого не становится Улыбающийся)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 23.