Oggi ho verificato che:
- La gestione del mouse è abbastanza semplice, nell'ottenere le coordinate x,y del puntatore, quello che invece è più problematico è la selezione di una stella. L'idea mia era di convertire le coordinate della stella da 3D a 2D, e confrontarle con quelle del mouse: se sono sufficientemente vicine, ed il tasto del mouse è premuto, allora la stella è stata selezionata. Il problema è che se una stella è decisamente vicina alla telecamera, apparirà molto grande, e in questo caso cosa vuol dire "sufficientemente vicina"? In teoria potrebbe essere grande quanto tutto lo schermo, e per assurdo clickando su un qualsiasi punto dovrei poterla selezionare. Credo si debba passare per directx e considerare lo sprite per quel che e': una coppia di triangoli, usando perciò la corrispondente tecnica per la selezione, che devo ancora studiarmi bene. Per il momento quindi lascio stare.
- La gestione di un'interfaccia utente la posso fare usando gli sprites. Insomma occorrono tutta una serie di bottoni per poter interagire con la mappa. Col mouse ruoto e seleziono, e al limite eseguo lo zoom, ma comunque occorreranno pulsanti per cercare un sistema, centrare la mappa, abilitare/disabilitare la stampa dei nomi dei sistemi ecc.. Ho fatto un paio di test ed i risultati sono incoraggianti: son riuscito a mixare 2D e 3D, definendo posizione degli sprites e profondita' dei medesimi (gli sprites sono davanti al 3D o dietro?).
Per ora ho iniziato col rappresentare un pianetino, molto banale e senza dettagli, giusto per testare gli shaders che simulano la luce diffusa (nello spazio non c'è luce ambientale), e il risultato è quello che vedete illustrato.
Non è nulla di che, ma è finalmente la prima cosa "solida" che faccio apparire, meritava un post :)
1 comment:
Per selezionare le stelle ti consiglio di guardare qualche esempio di ray casting. In pratica ad ogni click viene proiettato un raggio immaginario verso un certo punto, e sei così in grado di determinare le coordinate dell'oggetto che interrompe il raggio
Post a Comment