Лаборатория университета, в которой я работаю, покупает лазерный сканер для сканирования 3D-объектов. С самого начала мы пытались найти сканер, который мог бы захватывать реальные RAW-нормали с реальной отсканированной поверхности. Кажется, что большинство сканеров только захватывают точки, а затем программное обеспечение интерполирует, чтобы найти нормаль приблизительной поверхности.
Кто-нибудь знает, есть ли вообще такая вещь, как захват сырых нормалей? Есть ли сканер, который может это сделать и не интерполировать нормали из точечных данных?





Очень вряд ли. Лазерное сканирование осуществляется с помощью диапазонов. Вам нужно объединить две совершенно разные техники. Нормы могут быть оценены с более высокой точностью, используя хорошо контролируемое освещение и т. д., Но это требует совсем другой настройки. Также рассмотрите проблему выборки: что хорошего в нормальном изображении с более высоким разрешением, чем ваши данные о местоположении?
Если вы уже знаете функция двунаправленного распределения отражательной способности материала, из которого состоит ваш 3D-объект, возможно, вы могли бы использовать гониорефлектометр для сравнения измеренного BRDF в точке. Затем вы можете индивидуально оптимизировать вычисленную нормаль в этой точке, сравнивая гипотетический BRDF с фактическим измеренным значением.
По общему признанию, это была бы достаточно ресурсоемкая задача. Однако, если вы проходите через этот процесс довольно редко, это может быть осуществимо.
Для получения дополнительной информации я бы порекомендовал вам поговорить либо с Грег Уорд (Ларсон) из Сияние, либо с Питер Ширли из NVIDIA.
Вы могли бы сделать это со структурированным светом и камерой. Нормаль будет происходить от угла между проецируемой линией и положением на изображении. Как отмечают другие плакаты - с точечного лазерного сканера этого не сделать.
Верно, но я думал, что это ближайший к вам шанс.
Захват необработанных нормалей почти всегда выполняется с помощью фотометрическое стерео. Это почти всегда требует некоторых допущений относительно базовой отражательной способности, но даже с несколько неточными нормалями вы часто можете преуспеть, комбинируя их с другим источником данных:
Действительно хороший код для объединения облаков точек (например, из лазерного сканирования) с нормалями поверхности: http://www.cs.princeton.edu/gfx/pubs/Nehab_2005_ECP/
Вот пример статьи об использовании структурированного света для восстановления нормалей из градиентов. Форма из двухмерных граничных градиентов
Я не нашел именно ту статью, которую искал, но похоже, что она основана на том же принципе. Вы можете восстановить нормали по углу и ширине полосы после деформации на объекте.
Это работает только в том случае, если у вас есть идеально зеркальная поверхность и вы предполагаете, что закона Снеллиуса достаточно для ваших обычных вычислений. Однако для некоторых реальных материалов «яркое пятно» не совсем то, что предсказывает закон Снеллиуса.