Як накласти текстуру на 3D обєкти, наприклад будинки, зібрані в стереорежимі. На рельєф ложиться, а обєкти не чіпає. Якщо є якісь алгоритми, вишліть будь-ласка на ел. пошту.
Доброго времени суток ![]()
Появилось безумное желание
обсудить с кем-то шаблоны сбора 3D объектов.
Для построения 3D моделей используется технология сбора крыш с последующем построением стен от основания крыши до ЦМР.
Но, тем не менее, во многих шаблонах [Flat Roof .. Cut Hipped Roof] последняя точка сбора как раз отвечает за задание высоты объекта.
Как я поняла, в шаблоне Tower ведется сбор только окружности - основания цилиндра (3 точки).
А вот в шаблоне Tower Roof используется уже 5 точек… Скажите пожалуйста, зачем эта пятая нужна ![]()
И еще такой момент… Не могу разобраться с порядком сбора шаблонов: Barrel Roof, Wall (вообще не пойму в чем… изюминка), Dome Roof и Polytent Roof.
… и тишина…
не слышно ни бурных оваций фанатиков, ни мудрых изречений автора… ![]()
Доброго времени суток ![]()
По поводу последней точки задающей высоту – есть возможность включить в настройках режим сбора без определения высоты стен. Останется крыша в чистом виде.
Откуда в Tower Roof взялась пятая точка - не знаю.. Было 4 - 3 для основания и 1 для вершины. Видимо она завершает сбор основания.
Barrel Roof, Wall, Dome Roof еще в разработке. Но, так как они относятся к специфическим крышам, мы их, как правило, упрощаем и собираем с помощью других шаблонов.
Polytent Roof используется в случаях с количеством углов ≠4. Собирается в таком порядке: все точки основания крыши, вершина и F5.
Если бы Вы только знали, как приятно читать Ваш ответ…
Конечный результат сбора Barrel Root и Dome Roof в принципе понятен… Осталось только дождаться порядка сбора.
А вот Wall… Для чего именно создается этот шаблон? Он будет предназначен для сбора стен зданий… или любых отвесных граней… или чего-то еще..?
Поясните пожалуйста =)
Как интересно, не ты ли Оль говорила что лучшая справка – это онлайн справка, и лучше пусть разработчики тратят время на доработку программы а не на HELP. viewtopic.php?f=1&t=913
опять о наболевшем ![]()
я особых противоречий не вижу
Возникла проблема с построением 3D зданий, а именно с проецированием стен на цмр.
Не выполняется команда ЦМР/Переприсвоить высоты.
Пример во вложении.
3D.rar (149 KB)
Саша ![]()
Ведь если каждый к Вам поедет - то оно то конечно хорошо - меньше работы, больше отдыху. Сама бы приехала ![]()
А вот на счёт подробной / начальной инструкции - было бы неплохо, даже совсем неплохо.
А то такие … получаются как рисовать просто наугад - и пока что мне логику отрисовки уловить не удалось. К сожалению ![]()
Спасибо. ![]()
Повторю то, что уже писал в ICQ. При моделировании зданий в Digitals очень важно соблюдать последовательность действий.
- Выполняем сбор модели рельефа и генерацию ЦМР.
- Создаем ортофото по снимкам и полученной ЦМР. Это наша текстура поверхности. Имя растрового файла должно совпадать с именем карты и находится он должен в той же папке, что и карта.
- Выполняем сбор 3D зданий, используя соответствующие шаблоны на закладке Сбор.
- Если здания собирались по крышам без регистрации точек основания стен, необходимо выполнить ЦМР>Переприсвоить высоты, пометив предварительно нашу ЦМР. 3D объекты должны находится в слоях с типом 3D модель, каждая крыша должна содержать вырожденные (с нулевой высотой) грани стен (сбор выполнять при Сервис>Настройки>Главная>Константы>3DBottom=1. Каждая грань 3D объекта должна состоять из 5-ти точек плюс разрыв, иначе объект считается неправильным. После выполнения команды для зданий будут сгенерированы крыши.
- Только после этого можно выполнять команду формирования крыш для multiflat объектов @Map.CoverMultiFlatRoofs.
- Теперь, когда геометрия объектов готова, приступаем к генерации текстур из снимков, команда @Window.GenerateTextures bond pak jpg. Чем больше у вас снимков одной и той же территории под разными ракурсами, тем качественнее результат.
Имеется также команда @Map.RemoveFaceBlinking, которая устраняет мерцание накладывающихся граней (вызывать после п.5).
Полученную модель можно экспортировать в Google Earth (команда Файл>Сохранить как>Google Earth KML/KMZ) или просматривать в Digitals (Вид>Трехмерный)
P.S. Что создавать раньше ЦМР или 3D здания значения не имеет. В остальных процессах важен порядок.
Вот тут краткая инструкция по 3D моделированию в Digitals 3D моделювання - #10 від Bondarets_Alexander. Вот тут по сбору зданий vinmap.net/samples/3DBuildings.pdf (последняя правда на англ.)
Действительно, разобраться в порядке сбора не так просто, однако разобравшись можно тратить на сбор одного здания средней сложности не более минуты (по крайней мере так работают наши операторы).
А гостям мы всегда рады ![]()
Сегодня специально экспериментировала и убедилась, что порядок не так уж и важен.
Переменная 3DBotton фактически не влияет ни на что при проецировании стен на ЦМР.
Но, если при сборе опускать высоту здания (хоть на чуть-чуть), переприсваивание высот тоже не работает.
И еще оно не работает, если при сборе контура использовалась вставка дуги (CTRL+A) - это только для части объектов - самой дуги и смежных граней.
И ведь вопрос заключается не в порядке выполнения каких-либо действий.
Каждая функция, @Map.CoverMultiFlatRoofs, @Window.GenerateTextures, @Map.RemoveFaceBlinking… и то же переприсваивание высот… они ведь независимы друг от друга. Как на построение геометрии может влиять текстурирование, которое фактически заключается в добавлении к объекту еще одного параметра?
При сборе крыш ничего нового не выдумывалось, а использовались перечисленные выше параметры и технология. Объекты вроде как тоже не являются вырожденными, представляют из себя грань и находятся в нужном слое. А вот как теперь стены опустить на землю и где именно (во всех объектах) ошибка?
ID слоя зданий должно находиться в пределах между 1 и до 50 (поправьте меня если я ошибасюь в диапазоне).
При этом - если 1-30 - то здание бедт опускать до ЦМР, если больше - то стены будут подниматься.
У меня твой пример строит здания как полагается.
Приглашение принято. ![]()
За инструкцию - особое огромное грандмерси ![]()
Бум изучать и учиться рисовать правильно. ![]()
Сделала всё по инструкции. Докладываю:
Flat roof - вместо 3+1 требует 4+1 точки. Непонятно.
Flat Roof with more or less than four corners - непонятно - после ESC как написано в инструкции отменяет собранный контур. Возможно какие-то изменения внесены в порядок.
Lean-to roof и Gable Roof - вместо 3+1 требует 4+1 точки.Непонятно.
Hip Roof - как в инструкции.
Hipped Gable Roof - как в инструкции.
Tent Roof - как в инструкции.
Mansard Roof - не всё как в инструкции, ещё 4 и 5 добавляют где должны быть боковые гребни мансарды, а уж потом 6 - высота центрального гребня.
Combination of Gable and Hip Roof - как в инструкции.
Combination of Gable and Hipped Gable Roof - как в инструкции.
Cut Hipped Roof - как в инструкции.
Tower - не просит высоту (4-ую точку).
Tower Roof - как в инструкции.
Dome Roof - не строит как в инструкции - просто набор 5 точек в виде кривой. При чём первый угол строит прямым.
Barrel Roof - работает просто как полилиния.
Wall - не строит как в инструкции - просто набор 5 точек в виде кривой. При чём первый угол строит прямым.
Polytent roof - нет вообще в инструкции. Что-то строит, но непонятен сам порядок сбора.
По поводу последних 4-х детально описано тут 3D моделювання - #4 від Anish
Прошу оставить на этот счёт свои комментарии. ![]()
Сегодня специально экспериментировала и убедилась, что порядок не так уж и важен.
Переменная 3DBotton фактически не влияет ни на что при проецировании стен на ЦМР.
Но, если при сборе опускать высоту здания (хоть на чуть-чуть), переприсваивание высот тоже не работает.
И еще оно не работает, если при сборе контура использовалась вставка дуги (CTRL+A) - это только для части объектов - самой дуги и смежных граней.И ведь вопрос заключается не в порядке выполнения каких-либо действий.
Каждая функция, @Map.CoverMultiFlatRoofs, @Window.GenerateTextures, @Map.RemoveFaceBlinking… и то же переприсваивание высот… они ведь независимы друг от друга. Как на построение геометрии может влиять текстурирование, которое фактически заключается в добавлении к объекту еще одного параметра?При сборе крыш ничего нового не выдумывалось, а использовались перечисленные выше параметры и технология. Объекты вроде как тоже не являются вырожденными, представляют из себя грань и находятся в нужном слое. А вот как теперь стены опустить на землю и где именно (во всех объектах) ошибка?
Если при сборе регистрировать точки основания стен, то проецирование стен на ЦМР уже не сработает. Алгоритм генерации стен отыскивает вырожденные грани стен (грани с нулевой высотой) и проецирует нижние точки граней на модель рельефа. То есть такие грани обязательно должны присутствовать, чтобы процедура сработала. Команды @Map.CoverMultiFlatRoofs, @Map.RemoveFaceBlinking могут изменить исходную геометрию объектов так, что проецирование стен не сработает. Кроме того не имеет смысла вызывать процедуру устранения мерцаний граней до того как все грани уже сформированы. В этом и важен порядок. Нет смысла также в генерации текстур, если не все грани еще сформированы. Иначе грани которые появились позднее окажутся без текстур, либо изменится порядок перечисления граней и текстуры окажутся не на своих местах.
Вывод - порядок важен. Сначала сбор 3Д зданий, потом формирование недостающих граней (проецирование стен и @Map.CoverMultiFlatRoofs). Потом устранение мерцаний граней(@Map.RemoveFaceBlinking), если таковые наблюдаются. И только потом когда все грани сформированы запускаем генерацию текстур (@Window.GenerateTextures).
Любой сбор объектов без использования 3D шаблонов приводит к нарушению структуры 5 точек грани плюс разрыв. Такие объекты дальше считаются поврежденными и из обработки всеми перечисленными процедурами исключаются. За этим надо следить. Если в Вид>Трехмерный не отображаются все грани объекта надо проверить список координат его точек.
Про правильные ID 3D объектов я вовсе забыл. Спасибо pippa
Изначально эта технология разрабатывалась для немецкой фирмы TeleAtlas, они и предоставляли требования к выходным данным.
Сделала всё по инструкции. Докладываю:
Flat roof - вместо 3+1 требует 4+1 точки. Непонятно.
Flat Roof with more or less than four corners - непонятно - после ESC как написано в инструкции отменяет собранный контур. Возможно какие-то изменения внесены в порядок.
Lean-to roof и Gable Roof - вместо 3+1 требует 4+1 точки.Непонятно.
Hip Roof - как в инструкции.
Hipped Gable Roof - как в инструкции.
Tent Roof - как в инструкции.
Mansard Roof - не всё как в инструкции, ещё 4 и 5 добавляют где должны быть боковые гребни мансарды, а уж потом 6 - высота центрального гребня.
Combination of Gable and Hip Roof - как в инструкции.
Combination of Gable and Hipped Gable Roof - как в инструкции.
Cut Hipped Roof - как в инструкции.
Tower - не просит высоту (4-ую точку).
Tower Roof - как в инструкции.
Dome Roof - не строит как в инструкции - просто набор 5 точек в виде кривой. При чём первый угол строит прямым.
Barrel Roof - работает просто как полилиния.
Wall - не строит как в инструкции - просто набор 5 точек в виде кривой. При чём первый угол строит прямым.
Polytent roof - нет вообще в инструкции. Что-то строит, но непонятен сам порядок сбора.По поводу последних 4-х детально описано тут viewtopic.php?p=4233#4233
Прошу оставить на этот счёт свои комментарии.
Будем очень признательны за подвиг по переводу и уточнению имеющейся инструкции сбора 3D зданий. Действительно со временем порядок сбора зданий изменялся и это нигде не отображалось. Некоторые 3D шаблоны еще не реализованы.
Любой приводит к нарушению структуры 5 точек грани плюс разрыв. Такие объекты дальше считаются поврежденными и из обработки всеми перечисленными процедурами исключаются. За этим надо следить. Если в Вид>Трехмерный не отображаются все грани объекта надо проверить список координат его точек.
Про правильные ID 3D объектов я вовсе забыл. Спасибо pippa
Изначально эта технология разрабатывалась для немецкой фирмы TeleAtlas, они и предоставляли требования к выходным данным.
Всегда пожалуйста ![]()
А по поводу сбор объектов без использования 3D шаблонов позвольте, Александр, с Вами не согласиться. Можно собрать здание по высоте используя лишь простой полигон. Так называемый контур здания. Затем пометить все объекты такого плана (предварительно проверить - что эти объекты находятся на слое 3D модель
), заходим в пункт меню - Сервис - Преобразовать - Полигон в 3D модель. Тогда данная модель будет абсолютно кооректна в отношении вырожденных граней. А уж потом - помечаем ЦМР, ЦМР - Переприсвоить высоты (уточнить ID слоёв (кстати, в примере по Козину на форуме как раз точный классификатор всех правильных ID для всех типов крыш)). Всего наилучшего.
![]()
А по поводу сбор объектов без использования 3D шаблонов позвольте, Александр, с Вами не согласиться. Можно собрать здание по высоте используя лишь простой полигон. Так называемый контур здания. Затем пометить все объекты такого плана (предварительно проверить - что эти объекты находятся на слое 3D модель
), заходим в пункт меню - Сервис - Преобразовать - Полигон в 3D модель. Тогда данная модель будет абсолютно кооректна в отношении вырожденных граней. А уж потом - помечаем ЦМР, ЦМР - Переприсвоить высоты (уточнить ID слоёв (кстати, в примере по Козину на форуме как раз точный классификатор всех правильных ID для всех типов крыш)). Всего наилучшего.
Позволяю не согласиться
Однако процитирую себя.
Любой сбор объектов без использования 3D шаблонов приводит к нарушению структуры 5 точек грани плюс разрыв.
Речь не шла о формировании 3D моделей из обычных полигонов. Здесь лишь напоминание о том, что правильный сбор 3D моделей возможен только с соответствующими шаблонами. Попытки дополнить 3D объект обычными полигонами или полилиниями приводят к нарушению его структуры. Это же касается и редактирования координат точек 3D объектов. К сожалению, представление трехмерных моделей в DMF неидеально и пока отсутствуют инструменты редактирования граней. Поэтому испорченный объект порой проще собрать заново, чем редактировать его точки.
ID слоя зданий должно находиться в пределах между 1 и до 50
Спасибо, pippa. Вот это как раз то, что нужно ![]()
