úloha 018: Ray-casting - doplnění množinových operací

Úkolem je doplnit implementaci jednoduchého paprskového zobrazovače (Ray-casting) o množinové operace při výpočtu průsečíků paprsku se scénou. K dispozici máte kostru ray-castingu, ve které však mimo jiné chybí výpočet množinových operací na paprsku. Vaším úkolem je množinové operace doimplementovat.

Základem poslouží projekt 018raycasting z repository grcis. Je připravena aplikace, která v jednoduchém okně zobrazuje obrázek spočítaný ray-castingem. Definice scény je v kódu, tu budete muset pro podrobné testování Vaší implementace také měnit.
Pro doplnění Vaší implementace byl založen zdrojový soubor RayCasting.cs, do něj budete psát všechny požadované doplňky a nakonec mi ho odevzdáte.

Ray-Casting v C#: základní definice interface a tříd pro paprskové zobrazovací metody najdete v adresáři common. Abstraktnější definice (interface, default třídy) jsou obsaženy ve zdrojovém souboru RayCastingCommon.cs, jednoduché varianty implementací pak v souboru RayCastingBasic.cs (Váš kód bude některé tyto třídy doplňovat, tyto jsou zatím označeny partial).

Jednotlivé koncepty: CSG scéna je definována pomocí interface a tříd:
Základní data a algoritmy paprskového zobrazování:

Co modifikovat: soubor RayCasting.cs obsahuje definici třídy CSGInnerNode jako potomka InnerNode. Vaším úkolem je korektně implementovat metodu Intersect() respektující nastavenou množinovou operaci. Je rovněž třeba modifikovat definici scény (konstruktor RayScene), aby se množinové operace uplatnily a byly na obrázku vidět. Navrhnete-li nějakou zajímavější a komplikovanější scénu, dostanete body navíc.

TERMÍN: do 25. 3. 2012

BODY: 15 až 25 bodů (více bodů za hezčí scénu)

PROJEKT: 018raycasting

ZDROJOVÝ SOUBOR: RayCasting.cs


[Cvičení NPGR004]  [Návody k zápočtům v C#]  [Přednášky a semináře]  [Odkazy na demonstrace]

Valid XHTML 1.1 Copyright (C) 2011-2012 J.Pelikán, last change: $Date: 2013-11-22 23:48:14 +0100 (Fri, 22 Nov 2013) $
Send comments/requests to pepca.at.cgg.mff.cuni.cz