Skip to content

Commit

Permalink
Launch new website + technical docs combined!
Browse files Browse the repository at this point in the history
  • Loading branch information
mvriel committed May 23, 2024
1 parent 49ddfd8 commit eacae10
Show file tree
Hide file tree
Showing 138 changed files with 2,499 additions and 479 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: ci
on:
push:
branches:
- main
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: actions/cache@v3
with:
key: mkdocs-material-${{ github.ref }}
path: .cache
restore-keys: |
mkdocs-material-
- name: Install mkdocs with plugins
run: pip install mkdocs-material
- name: build documentation
run: mkdocs gh-deploy --clean --force
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Documentation
=============

In this repository we create the website, project-wide documentation and, combined with the documentation for
each package, we use mkdocs to build a static html website and publish it to https://netherlands3d.eu/docs using
Github Pages.

Writing your own additions
--------------------------

> Important: In this repository we have the project-wide docs, if you want to write documentation for a package you
> should do so in that package's `Documentation~` folder.
To add onto this documentation you can do so using Markdown by adding or changing files in the `docs` folder. Every
file in that folder is copied and transformed onto Github Pages using Github Actions. This means that if you need
additional assets, such as images, you can add those to the docs folder as well.

Previewing
----------

To preview the generated documentation you can start the `.\bin\develop.bat` script from this folder and mkdocs will
start building and watching the files in the docs folder. This also means you do not need to restart this command
on every change, mkdocs is watching the docs folder and will rebuild automatically while it is running.

> Make sure that you have docker installed, mkdocs is ran through docker so that you do not need to install it on your
> own system.
The location where you can preview the docs is at: http://localhost:8000.

1 change: 1 addition & 0 deletions bin/build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
docker run --rm -it -p 8000:8000 -v %cd%:/docs squidfunk/mkdocs-material build
1 change: 1 addition & 0 deletions bin/develop.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
docker run --rm -it -p 8000:8000 -v %cd%:/docs squidfunk/mkdocs-material
45 changes: 45 additions & 0 deletions docs/BAG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# BAG informatie na klikken op gebouw

!!! warning

Dit deel van de documentatie is nog gebaseerd op een oudere versie van het project. We werken aan een nieuwe versie
die deze spoedig zal vervangen.

Het Netherlands3D pakketje bevat een voorbeeld om BAG informatie op te halen van een pand door er op te klikken.
Importeer het BAG-information voorbeeld via de Package Manager*.

*![img](./imgs/bag/image1.png)*

*Je kunt de Package Manager boven in Unity vinden onder 'Window/Package Manager'*

Open vervolgens de geimporteerde voorbeeld Scene genaamd ‘ShowBAGInformationOnClick’

Je kan de scene even uitproberen door op de **Play** knop te drukken.
Klik nu op een van de panden die worden ingeladen door te TileHandler, en je zult zien dat het pand wordt uitgelicht met een kleur en de daarbij behorende BAG informatie wordt getoond in een voorbeeld interface.

![img](./imgs/bag/image2.png)

Toevoegen aan eigen Scene/TileHandlerOm dit te laten werken in je eigen scene moeten we een aantal dingen kopieren.
Om te beginnen hebben we het Select Sub Objects script nodig die op het Buildings object staat in de TileHandler van de voorbeeld Scene.
Kopieer die dmv. rechtermuisklik, ‘Copy Component’, en vervolgens ‘Paste Component As New’ op je eigen Buildings object in je scene.
Op deze manier kopieer je ook de instellingen van het voorbeeld direct mee.

![img](./imgs/bag/image3.png)*Verander eventueel de Selection Vertex Color om een andere selectiekleur te gebruiken*

Kopieer dan de volgende objecten vanuit de voorbeeld Scene naar je eigen Scene:

**InputEvents -** Dit systeem zorgt er voor dat je muis klik acties worden verstuurd

**BAGBuildingDataLoader** - Dit systeem download de Pand BAG informatie

**BAGResidenceDataLoader** - Dit systeem download de adressen van een pand

**Canvas** - Dit Canvas bevat de voorbeeld interface met de twee panelen

**EventSystem** - Deze zorgt er voor dat het Canvas aanklikbaar is. Misschien heb je deze al in je eigen Scene. Dan kan je deze overslaan.

We moeten er ook nog voor zorgen dat het materiaal dat in je Scene wordt toegewezen aan de gebouwen ondersteuning heeft om de gebouwkleur te wijzigen. Stel daarom bij je Binary Mesh Layer van je gebouwen object bij Default Material List het Buildings_SelectionVertexColoring materiaal in.

![img](./imgs/bag/image4.png)

*Je kan een materiaal vanuit je Assets op het element slepen, of via het bolletje rechts opzoeken*
132 changes: 132 additions & 0 deletions docs/Beginnen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Beginnen met Netherlands3D in Unity

!!! warning

Dit deel van de documentatie is nog gebaseerd op een oudere versie van het project. We werken aan een nieuwe versie
die deze spoedig zal vervangen.

## Systeemeisen

Een laptop waarop je software mag installeren (nog) geen Apple en het liefst met een i5 CPU (of hoger)
en een externe GPU (grafische kaart).
Windows 10 of hoger (in ieder geval 64 bits).
Een losse muis om beter te kunnen navigeren.

## Git installeren

Zorg om te beginnen dat Git is geinstalleerd op het systeem. Dit maakt het mogelijk om pakketjes te installeren.

Git is te downloaden vanaf https://gitforwindows.org/

Installatie met de standaard opties is voldoende. Herstart je systeem na de installatie.

## Unity installeren

Download en installeer Unity3D via <https://unity.com/download>

Je download daarmee de 'Unity Hub'. Vanuit deze Hub kan je verschillende versies van Unity downloaden.

'Sign in' met een bestaand Unity account, of maak eerst een nieuw account aan via 'Create account' en doe dan 'Sign in'

Ga eventueel akkoord met het activeren van een 'FREE personal license'.

Kies in het 'Install Unity Editor' scherm rechtsonderin 'skip installation'. Wij willen namelijk een specifieke versie gaan installeren.

Installeer via 'Installs / Install Editor' de LTS (long term service) versie 2021.3.6f1

![image-20220509104007559](./imgs/beginnen/image0.png)

Maak na het installeren in de Hub een nieuw Unity project aan via 'Projects / New Project' en kies als template '3D Core'.

Kies een naam voor je project en de locatie op je computer

![image-20220509104007559](./imgs/beginnen/new_project.png)

Het project wordt vervolgens automatisch geopend in Unity.

## Netherlands3D packages beschikbaar maken

Met Netherlands3D worden alle packages gepubliceerd op [OpenUPM](https://openupm.com), een Unity Package
Registry voor Open Source packages.

OpenUPM raadt aan om hun CLI tool te gebruiken om packages mee te installeren, maar het is ook mogelijk om deze
als Scoped Registry toe te voegen middels de volgende stappen:


* open Edit/Project Settings/Package Manager.
* Voeg een nieuwe Scoped Registry toe, of bewerk de bestaande OpenUPM verwijzing.
```
Name: package.openupm.com
URL: https://package.openupm.com
Scope(s): eu.netherlands3d
```
* Klik op Save (of Apply)

Om een overzicht te zien van alle packages die je op deze manier kan installeren volg je deze stappen:

* Open de Package Manager
* In de dropdown `Packages: In Project`, selecteer `My Registries`

In dit overzicht staan alle packages die beschikbaar vanuit Netherlands3D, en andere Scopes mocht je
die ingesteld hebben staan.

## Netherlands3D opzetten

Open in Unity de package-manager (window package manager)

![](./imgs/beginnen/image1.png)

Klik op het + icoon in de linkerbovenhoek, kies voor "Add package from git URL", vul daar in "<https://github.com/Amsterdam/Netherlands3D.git?path=/Packages/Netherlands3D/>" en klik op "Add".

![](./imgs/beginnen/image2.png)

![](./imgs/beginnen/image3.png)

Unity gaat nu even iets voor zichzelf doen.

Er komt een melding om de editor opnieuw te starten, klik op Yes

![](./imgs/beginnen/editor_herstart.png)



Unity herstart nu en laat daarna, als alles goed gegaan is, de package Netherlands3D zien in de package-manager.

![](./imgs/beginnen/image4.png)

Onder het kopje "Samples" staat een lijst met pakketjes, dit zijn de modules in netherlands3D die je kunt toevoegen aan je eigen project.

![](./imgs/beginnen/image5.png)

We beginnen met het TileSystem. Dit is de module die het 3D-model van de stad laat zien.
Klik hiervoor op het knopje "Import" naast "TileSystem".

Unity heeft nu in de Assets map een mapje "Samples" aangemaakt met daarin een mapje "Netherlands3D" en daarin een mapje met een
versienummer. In dit mapje staat alles wat je nodig hebt om het 3D-model van de stad in het project te laten zien.

Nu maken we in de Assets map een nieuwe map aan met de naam "RenderPipeline" (let op de hoofdletters).

![](./imgs/beginnen/create_folder.png)

![](./imgs/beginnen/image8.png)

Geef een rechter-muisklik op deze nieuwe map en kies via create > rendering > voor URP Asset (with Universal Renderer).

![](./imgs/beginnen/image9.png)

Unity geeft je nu de optie om de naam van dit nieuwe bestand te wijzigen, maar dat is niet nodig. Geef een enter om de voorgestelde naam te accepteren. Direct na het accepteren van de bestandnaam maakt Unity nog een tweede bestand aan.

![](./imgs/beginnen/image10.png)

De laatste handeling die we moeten doen is aan Unity vertellen dat deze, zojuist gemaakt bestandjes, gebruikt moeten worden door de Universal
Render Pipeline. Dit doen we in de project Settings ( Edit project Settings. In het project settings menu kiezen we in de linker kolom voor "Graphics".)

![](./imgs/beginnen/image11.png)

Boven in het Graphicsmenu klikken we op het rondje naast het invulveld bij Scriptable Render Pipeline Settings.

![](./imgs/beginnen/image12.png)

In het menuutje dat opent dubbelklikken we op het bestandje dat we zojuist hebben aangemaakt.

![](./imgs/beginnen/image13.png)
63 changes: 63 additions & 0 deletions docs/Camera.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Bestuurbare Camera

!!! warning

Dit deel van de documentatie is nog gebaseerd op een oudere versie van het project. We werken aan een nieuwe versie
die deze spoedig zal vervangen.

Om door de wereld te navigeren hebben we een camera nodig die we zelf kunnen besturen.
Hier hebben we natuurlijk een pakketje voor klaar staan in Netherlands3D.

Controleer eerst of je Unity project juist is ingesteld om met invoer om te gaan.

Onder ‘Edit/Project Settings/Player/Other options’ moet ‘Active input handling’ ingesteld staan op ‘Both’.

Het is mogelijk dat Unity opnieuw moet starten na het toepassen.

![img](./imgs/camera/image1.png)



Importeer nu het Netherlands3D voorbeeld ‘Cameras’ uit de Package Manager:

![img](./imgs/camera/image2.png)

**Je kunt de Package Manager boven in Unity vinden onder ‘Window/Package Manager’*

Verwijder eerst een eventuele standaard camera uit je eigen scene. Vervolgens kan je FreeCamera en de CameraInputSystemProvider kopieren naar je eigen scene om die camera te gebruiken.

![img](./imgs/camera/image3.png)

Druk vervolgens op **Play** om je scene met de nieuwe camera te testen.



## Camera bediening

### Muis

- **Camera verslepen**: Klik en slepen Linkermuisknop
- **In- en uitzoomen**: Scrollen
- **Draai om punt**: Muiswiel indrukken of Alt + Linkermuisknop
- **Rondkijken**: Ctrl+Linkermuisknop + slepen

### Toetsenbord

- **W of pijl omhoog**: Naar voren schuiven
- **S of pijl omlaag**: Naar achteren schuiven

- **A of pijl naar links**: Naar links schuiven
- **D of pijl naar rechts**: Naar rechts schuiven
- **Q**: Naar links draaien
- **E**: Naar rechts draaien
- **R**: Omhoog draaien
- **F**: Omlaag draaien
- **PageUp**: Camera omhoog bewegen
- **PageDown**: Camera omlaag bewegen

### Gamepad

- **Linker Stick**: Camera in richting van stick bewegen
- **Rechts Stick**: Camera draaien
- **Linker Stick indrukken**: Omhoog bewegen
- **Rechter Stick indrukken**: Omlaag bewegen
Loading

0 comments on commit eacae10

Please sign in to comment.