Laboratorio di Grafica Interattiva A.A. 2002-3

Problema e soluzione in esercizio 6

Nelle dispense relative alla selezione di oggetti (ved. materiale per esercizio 6) c'era un errore riguardo a quando il punto in cui clicco con il mouse contiene piu' oggetti (di cui solo uno e' visibile: quello che copre gli altri).
In questo caso il selection buffer registra hit per tutti gli oggetti, e bisogna andare a scegliere quello con zmin minima.
Nella prima versione delle dispense si diceva - sbagliato - che solo l'oggetto visibile generava hit.
La versione attuale delle dispense e' stata corretta.

Il problema che avevo segnalato in precedenza (che i valori di zmin e zmax nel selection buffer risultavano sempre riempiti con lo stesso valore per qualsiasi oggetto cliccato) e' stato cosi' sfatato:

Potete scaricare l'esempio es_pick.c con la conversione fatta nel modo giusto, funzionante in laboratorio.

Il programma disegna tre rettangoli a tre quote z diverse. Gli ho fatto stampare i vertici di ciascun rettangolo proiettati nella viewport e si vede che le z assegnate nello z buffer ai tre rettangoli sono rispettivamente 0.166667, 0.5 e 0.833333.
Poi, al click del mouse, stampa tutti gli hit. Per ogni hit stampa zmin e zmax come risultano nello z buffer, da cui si vede che ai tre rettangoli sono attributite z diverse.