Название: Пиксельные координаты для зеркала [решено] Отправлено: Igors от Январь 06, 2012, 14:58 Добрый день
Может это совсем просто и я не могу сообразить, а может это и не имеет решения. В общем - растерялся :) Есть имедж в котором известны 3D координаты x, y, z для каждого пикселя. Расчеты выполняются по пикселям, напр: взяли матрицу пикселей 4х4, обработали и.т.д. При этом конечно 3D координаты учитываются, напр расстояние между 2 соседними пикселями "на горизонте" может быть во много раз больше чем для 2 на переднем плане (следствие перспективы). Все хорошо, но вот появляется зеркало. Для каждого пикселя зеркала известна 3D точка (x, y, z) которую зеркало отразит. В общем случае она может быть где угодно, видимой напрямую или нет, зеркало может быть как угодно выпуклым или вогнутым. Хотелось бы иметь "пиксельные координаты" для отраженных точек - чтобы использовать максимально имеющиеся расчеты для прямой видимости. Но как такие "пиксельные координаты" получить? Спасибо Название: Re: Пиксельные координаты для зеркала Отправлено: popper от Январь 07, 2012, 11:04 Для каждого пикселя зеркала известна 3D точка (x, y, z) которую зеркало отразит. Т.е. речь не идет о физическом зеркале, каждый "пиксель" которого отражает все точки полупространства по закону "угол падения равен углу отражения"? Название: Re: Пиксельные координаты для зеркала Отправлено: Igors от Январь 07, 2012, 15:40 Т.е. речь не идет о физическом зеркале, каждый "пиксель" которого отражает все точки полупространства по закону "угол падения равен углу отражения"? Используется типовая модель- один пиксель зеркала (сам видимый напрямую) отражает одну 3D точку которая может находиться где угодно, в том числе и бесконечно далеко (небо) - отражаемая точка находится по правилу "угол падения равен углу отражения" Название: Re: Пиксельные координаты для зеркала Отправлено: popper от Январь 07, 2012, 18:38 Исходя из заданной формы поверхности зеркала в каждой точке (пикселе) зеркала можно рассчитать вектор нормали N. Также для каждого пикселя зеркала известен вектор V на ту 3D точку, которую он отражает. Затем можно найти угол альфа между V и N (в диапазоне 0...90 градусов). Зеркальная точка лежит в плоскости этих векторов под углом 180-альфа относительно линии нормали. Расстояние до зеркальной точки равно длине вектора V.
Название: Re: Пиксельные координаты для зеркала Отправлено: Igors от Январь 07, 2012, 19:41 Исходя из заданной формы поверхности зеркала в каждой точке (пикселе) зеркала можно рассчитать вектор нормали N. Также для каждого пикселя зеркала известен вектор V на ту 3D точку, которую он отражает. Затем можно найти угол альфа между V и N (в диапазоне 0...90 градусов). Зеркальная точка лежит в плоскости этих векторов под углом 180-альфа относительно линии нормали. Расстояние до зеркальной точки равно длине вектора V. Нормали к поверхности N всегда/везде определены. Также нет проблем с нахождением отражаемой точки (точек). Вопрос в том что делать со многими частями расчета которые используют пиксели (т.е. 2D). Пример:- берем пиксель (строка столбец имеджа). Соседние пиксели на руках - находим расстояния до них уже в 3D. Получили R (радиус захвата точки) и.т.л. А вот как мне получить тот же радиус в "зазеркалье" ? Название: Re: Пиксельные координаты для зеркала Отправлено: popper от Январь 07, 2012, 22:45 но зеркальное отражение плоской фигуры в зеркале, поверхность которого не плоская, дает не плоскую фигуру.
Название: Re: Пиксельные координаты для зеркала Отправлено: Igors от Январь 09, 2012, 14:14 Почитал теорию, посмотрел open-sources. Есть стандартное решение этой проблемы (хотя легче от этого не становится :))
|