ZG Connect logoZG Connect
ZG Connect

Zagreb, ali kao gotova Unity lokacija

Ne krećete od prazne scene. Otvorite Unity i pred vama je Zagreb — teren, zgrade, vegetacija, ortofoto podloga i podaci vezani uz stvarne lokacije.

OTVORENI PODACI3D U STVARNOM VREMENUNEOGRANIČENE MOGUĆNOSTI
Zagreb u Unityju — runtime streaming
Runtime_Streaming scena — Zagreb učitan oko kamere
Ortofoto podloga
Georeferencirani teren
Editor alat
Problem

Kompleksni tehnički formati

Grad Zagreb ima tehničke 3D modele

Geodetski formati, ogromne teksture, visinski modeli i stotine tisuća zgrada.

GIS formati nisu prirodni Unityju

Koordinatni sustav nema veze s klasičnom Unity scenom.

Grad ne možeš samo "ubaciti u scenu"

Direktni import nije opcija — treba pipeline.

Performanse pucaju

Bez streaminga i LOD managementa scena se ruši.

SIROVI PODACI — KAOS
Karta Zagreba
Maska pločica
Rješenje

Most između otvorenih podataka i Unitya

Vanjski podaci

Teren, ortofoto, zgrade, maske vegetacije

Priprema / Pack

Python + GDAL obrada i pakiranje

StreamingAssets

Manifest + složena struktura paketa

Unity Runtime / Editor

Stream oko igrača ili fiksna regija

Runtime Streaming

Dinamički stream velikih površina oko igrača — cijeli grad bez učitavanja odjednom.

Editor Populate

Fiksna regija učitana u scenu — uređujete je dalje kao obične Unity objekte.

ZG Connect editor paneli
ZG Connect alati u Unity editoru
Rezultat

Što developer stvarno dobiva

1:1 teren

Ortofoto ili street podloga u stvarnom mjerilu.

Zgrade s LOD-om i colliderima

Renderiraju se, selektiraju i nose podatke.

Vegetacija iz maski

GPU instancing umjesto tisuća ručnih objekata.

Klik / hover na zgradu

Metadata popup sa stvarnim atributima.

Debug HUD i loading flow

Build zna čekati inicijalne tileove.

Render Zagreba u Unityju
Baza na kojoj se gradi gameplay, simulacija ili vizualizacija
Portal otvorenih podataka Grada Zagreba
Priprema podataka
Georeferenca

Stvarna georeferenca, u Unity prostoru

EPSG:3765 projekcija

Hrvatski koordinatni sustav kao izvorna geodetska logika.

Unity X/Z = stvarne koordinate − origin

Grad nije složen "od oka".

Svaka pločica zna gdje je u Zagrebu

Zgrada nije samo mesh — zna gdje je i što je.

Kasnije moguće

GPS, POI, OSM podaci, AR overlay.

ZAGREB
EPSG:3765
LOKALNI
Unity origin
SCENA
Kamera / igrač
Georeferencirani teren Zagreba
Georeferencirane pločice terena — svaka zna svoju stvarnu poziciju
EPSG:3765
Pipeline

Kompletan pripremni pipeline

Pipeline dijagram
1

Python / GDAL priprema

Heightmape, ortofoto, maske, zgrade — van Unityja.

2

Packager

Slaže manifest i strukturu StreamingAssets foldera.

3

Runtime_Streaming

Controller učitava samo ono što treba oko kamere.

4

Build & Play

Build koristi isti pripremljeni paket.

Cijeli pripremni proces je automatiziran — asseti se pripremaju izvan Unityja, a u engine ulaze već gotovi za gaming upotrebu.

Performanse

Streaming: grad se ne učitava odjednom

Blizu kamere: 1×1 km tileovi

Puni detalj tamo gdje igrač gleda.

Srednja udaljenost: 2×2 HLOD

Supertileovi smanjuju broj draw poziva.

Daljina: 4×4 HLOD

Horizont ostaje pun, a jeftin.

Load / unload hysteresis

Sprječava flickering na rubu zone.

Memorija pod kontrolom

Osjećaj velikog grada — bez cijelog Zagreba u RAM-u.

HLOD prstenovi oko kamere
Prstenovi detalja oko kamere — cull: zgrade 400 m, vegetacija 1500 m
Streaming pločica u sceni
FPS debug HUD
PrstenLoad dist.Unload dist.Rezolucija
1×11500 m2000 mPuna
2×25000 m6000 mSrednja
4×415000 m16000 mNiska
Arhitektura

RealtimeStreamingController: mozak scene

Čita manifest

Jedan indeks cijelog dataseta.

Prati kameru ili playera

Odlučuje što se priprema, finalizira ili izbacuje.

Upravlja svim slojevima

Teren, zgrade, vegetacija i basemape — jedan kontroler.

Progress API

Loading screen zna koliko je još ostalo.

Tuning bez promjene pipelinea

Pretvara pripremljeni dataset u živi runtime prostor.

Inspector — RealtimeStreamingController
Jedna komponenta u glavnoj sceni
Inspector — postavke streaminga
Glavne grupe postavki
Zgrade

Najskuplji sloj — zato je kontroliran

Render distance i LOD pragovi

Broj detalja uvijek pod kontrolom.

Pre-baked building bundleovi

Zgrade dolaze spremne, bez runtime obrade.

Lazy collider load

Physics se pali samo blizu igrača.

Facade stilovi + metadata

Vizualni stil i podaci ostaju vezani uz zgradu.

Deseci tisuća zgrada u sceni
VISUAL — daleko
COLLIDER — blizu
Razlika između screenshot demo-a i sustava koji radi u stvarnom gameplayu
Vegetacija & podloge

Grad dobiva život

Vegetacijski sloj s debug prikazom
Vegetacijski sloj iz maski — uključi, isključi ili srezi po potrebi
Teren, zgrade, drveće i ortofoto zajedno
Teren + zgrade + drveće + ortho — osjećaj grada

Vegetacija iz RGBA maski

Ne stablo po stablo ručno.

GPU instancing

Umjesto tisuća GameObjecta.

Draw distance

Prilagodba za slabije strojeve.

Podloge kao slojevi

Ortofoto / OSM / stilizirane.

Interakcija

Zgrada nije samo kulisa

Raycast iz kamere

Hover highlight označava zgradu pod kursorom.

Klik otvara BuildingInfoPopup

Zgrada postaje izvor informacija.

Adresa, katovi, godina, površina, OSM tagovi

Stvarni atributi na stvarnoj geometriji.

Metadata se učitava lazy

Bez troška dok ne zatreba.

Otvara put prema igrama, simulacijama, urbanističkim alatima, turističkim vodičima i edukaciji.

Zgrade s podatkovnim panelima
BuildingInfoPopup — Puščanska ulica 3
"Aha" kadar — popup na kliknutoj zgradi
KLIK NA ZGRADU
Dva načina rada

Stream ili Populate?

Želim cijeli grad? → Realtime Streaming
Realtime streaming — cijeli grad
Cijeli gradSlobodna kretnjaRuntime / open-world
Želim kvart koji uređujem? → Editor Populate
Editor Populate — fiksna regija
Fiksna regijaLevel designEditabilna hijerarhija
=

Isti pripremljeni dataset, različit način rada — nema duplog pipelinea. Kvart, arena, cut-scena ili urbanistički prototip rade s istim podacima kao open-world.

Integracija

Integracija u vlastitu igru

1

Dodaj RealtimeStreamingController u scenu

2

Postavi cameraTransform na player kameru

3

Osiguraj StreamingAssets/ZGConnect u buildu

4

Zamijeni demo FlyCameru svojim controllerom

Character, vozilo, letjelica — što god gameplay treba.

5

Po potrebi: progress API za loading screen

// minimalna integracija
var streamer = FindAnyObjectByType<RealtimeStreamingController>();
streamer.cameraTransform = playerCamera.transform;
// StreamingAssets/ZGConnect → ide u build
while (!streamer.IsIntroInitialLoadComplete())
    yield return null;
Hijerarhija Runtime_Streaming scene
Runtime_Streaming scena — cijela hijerarhija stane na ekran
Use caseovi

Što se ovime može graditi

Gamedev

Gaming

Open-world prototipi i gamejam mape na stvarnom Zagrebu.

Simulacije prometa

Simulacije

Promet, dronovi, intervencije — u stvarnom prostoru grada.

Urbanizam

Urbanizam

Urban planning i prikaz projekata u stvarnom kontekstu.

Edukacija, turizam, AR/VR

Edukacija & AR/VR

Edukacija, turizam i AR/VR iskustva grada.

Nije jednokratni demo — podloga za buduće gradske digitalne servise. Od "imamo gradske podatke" do "imamo interaktivni Unity prostor".

ZG Connect

ZG Connect pretvara Zagreb u upotrebljiv Unity dataset

 Streaming čuva performanse  Populate daje editabilnu regiju  Interakcija i metadata čine grad podatkovno korisnim
Opis projekta i sufinanciranje Tehnička dokumentacija GitHub repozitorij