Grafica (C.d.S. LM Informatica e Ingegneria Informatica) A.A.2015/16

Frequently Asked Questions"

  • Su che piattaforma si devono svolgere gli esercizi?

    Gli esercizi possono essere svolti in qualsiasi ambiente, Linux, Windows o Mac OS X e su qualsiasi architettura (fisso, portatile, notebook, ecc.). Se si prevede di consegnare i propri esercizi il docente li vuole ricevere funzionanti per ambiente Linux.

  • E il progetto finale?

    Anche il progetto finale dovra' essere funzionante per ambiente Linux, ma precise specifiche verranno date a tempo debito.

  • Come vanno consegnati gli esercizi assegnati?

    Per ogni esercizio si deve consegnare un archivio .tgz (tarato e zippato) contenente una cartella con il nome dell'esercizio a sua volta contenente i sorgenti, il Makefile per compilare e un file README di spiega. Affinche' il docente lo possa visionare velocemente e' necessario che sia tutto autocontenuto.

  • E' prevista una deadline per la consegna degli esercizi?

    Non c'e' una deadline, ma vanno consegnati di volta in volta che vengono assegnati; questo per imparare mentre si frequenta, per chi vuole stare in pari. Altrimenti si puo' consegnare tutto alla fine del corso o prima dell'esame.

  • Sto usando una macchina virtuale con Linux, ho compilato i codici messi a disposizione correttamente, quando eseguo ottengo il messaggio: "no video devices available"

    Sulla homepage delle SDL2, nelle FAQs riguardanti Linux, spiega cosa fare in caso di errore del tipo rilevato.
    Nell'ordine: provare
    DISPLAY=:0 ; export DISPLAY
    se risolve puo' mettere definitivamente nel file .profile questo set della variabile d'ambiente DISPLAY, cosi' ogni volta che parte verra' settata.
    Se continua a non funzionare, provare con xhost+localhost: (The xhost program is used to add and delete host names or user names to the list allowed to make connections to the X server.)
    recuperi l'indirizzo del suo localhost con
    cat /etc/hosts
    quindi
    xhost seguito dall'indirizzo del localhost
    Se ancora non funziona, non saprei cosa altro fare, visto che la terza cosa suggerita nelle FAQs e cioe' di installare X development libraries perche' non installate e' praticamente impossibile se si sono installate le SDL2 con apt, che si porta dietro i pacchetti che servono.

  • La matrice A di trasformazione di vista nella slide 22 di "Trasformazioni di vista", la matrice che incorpora il view-up vector, e' corretta? Non mi torna che moltiplicandola per la matrice B della stessa slide venga l'identita'.

    La matrice A e' corretta; che B*A=I deriva dal fatto che i vettori xe, ye e ze sono fra loro ortogonali per cui facendo riga per colonna, quando si moltiplicano per se stessi viene 1 (sono vettori normalizzati) e quando si moltiplica uno per un altro viene 0 (perche' ortogonali). L'ultima riga della matrice B non e' altro che -D*ze (vettore parallelo a ze, ma di segno opposto), per cui nel prodotto 4^a riga di B per colonne di A si ottiene l'ultima riga della matrice identita'.

  • Con riferimento al codice persp_cube_sdl.c, come e' definita inizialmente la camera?

    La camera e' definita in modo automatico a partire dalla geometria in define_object in modo che sia possibile vedere tutto; piu' precisamente nella function define_view viene determinata la piu' piccola sfera contenente la geometria (centro [csx,csy,csz] e raggio r), quindi definendo il piano di proiezione ad una distanza di=D dalla camera (posizione camera in coord. sferiche [D,teta,fi]), cioe' si assume che il piano di proiezione sia ortogonale alla direzione di vista e passi per l'origine del sistema di riferimento del mondo, sempre nella define_view si calcola s, semilato della window in modo che, come detto, attraverso quella window sia visibile tutta la geometria definita. L'istrizione alpha=atan(S/D) permette, a ritroso, di calcolare la semiampiezza della piramide di vista compatibile con quella window. Nel seguito del codice, agendo sui bottoni ZoomI e ZoomO si modifica l'angolo alpha e con l'istruzione s=D*tan(alpha), alla dritta, il semilato della wiondow.