Inside view 3D?

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Rispondi
Avatar utente
Tornado 7
Membro d'elite
Messaggi: 1102
Iscritto il: 08/08/2010, 20:39
Specialità: grafico
Località: marche
Contatta:

Inside view 3D?

Messaggio da Tornado 7 »

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.
ImmagineImmagine
Whiteman
Spoiler
Immagine ImmagineImmagine

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Inside view 3D?

Messaggio da Jak »

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.
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

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti