ho bisogno di disegnare solo i modelli 3D visibili all'interno della visuale. La mia idea era di controllare l'angolazione della retta che congiunge l'oggetto al punto visivo e confrontarla con l'angolo del campo visivo, ma la visuale ruota in tutte le direzioni attorno a un punto fisso. Avete qualche idea?
le dimensioni della visuale si adattano allo schermo, l'angolo del campo visivo è 45 ma può variare, nonchè l'angolazione della visuale.
Inside view 3D?
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: Inside view 3D?
La cosa piu semplice normalmente sarebbe calcolare il bounding box dell'oggetto e moltiplicare i vertici del BBox con la matrice di proiezione... cosa impossibile da fare con game maker ovviamente visto che on ti danno i valori della matrice
Comunque la soluzione dovrà essere simile, praticamente stai in un punto fisso, l'angolazione verso l'alto per semplicità non la consideriamo.
Guardiamo quindi tutto in uno spazio 2d per semplicità.
Consideriamo quindi solo l'angolazione in base all'altezza quindi dobbiamo calcolare la direzione dei bordi del cono della telecamera.
Non è molto complicato, prima di tutto bisogna trovare la direzione della telecamera(point_direction con posizione e direzione della camera) poi bisogna aggiungere un determinato angolo. L'angolo 45° viene considerato per "l'altezza" dello schermo quindi basta fare sin(45) e moltiplicarlo per il ratio di proporzione dello schermo. A questo punto tramite questo valore e cos(45) dovrai trovarti il vero angolo in larghezza(un po di trigonometria, ora non mi viene bene in mente il calcolo esatto). A quel punto basta guardare se il bounding box dell'oggetto 3d sta nel cono di proiezione usando questo angolo e la direzione della camera.
Comunque la soluzione dovrà essere simile, praticamente stai in un punto fisso, l'angolazione verso l'alto per semplicità non la consideriamo.
Guardiamo quindi tutto in uno spazio 2d per semplicità.
Consideriamo quindi solo l'angolazione in base all'altezza quindi dobbiamo calcolare la direzione dei bordi del cono della telecamera.
Non è molto complicato, prima di tutto bisogna trovare la direzione della telecamera(point_direction con posizione e direzione della camera) poi bisogna aggiungere un determinato angolo. L'angolo 45° viene considerato per "l'altezza" dello schermo quindi basta fare sin(45) e moltiplicarlo per il ratio di proporzione dello schermo. A questo punto tramite questo valore e cos(45) dovrai trovarti il vero angolo in larghezza(un po di trigonometria, ora non mi viene bene in mente il calcolo esatto). A quel punto basta guardare se il bounding box dell'oggetto 3d sta nel cono di proiezione usando questo angolo e la direzione della camera.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Chi c’è in linea
Visitano il forum: Nessuno e 28 ospiti