Ro/Haskell/OpenGL

From HaskellWiki
< Ro/Haskell
Revision as of 20:42, 20 December 2009 by Ha$kell (talk | contribs) (adding links)
Jump to navigation Jump to search

Open GL Resources (ro)

. Pentru cei care nu au curajul sa se apuce de OpenGL in Haskell

cat_umbrella.png Descarcati si jucati Raincat http://raincat.bysusanlin.com/

Uitati-va nitel si prin arhiva windows ca sa vedeti din ce se compune o astfel de aplicatie.

Download: Raincat 4 Windows: http://stage.gamecreation.org/raincat/raincat.win32.zip

Download: Raincat 4 Linux: http://stage.gamecreation.org/raincat/raincat.linux.tar.gz

Sursele in Haskell: http://www.gamecreation.org/file_download/18/raincat-source.zip

. Cum sa va pregatiti de lucru

Instalati The Haskell Platform pe Windows. http://hackage.haskell.org/platform/ Sau varianta 2009.2.0.2 direct de aici http://hackage.haskell.org/platform/2009.2.0.2/HaskellPlatform-2009.2.0.2-setup.exe

. Un prim exemplu luati dintre exemplele din RedBook

Ati putea incepe cu torul Torus.hs

http://darcs.haskell.org/packages/GLUT/examples/RedBook/Torus.hs si compilati-l folosind comanda:

ghc --make Torus.hs -package GLUT -o Torus.exe

Alternativ, puteti da click pe fisierul .hs iar la prompterul GHCI puteti scrie main sau main()

Mariti fereastra aplicatiei si "rotiti" torul in jurul diverselor axe cu tastele "x" si "y". Ce alte taste mai puteti folosi...scrie in codul sursa.

Nu uitati sa copiati: glut32.dll -ul in directorul proiectului. Unde il gasiti ? Nu stiti ? Reveniti la punctul 1.

.Pregatiti-va sa cititi o carte despre OpenGL

stiind ca el

- este doar un mediu grafic pentru afisare 3D, gestiunea datelor despre obiectele din spatiul 3D ramane programatorului

- trebuie sa-i furnizati - ca unui joc - functii pentru ecran si tastatura si apoi sa activati motorul grafic

- are mai multe moduri de lucru: Display, Matrix etc

- totdeauna se recomanda sa definiti un corp articulat, de exemplu un brat de robot , intr-un reper de coordonate plasat in punctul de articulatie

- transformarile geometrice - translatii, rotatii - se exprima prin produse de matrice

- matricea identitate este element neutru la inmultire

- obtineti inversa unei succcesiuni de transformari calculand produsul inverselor matricelor transformarilor

- functiile de nivel superior din Haskell rezolva superb nevoia de a aplica transformari pe o intreaga scena alcatuita din obiectel sau pe toate triunghiurile unei suprafete sau pe toate colturile unui obiect din scena... asa ca: map, fold foldl foldr si altele sunt numai bune de folosit.

La pagina despre Programare functionala gasiti un celebru articol despre fold-uri.

.Mini Bibliografie On Line

OpenGLTutorial1 http://www.haskell.org/haskellwiki/OpenGLTutorial1

HOpenGL - 3D Graphics with Haskell http://public.beuth-hochschule.de/~panitz/hopengl/skript.html

OpenGL in Haskell http://www.haskell.org/haskellwiki/Opengl

Exemplele din RedBook http://darcs.haskell.org/packages/GLUT/examples/RedBook/

Si ordinea lor in carte http://darcs.haskell.org/packages/GLUT/examples/RedBook/00-README

Alte biblioteci grafice: SDL, WxWidgets http://www.haskell.org/haskellwiki/Cookbook/Graphical_user_interfaces

Beautifull Code. De altfel imaginile generate merita aprecierea de "beautifull". <Download> al acestui volum de grafica in Open GL si Haskell. Link extern ! Cautati-o la [Biblioteca] sau la pagina [Ce merita sa cititi].

. Intrebari despre OpenGL

In ce ordine sa studiem exemplele din RedBook ? R: In ordinea lor din carte pe care o gasiti aici. http://darcs.haskell.org/packages/GLUT/examples/RedBook/00-README

. Extra lectures / Lecturi suplimentare

Lumea se ocupa de OpenGL in Haskell intuind potentialul combinatiei. Bloguri, articole, exemple, idei ... cautati printre paginile indexate aici: http://swik.net/Haskell+3D