3D моделиранеградска зона в ЦИФРОВИТЕ
Създаването на текстуриран 3D модел в среда Digitals се счита за основен метод за конструиране на 3D модел на град въз основа на данни от въздушна фотография. Трябва да се отбележи, че тази технология е насочена към създаване на модел, който не е за внимателно разглеждане и детайлизиране. Изходните данни са данните на градската пиктометрична библиотека. Фигура 18 показва общата схема за изграждане на 3D модел в Digitals въз основа на изображения в перспектива.
Фигура 18 – Схема за конструиране на 3D модел
Обмислете горните стъпки за създаване на 3D модел.
КОЛЕКЦИЯ РЕЛЕФ. Точките на повърхността на земята се измерват и релефните линии се събират в стерео режим.
ИЗГРАЖДАНЕ НА DEM/FIN DEM. се основава на обектите, събрани на предишния етап, т.е. върху релефни обекти. Ако теренът е сложен, тогава понякога най-добрият резултат е изграждането на DTM въз основа на предварително създаден FSM.
КОЛЕКЦИЯ ОТ 3D ОБЕКТИ. Събирането на 3D обекти се извършва в слоя "3D модел". Особеността на този слой е, че в него обектите са представени от лица, а не от полилинии.
Събирането на обекти беше извършено според шаблоните за изграждане, налични в Digitals, показани на фигура 19.
Фигура 19 - Изграждане на шаблони в Digitals
Анимация: обем - 194Kb, размер - 250x250, брой кадри - 16, забавяне между кадрите - 60 ms, забавяне преди повторение - 0 ms, брой цикли на повторение - неограничен.
Функцията работи по следния начин: за всеки връх на лице на обект се определя съответна точка от DTM. Неговите планирани координати остават същите, а координатата Z се получава чрез интерполация от DEM.
Фигура 20 - Резултат от преназначаване на височини
В този случай за всяко лице на стената се определя методът на интерполациякота на основата. Недостатъкът на този алгоритъм е, че конструираното лице може да не съвпада с повърхността, като по този начин се образуват "празнини" между обектите.
Текстурирането в Digitals се извършва с помощта на отворената графична библиотека OpenGL. Текстурният файл в Digitals се съхранява във формати BMP и JPEG. Тъй като OpenGL няма функция за четене/запис на графични файлове, системата OpenGL обработва масив от пиксели [15]. За да приложите текстура към обект, направете следното:
- зареждане на графичен файл в паметта;
- създаване на идентификатор на име на текстура. Името на идентификатора служи за избягване на дублирани имена, за да се гарантира, че те се съгласуват едно с друго. Всяко цяло число без знак може да се използва като име на текстура;
- направете го активен, т.е. посочете кой идентификатор ще бъде обработен.
- създайте самата текстура в паметта. Масивът от байтове, който се предава на OpenGL след прочитане на графичния файл, все още не е текстура, защото текстурата трябва да има много различни параметри. Следователно, когато създавате текстура, е необходимо да й дадете определени свойства, като нивото на детайлност, метода на мащабиране, обвързването на текстурата с обекта.
- задайте параметри на текстурата. Необходимо е да зададете параметрите, които контролират как текстурата се обработва, прилага към нейните фрагменти и се съхранява в обекта на текстурата.
- задайте параметрите на взаимодействието на текстурата с обекта. Указва дали да се вземе предвид цветът на обекта при текстуриране.
Digitals работи с 2D текстури (т.е. координатите на текстурата се дават от два параметъра). Текстурите за 3D обекти се генерират автоматично (Фигура 21). [15]
Фигура 21 - Текстурираникоординати
Фигура 22 - Резултат от текстуриране
За текстуриране на 3D обекти Digitals разработи функция за автоматично генериране на текстура (Фигура 22).
За да се определи съответното лице на текстурата, се възстановява лъч от лъчи от лицето към сензора на камерата. Лъчите се възстановяват с помощта на фотограметрични формули, за да се получат координатите на точките на проектираното лице. За да се определи дали лице се вижда, нормалният вектор се възстановява за него.
Горните действия се извършват за всички изображения, съдържащи изображение на лице. От текущия набор се избира изображението, върху което проекцията на лицето заема голяма площ, като се отчита видимостта на лицето в изображението.
Функцията работи с една директория, така че всички изображения, използвани за текстуриране, трябва да бъдат в една и съща папка. Избраната текстура се изрязва от изображението със съседство, което не надвишава 50 пиксела, и се записва в отделен файл. Всички текстурни файлове се поставят в отделна директория „Име на файл (текстури)“ или PAK текстурен файл, намиращ се в папката на картата. В същото време за слой от типа „3D модел“ се създава табличен параметър „Текстури“, който съхранява името на текстурата и координатите на текстурата, съответстващи на върховете на лицето ( , X1, Y1, X2, Y2, X3, Y3, X4, Y4). Името на текстурния файл се формира по следния начин: / номер на обект – уникален номер на обект, който е номерът на обекта в списъка с обекти на картата (номер на машина). Това е скрит параметър и се използва само вътре в програмата.
Линиите с името на текстурата се въвеждат в същия ред, в който са изброени лицата в списъка с обектни точки.
Когато се показва текстуриран 3D модел, всяко лице на обект в слоя с 3D модел е текстурирано според даннитепараметър на таблицата "Текстури", използвайки библиотеката OpenGL. Трансформацията на текстурата се извършва всеки път, когато се зарежда с помощта на OpenGL в световни и текстурни координати.
За DTM текстуриране е най-добре да използвате ортомозайка, тъй като тя е възможно най-близо до планираното показване на обекта за моделиране. Но теоретично наклонен удар може да се използва и като текстура. [15]
Проекцията на текстура върху DTM (Фигура 23) се извършва чрез прожектиране на всяка плочка с изображение. За да направите това, за ъглите на всяка TIF Tiled плочка (блок TIF - 256x256 пиксела) се намира нейната геодезическа координата.
За да се изчислят геодезическите координати на ъглите на плочките, е необходимо да се реши следната задача - да се определи геодезическата координата от точка на изображението. Ъгловите координати на плочките се изчисляват чрез заделяне на 256 пиксела.
Фигура 23 - Проектиране на плочка върху DEM
Фигура 24 - Колекция от 3D обекти. Наклонен изстрел
Фигура 25 - Текстуриране на 3D модела
Огромно предимство е автоматичното генериране на текстура, което създава оптималната текстура за обекта за секунди (Фигура 24,25).
По-голямата част от трудоемкостта пада върху събирането на информация, а изграждането на триизмерен модел въз основа на тези данни и неговата визуализация се извършва автоматично, което не може да се каже за горните методи. Този метод обаче има и редица недостатъци.
Първо, той не е предназначен за детайлно моделиране на обекти. Второ, вградените шаблони за събиране на 3D обекти са предназначени главно за изграждане на сгради и такъв класификатор не е достатъчен за изграждане на висококачествен градски модел.