Thursday, November 13, 2008

Update

Sinds de presentatie heb ik de volgende dingen gedaan:

Beter gezocht naar gelijkaardige software.
Een deel van de gevonden projecten zijn Brown Exploratories, Graphics Teaching Tool, Torsten Ullrichs applets, AlgoViz, Mukundans applets en CG educational Materials Source. In de projecten die ik gevonden heb is er nergens iets te vinden dat nog maar lijkt op het interactief visualiseren van raytrace-algoritmes. Deze projecten zijn daarentegen wel een goede bron van inspiratie en literatuur wat didactische software betreft. Ik heb nog niet genoeg papers kunnen lezen om te oordelen of ik zulke literatuur ook echt kan gebruiken voor deze thesis.

Use cases opgesteld
.
Ik heb in grote lijnen uitgewerkt wat het programma allemaal zou moeten kunnen a.d.h.v. use cases. Deze komen in grote lijnen neer op de volgende drie:
  • Free mode: Een bepaalde scene inladen, een algoritme en bijhorende parameters kiezen, renderen en uiteindelijk het algoritme doorlopen op debugwijze. (De gecreëerde renderlog kan opgeslagen worden om later tijd uit te sparen.)
  • Record mode: Idem free mode, maar het doorlopen van het algoritme wordt bijgehouden. Er kan ook bij elke stap commentaar (of opdrachtjes) geschreven worden. Dit geheel (scene, algoritme, parameters, render-log, debug-stappen, commentaar) kan dan opgeslagen worden als scenario.
  • Play mode: Het afspelen van een scenario zoals opgenomen in Record-mode.
In alle modes is het mogelijk interessante statistieken op te vragen.

Gebrainstormd over mogelijke problemen om rekening met te houden tijdens het ontwerp
.
Dit werd een behoorlijke lijst met nuttige ideëen om rekening met te houden.

Begonnen aan een klassediagram en zoeken naar libraries.

Ik heb het ontwerp dan in verschillende problemen gesplitst. Eerst ben ik op zoek gegaan naar een library die mij kan helpen de algoritmes voor te stellen. Abstract syntax trees leken daar wel interessant voor. Die stellen code (in eenders welke taal) voor als een boom van syntax elementen. De betere libraries die AST's kunnen opbouwen, implementeren ook het Visitor pattern. Dat laat mij toe om visitors te maken voor de textuele voorstelling in de gui en voor de visualisatie van bepaalde elementen in de AST.
Andere grote deelproblemen zijn het renderen (loggen van een raytrace-algoritme), het terug inlezen van die log en het voorstellen van algoritmestappen.

No comments: