BrainStorm Jaarproject 1e licentie informatica Universiteit Antwerpen 2004-2005 Promotor: Prof. dr. ir. Tom Dhaene Begeleider: Wouter Hendrickx Bram Derkinderen.

Slides:



Advertisements
Verwante presentaties
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Advertisements

Word 2003 Tips en trucs Door Johan Lammers.
Autisme en Mindmap Thuis en op School
Lees- en Taalproblemen
Probleem…… Kast vol met DVD films….. En een kapotte DVD speler.
Beheer en ordenen van digitale documenten 2008
Een manier om problemen aan te pakken
Databank van een restaurant Download op Twee tabellen: Klanten: Alle klanten die minstens.
Hoog Leer noten lezen! Deel 1 Laag A - B - C - D - E - F - G
Wouter van der Zwan Lezing Draaitabellen Wouter van der Zwan
Base: bewerkingen 2 soorten - Oplopend- Aflopend.
Beeldende aspecten Vorm
uit: Wiskunde in beweging – Theo de Haan
Project D2: Kempenland Sander Verkerk Christian Vleugels
De grafiek van een lineair verband is ALTIJD een rechte lijn.
Lineaire vergelijkingen
Assenstelsels en het plotten van Functies in LOGO
Computers en Visueel Gehandicapten
Java patterns Introductie tot GoF patterns in Java.
ILLUSTRATOR CURSUS DEEL 3.
Numerieke Natuurkunde
Nieuw in LIPS VLUG 2 26 juni 2006 Kristof Brams. Overzicht Vernieuwde editor Printervriendelijke pagina Statistieken Variabele fontgrootte Grootte van.
1 Complexiteit Bij motion planning is er sprake van drie typen van complexiteit –Complexiteit van de obstakels (aantal, aantal hoekpunten, algebraische.
Optuigen van datastructuren
Spatial subgroup mining
Bluetooth Communicatie tussen computer en Brick Computer zet de connectie op, Brick wacht Enkel communicatie van de Brick naar de computer Lejos API: NXTConnecion.
Linkbuilding In de praktijk…. Waarom linkbuilding? Geldt als een stem; Noodzakelijk voor zoekmachine optimalisatie (Pagerank)! Belangrijk om te onthouden:
Functioneel Ontwerp.
havo A Samenvatting Hoofdstuk 3
Open Dag Informatica (28 nov 2003) 3D Graphics Workshop Dr. Erwin M. Bakker Ing. Ernst Lindoorn Leiden Institute of Advanced Computer Science Leiden University.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
Hulpmiddelen bij presenteren. Controleer van tevoren altijd of de apparatuur die je wilt gebruiken aanwezig is, of je er gebruik van mag maken en of je.
Versie 1: 1306; v2: 1308 ….
Starten met PHP Dynamischer bouwen. PHP is een een scripttaal waarmee de server pagina’s in elkaar kunt laten zetten. Het verschil met HTML: Een php pagina.
Ruimte Opdracht 4.
Schijvenbeheer Disk Management t/m
Doelstellingen inrichten in MS Dynamics CRM BEKE LUKAS.
havo B Samenvatting Hoofdstuk 1
Planning With Nonholonomic Constraints By Jeroen Resoort & Ronald Treur.
Hoofdstuk 6 Allerlei verbanden.
Welkom bij de cursus SketchUp 2014
Introductie tot GoF patterns in Java
Ordenen van gegevens Inleiding informatiesystemen © Sander Cox.
Cockup's - DAT ● DAT formaat bevat geen connectieinformatie => LCDManager. ● quads/triangles staan niet altijd in dezelfde volgorde opgegeven. ● backfacelines.
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
?.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:
hoe kun je krachten grafisch ontbinden?
Wat is evenwicht? hoe kun je met krachten tekenen en rekenen?
ANALYSE 3 INFANL01-3 WEEK 6 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Subqueries met correlaties ▸ Subqueries zonder correlaties ▸ Views ▸
Workshop Portret Fotografie. Tips voor betere portretfoto’s 1. Stel scherp op de ogen 2. Gebruik een grote diafragma opening 3. Fotografeer op ooghoogte.
COMPUTERLES 1 Introductie. Inhoud ■Inleiding ■Wat is een computer? ■Waarom gebruiken we Windows?
Woordjes leren.
Powerpoint presentatie.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
GUI Graphical User Inferface. Window Definieer object(en) create voeg toe aan Gui update Gui draw Gui.
Zelf routes maken Hoe je eenvoudig zelf een route kunt maken en op je navigatiesysteem kunt zetten.
Gevorderde EV3 PROGRAMMEER LES
Het postkantoor van windows
Directe belichting in ray tracing
INGEBRUIKNAME & TESTEN
COINS Navigator 2.
De grafiek van een lineair verband is ALTIJD een rechte lijn.
presenteren van gegevens
havo B Samenvatting Hoofdstuk 1
COINS Navigator 2.
Datamodelleren FCO-IM methode.
Leren programmeren met Scratch
Transcript van de presentatie:

BrainStorm Jaarproject 1e licentie informatica Universiteit Antwerpen Promotor: Prof. dr. ir. Tom Dhaene Begeleider: Wouter Hendrickx Bram Derkinderen Gert Heiremans Wim van Aarle Jan Vlegels

Opgave Visualisatie van modellen opgebouwd uit legoblokken. Onderzoek naar de mogelijkheden met betrekking tot realtime animatie van deze modellen.

Overzicht

DatParser Zorgt voor de omzetting van een.ldr of.dat file naar een goede brickstructuur. Voegt voor elke brick de connectoren toe die gevonden worden in de database. Zorgt ervoor dat de kleuren van de lijnen en vlakken correct zijn. Optimalisatie: elk blokje wordt slechts 1 maal geparsed en wordt nadien bewaard in een map

LCDManager (1) Beheert de Ldraw Connection Database –De ingegeven lijnstructuur van bepaalde connectorTypes. –Een weloverwogen selectie van bricks met hun connectoren samen met de relatieve positie en richting van de connectoren. –Een lijst van connectorTypes die op elkaar passen.

LCDManager (2) Maakt mogelijk om de lijnstuctuur van een bepaald connectorType in te geven met behulp van het “klikalgoritme” en om deze lijnstructuur op te slaan. Zoekt aan de hand van de manueel ingegeven lijnstructuren van de connectoren, deze connectoren terug in een reeks gegeven bricks.

LCDManager (3) Het procede dat gebruikt wordt om de connectoren in de bricks terug te vinden werkt goed, maar er zijn ook nadelen: –Vraagt veel rekentijd. –Er zijn in Lego enorm veel connectoren die zeer weinig voorkomen, en dus is het niet de moeite om de lijnen secuur te gaan aanklikken en deze connector in alle bricks te gaan zoeken.

Ldraw Connection Database

DatLinker (1) Sorteert de Bricks van de geparste Bricklijst in containers: de BigBricks. Alle Bricks in een zelfde BigBrick vormen samen een geheel van vast geconnecteerde Bricks. De BigBricks in een consistent model zijn onderling verbonden door middel van LooseConnections.

DatLinker (2) Checkt met behulp van de database, gegeneerd door LCDManager, of er tussen 2 Bricks een connectie bestaat, hetzij een vaste, hetzij een losse connectie. Op basis van het resultaat van bovenstaande checks verdeelt het DatLinker-algoritme de Bricks over de correcte BigBricks.

DatLinker (3) Probleem 1: Vele queries op de database zijn noodzakelijk, met zéér zware gevolgen voor de prestaties. Enkele optimalisaties werden toegepast. Probleem 2: Doordat de lijst met geparste Bricks 1 voor 1 doorlopen wordt moet er gemerged worden. Overhead is door optimalisaties grotendeels weggewerkt.

Abstract Brick Structure (ABS) ModelManager: voorziet alle functies nodig om een model te parsen en te linken. Bevat tevens verwijzingen naar de DatParser en de DatLinker. Model: brengt alle gegenereerde informatie over een model bijeen. De lijst met geparste Bricks, de lijst met BigBricks en de lijst met motoren.

Abstract Brick Structure (ABS) BigBrick: een container van Bricks die een vast geconnecteerd geheel vormen. BigBricks zijn onderling verbonden door LooseConnections. Brick: de basisentiteit van Brainstorm. Alle informatie over een enkele legoblok wordt erin opgeslagen. LooseConnection: Informatie over de losse connecties tussen 2 BigBricks.

Animator (1) Animatie van de modellen met behulp van Open Dynamics Engine. Redenen: –De structuur gelijkt erg op onze geavanceerde brickstructuur. –Leek op het eerste gezicht duidelijk gedocumenteerd. –Er zijn enkele mooie voorbeelden van programma’s die ODE gebruiken.

Animator (2) We werken tijdens de animatie met relatieve coordinaten: we houden steeds de originele positie van de bricks bij en laten ODE een relatieve positie berekenen bij elke animatiestap. Dit voorkomt het exploderen van afrondingsfouten.

Animator - Errorcorrectie We passen momenteel een zeer grote errorcorrectie toe, namelijk 0,9: –Dit is nodig om alle afrondingsfouten uit ODE te kunnen opvangen. –Dit levert momenteel nergens problemen op in verband met opgeslokte animatiestappen.

Visualisatie OpenGL –windowmanager: GLUT Optimalisaties –gl*Pointers –Objecten met relatieve posities

Visualisatie (2) GUI –GlUI –nieuwe elementen + texturesupport Menu Console ProgressBar PopupBox...

Link met animatie Na elke update van het de animatiemodule –van elke BigBrick de positie t en rotatie r (quaternion) opvragen uit ODE Bij elke frame –glRotate(r) en glTranslate(t) voor het tekenen van de BigBrick –glRotate(-r) en glTranslate(-t) na het tekenen van de BigBrick

Link met LCDManager 3D picking –vraag diepte-waarde uit de buffer van OpenGL op een bepaald punt –onprojecteer punt naar x,y,z waarde –controleer of het punt in een face zit –zoja: bereken zwaartepunt van de face en selecteer de gepaste rechte –op vraag van de gebruiker alle data doorsturen naar de LCDManager

Problemen - DAT DAT formaat bevat geen connectieinformatie => LCDManager. Inconsistentie bij het opgeven van vertices. Backfacelines zijn ongeschikt voor real- time gebruik. Floats soms in wetenschappelijke notatie opgegeven, soms in fixed-point notatie.

Problemen - LCDmanager Er bestaan zeer veel speciale Legoblokjes => veel moeten extra hard coden in de LCDManager. LCDManager is zeer rekenintesief. Duurt enkele dagen om de 96 blokjes, die momenteel ondersteund worden, op te nemen in de database. SQLite: ondersteunt enkele features niet waardoor query's opstellen en debuggen een tijdrovende zaak wordt.

Problemen - ODE Motoren in ODE staan in de doc's, maar blijken niet te werken op de manier zoals wij ze nodig hebben –alternatieve oplossingen bestaan, maar staan slecht gedocumenteerd Doch: nog altijd beter dan alles zelf te schrijven –andere animatielibrary had misschien beter geweest, maar dit bleek niet uit de documentatie en de voorbeelden van ODE

Toekomstbeeld LCDManager optimaliseren door opgave van de te zoeken connectoren. LCD uitbreiden met nieuwe blokken en connectoren. Gelinkte modellen op schijf opslaan. MLCad verbeteren aan de hand van de Ldraw Connection Database.

Bram Derkinderen Gert Heiremans Wim van Aarle Jan Vlegels Creators: