V tem repozitoriju je programska koda, razvita v sklopu zaključne magistrske naloge. Koda obsega razširitev za Blender, ki omogoča uvažanje in obdelavo oblakov točk iz zajemov LiDAR podatkov (datoteke LAS) in konceptualno zasnovo fizikalne simulacije na oblakih točk, ter nekaj drugih programov za obdelavo rezultatov in generiranje testnih podatkov.
Zajemanje prostorskih informacij iz urbanih okoljih je z razvojem tehnologije LiDAR, fotogrametrije in njima podobnih poskrbelo za vse več velikih in kakovostnih podatkovnih zbirk v obliki oblakov točk, ki ponujajo dragocene informacije urbanistom, arhitektom, geologom, ekologom in drugim strokovnjakom. V tem delu smo raziskovali neuničujoče načine urejanja velikih oblakov točk z geometrijskimi vozlišči v programskem okolju Blender, njihovo vizualizacijo in simuliranje poenostavljenih fizikalnih procesov na točkah. Urejanje v Blenderju smo primerjali s programom Rhinoceros in njegovo razširitvijo Grasshopper. Kljub nekaterim slabostim se je izkazalo, da Blender ponuja obetavne funkcionalnosti za napredno urejanje oblakov točk, fleksibilne vizualizacije in robustno testno okolje za izvajanje kompleksnejših simulacij na ravni urbanih površin.
V repozitoriju sta dva imenika:
point_cloud_tools- vsebuje razvito razširitev za orodje Blender,scripts- vsebuje razne programe za generiranje testnih podatkov in analizo rezultatov.
Razširitev je bila razvita primarno za Blender 4.4.3. Verjetno deluje tudi z ostalimi različicami 4.X, vendar na njih ni bila testirana.
- cargo in rustc (za prevajanje kode v Rustu, mi smo uporabljali različico 1.87.0)
- maturin (mi smo uporabili različico 1.5.1),
- Python (za Blender 4.4.3 je potrebna različica 3.11, sicer pa tista različica, ki je zapakirana v relevantno izdajo Blenderja)
- Postavimo virtualno okolje za našo različico Pythona in ga aktiviramo.
- V ukazni vrstici se prestavimo v imenik
point_cloud_tools. - V imeniku sta dva skripta:
linux_build.sh, ki ga poženemo, če smo na Linuxu, inwindows_build.ps1, ki ga poženemo, če smo na Windowsih. Skripta sta testirana na Windows 10 in Linux Mint 22. - Ko skript konča, se v imeniku
point_cloud_toolsustvari datotekapoint_cloud_tools.zip. To je razširitev, ki jo je mogoče pripeljati v Blender. - Pred nameščanjem razširitve je treba v Python okolje znotraj Blenderja namestiti naslednja paketa:
- Open3D, ki se uporablja za rekonstrukcijo mreže iz oblaka točk,
- robust-laplacian, ki se uporablja za računanje Laplaceovega operatorja na oblakih točk.
Nameščanje paketov v Python znotraj Blenderja je obravnavano na tej strani.
Dodajanje razširitev v Blender je podrobneje opisano tukaj.
Programi v imeniku scripts so večinoma spisani za Python (z izjemo enega, ki generira oblake točk in je napisan v Rustu). Poganjali smo jih bodisi s Python 3.11 bodisi s Python 3.12.
Koda v imeniku point_cloud_tools je kombinacija Pythona in Rusta. Python skrbi za grafične elemente in interakcijo z Blenderjevim API-jem. V Rustu so implementirana računsko zahtevnejša opravila, denimo računanje normal, uvažanje podatkov iz datotek LAS in metanje žarkov na sfere.