Skip to content

UL-FRI-LGM/blender-las-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vizualizacija in urejanje velikih oblakov točk (Magistrsko delo)

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.

Povzetek naloge

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.

Datoteke

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.

Izgradnja razširitve

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.

Potrebna programska oprema

  • 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)

Navodila

  1. Postavimo virtualno okolje za našo različico Pythona in ga aktiviramo.
  2. V ukazni vrstici se prestavimo v imenik point_cloud_tools.
  3. V imeniku sta dva skripta: linux_build.sh, ki ga poženemo, če smo na Linuxu, in windows_build.ps1, ki ga poženemo, če smo na Windowsih. Skripta sta testirana na Windows 10 in Linux Mint 22.
  4. Ko skript konča, se v imeniku point_cloud_tools ustvari datoteka point_cloud_tools.zip. To je razširitev, ki jo je mogoče pripeljati v Blender.
  5. 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.

Podrobneje o projektu

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages