úloha 058: Kuličky - jednoduchá 3D fyzikální simulace

Marbles demo

Úkolem je implementovat jednoduchou fyzikální simulaci ve 3D. Kuličky pohybující se v homogenním gravitačním poli a odrážející se od průhledných stěn a od sebe navzájem.

Koncepce: bude potřeba promyslet a implementovat následující komponenty:

Základem poslouží projekt 058marbles z repository grcis. Je připravena aplikace se základem pro realtime simulaci na CPU a zobrazování pomocí OpenGL.
Pro implementaci potřebných algoritmů budete modifikovat předem založené třídy (všechny naleznete ve zdrojovém souboru Marbles.cs):

Náměty: o dokonale pružném rázu nebo nepružném rázu se můžete dočíst v každé učebnici mechaniky nebo např. na Wikipedii (sledujte i odkazy). Základy reakce na náraz jsou např. v tomto článečku. Předpokládá se, že si o problematice sami něco nastudujete!

Technicky: fyzikální simulace světa se spouští v Idle() proceduře, reakce na události uživatele a zobrazování v klasickém frameworku WinForms (překreslování - reakce na pravidelně vyvolávanou událost Paint()).
Pohyb kamery: podobně jako v úloze 056 je možné naprogramovat nějaké chytřejší hýbání kamerou. Modifikovaný soubor Avatar.cs byl též přidán do projektu 058marbles, můžete modifikovat a odevzdat i jej. Pozor, některé metody a koncepty byly mírně pozměněny proti návodu.

Bonusy: dynamicky přidávané kuličky (mohou naopak i zanikat), složitější geometrie kolizní scény, otáčení kuliček a tření, realističtější nedokonale-pružný ráz, interaktivní prohlížení simulace (otáčení kamery), alternativní zajímavé gravitační pole (a la "Angry Birds Space")..

TERMÍN: do 28. 2. 2014

BODY: 10 až 20 bodů

PROJEKT: 058marbles

ZDROJOVÝ SOUBOR: Marbles.cs, případně též Avatar.cs


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

Valid XHTML 1.1 Copyright (C) 2012-2013 J.Pelikán, last change: $Date: 2014-10-03 15:44:39 +0200 (Fri, 03 Oct 2014) $
Send comments/requests to pepca.at.cgg.mff.cuni.cz