\r\n Amsterdam heeft binnen het programma T3D (van VNG) in een aantal experimenten beproefd wat de randvoorwaarden en eisen van 3D data zijn om deze niet alleen te kunnen gebruiken in verschillende toepassingen maar ook te kunnen inwinnen en registreren. \r\nDeze projectpagina geeft toegang naar de ontwikkelde proefopstellingen en de documentatie daarvan. \r\n
\r\n\r\n
\r\n
{{ cityjson }}\r\n \r\n
{{userfeedback}}\r\n
\r\nBij het maken van onze testomgeving zijn we begonnen met een 3D wereld waarbij we de Dom toren in Utrecht als middenpunt hadden gebruikt. \r\nWe zijn begonnen te ontwikkelen met een test adres in Utrecht, Stadhouderslaan 79. \r\nNa presentatie van de sprint resultaten in de tweewekelijks sprint review kregen we vaak als feedback de vraag of we ook andere steden beschikbaar zouden kunnen stellen. \r\nWe hebben toen in de sprint rond de jaarwisseling opgenomen dat we alle gebouwen van Nederland zouden genereren.\r\nDit is inmiddels voltooid en nu kan elk adres ingevoerd worden.\r\n
\r\n\r\n\r\nDit resulteerde in veel nieuwe feedback van meerdere adressen waar niet alles lekker in loopt. \r\nEen van de problemen is dat bij adressen die verder van het middenpunt zijn de rendering wat gaat bibberen. \r\nDit heeft te maken met floating point precision\r\n
\r\n\r\n\r\nEen float is een getal met een precisie achter de komma. Unity gebruikt floats voor de positie van 3D objecten. In onze 3D omgeving is elke meter is een eenheid dus het getal voor de komma.\r\nDus een object met positie 10.1 staat dan op 10 meter en 10 centimeter. Een float is verdeeld in eenheden (meter) en de precisie (centimers en milimeters)\r\nAls je dus een positie heb met een groot aantal eenheden heb je minder precisie. De applicatie zal bij berekingen dan gaan afronden in de precisie die nog over is en dit resulteert dan\r\nin een bibberend beeld vooral als je de camera of objecten gaat verplaatsen.\r\n
\r\n\r\n\r\nNa ongeveer 5000 meter gaat dit problemen geven.\r\nIn onderstaand voorbeeld zie je een adres in Hengelo. \r\nZoals je kan zien gaat de positie ver over de limiet en ontstaat er een bibberend beeld.\r\nUnity, onze ontwikkeltool, geeft het het zelfs al aan dat een 3D object te ver weg van middenpunt staat, en dit moet dus opgelost worden.\r\n
\r\n\r\n\r\n
\r\n
\r\nEen oplossing is om het middenpunt te verplaatsen naar de positie van het opgevraagde adres.\r\n
\r\n\r\nDit bleek in code een vrij eenvoudige oplossing te zijn. \r\nDit komt omdat we gebruik maken van the Netherlands3D library. In deze library zitten functies om coordinaten te converteren.
\r\n\r\nBij het converteren naar de Unity positie wordt er gebruik gemaakt van een instelbaare configuratie.
\r\nIn dit geval was het voldoende om bij het starten van de applicatie als eerste deze configuratie te doen.
\r\n\r\n
Het resultaat is hieronder zichtbaar, geen floating point precision problemen meer en een stabiel beeld!
\r\n\r\nActiveer je T3D beheer pagina met de code die je gekregen hebt
\r\n\r\n\r\n
\r\n