Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Mefrio - 14 Novembre 2010, 22:38:52

Titolo: Animazioni con componente opengl
Inserito da: Mefrio - 14 Novembre 2010, 22:38:52
Ragazzi girovagando per l'IDE mi sono imbattuto nel componente opengl.gb e ho pensato alla possibilità di poter creare animazioni con il Gambas...avevo pensato in particolare di creare un effetto come il CoverFlow di MacOS o qualcosa di simile...ho cercato della documentazione e ho trovato questo (http://gambasdoc.org/help/comp/gb.opengl) che è troppo dispersivo e senza indicazioni non mi potrà essere di aiuto. Ho visto gli esempi, in particolare quel giochetto degli ingranaggi, ma non ci ho capito nulla! Ora ho un ultima possibilità...chiedere il vostro aiuto! È possibile fare ciò che voglio con il componente opengl? Se non è possibile, esiste un posto dove insegnino come far funzionare queste librerie sotto Gambas?
Titolo: Re: Animazioni con componente opengl
Inserito da: Ceskho - 15 Novembre 2010, 00:14:33
In area download c'è una guida fatta apposta....
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 15 Novembre 2010, 15:40:21
ok grazie...sicuramente, quello che voglio fare sarà difficile, se non quasi impossibile!! Ora mi inizio a legere la guida, se avrò bisogno di aiuto in qualche punto scriverò
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 15 Novembre 2010, 16:45:50
Sto cercando di capire qualcosa di queste OpenGL anche se è un mezzo casino...mi sapreste dire se esistono altri modi per fare quello che voglio?
Titolo: Re: Animazioni con componente opengl
Inserito da: Ceskho - 15 Novembre 2010, 18:52:07
Sto cercando di capire qualcosa di queste OpenGL anche se è un mezzo casino...mi sapreste dire se esistono altri modi per fare quello che voglio?

No... ;D

Metti giù la testa e studia alla mamma!!!
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 15 Novembre 2010, 21:52:57
modi ne esistono molti... potresti realizzare un animazione frame to frame , ma te lo sconsiglio per questioni di velocità (io con questo metodo ho realizzato chiamauno) con opengl per riuscire a fare qualcosa di veramente carino devi comunque iniziare con qualcosa di semplice , capire come funziona il tutto, imparare a modellare in 3d (i modelli che dovrai far muovere non li realizzi con gambas) e poi naturalmente utilizzare g3 che implementa i pixel shader e altri ammennicoli.
se ti leggi la mia guida capisci i fondamenti base.
Prova anche a vedere il mio  programma magickings (sul mio sito) che  implementa il caricamento di modelli realizzati con blender .
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 17 Novembre 2010, 15:51:19
in effetti è molto complesso l'uso delle OpenGL...darò uno sguardo al tuo programma
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 17 Novembre 2010, 21:32:22
ieri stavo facendo delle prove per realizzare una coverflow, ma ho un problema infido,s e risolvo ti faccio sapere , tu intanto studia! :P
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 18 Novembre 2010, 16:20:43
io ci provo, ma non credo di farcela! Se riesci a realizzarne una me la fai vedere? ;D
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 19 Novembre 2010, 23:09:35
primo accenno di coverflow :)

mancano ancora le animazioni vere e prorie ma comunque rende già l' idea.

il programma è strutturato per essere utilizzato come un modulo per cui se non vuoi sbatterci troppo la testa guarda solo il codice di fmain

ps:

per questioni di spazio(l' esempio ha all' interno alcune immagini campione) devo postarlo sul mio sito e non qui in allegato

link:http://www.tutto-opensource.org/software/sorgenti/Cflow-0.0.1.tar.gz (http://www.tutto-opensource.org/software/sorgenti/Cflow-0.0.1.tar.gz)
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 20 Novembre 2010, 13:45:28
il form main è facile ma poi... :'(
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 20 Novembre 2010, 14:14:46
si ma tu puoi utilizzare il componente semplicemente utilizzando il codice di fmain, quello che ce scritto in fflow può anche non interessarti, adesso vedò di migliorarlo :) intanto puoi giù inserirlo nella tua applicazione
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 20 Novembre 2010, 14:26:29
scusa la mia ignoranza ma ancora non ho capito bene come fare
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 20 Novembre 2010, 15:12:42
copi fflow nel tuo progetto

metti un panel dove ti serve e inizializzi il coverflow seguendo il codice indicato in fmain

per avviarlo devi solo fornire il percorso delle immagini che compongono la coverflow e il percorso dell' immagine di sfondo
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 20 Novembre 2010, 16:29:10
ok grazie
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 20 Novembre 2010, 18:58:16
nuova versione completa di animazioni

ps: devi copiare anche il file contenitoreflow.class,

inoltre il metodo di inizializzazione prevede due nuovi parametri (guarda fmain)


link:http://www.tutto-opensource.org/software/sorgenti/Cflow-0.0.8.tar.gz (http://www.tutto-opensource.org/software/sorgenti/Cflow-0.0.6.tar.gz)

inoltre è possibile far muover eil coverflow trascinando il mouse verso destra o verso sinistra
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 20 Novembre 2010, 22:21:29
non si muove con il trascinamento del mouse...potresti farlo in modo che si muova anche tramite lo scroll del mouse?
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 20 Novembre 2010, 22:57:07
Citazione
non si muove con il trascinamento del mouse.
probabilment etrascini dalla parte sbagliata oppure ricorda che per trascinare devi fare click e poi mantenere premuto mentre trascini)

Citazione
otresti farlo in modo che si muova anche tramite lo scroll del mouse?
non dovrebbero esserci grossi problemi
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 21 Novembre 2010, 15:34:32
trascinavo nel modo sbagliato ;D

un altra domanda...visto che le mie immagini non sono tutte della stessa dimensione alcune si vedono più grandi e altre più piccole...non potrei eguagliarle tutte o devo per forza avere tutte immagini della stessa dimensione?
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 21 Novembre 2010, 18:31:01
la cosa migliore è utilizzare immagini con la stessa dimensione, cmq non molto grandi per evitare tempi di caricamento elevati , ad esempio immagini  300x tot pixel sono ottime come risultato.
il modulo analizza la dimensione della prima immagine e adatta di conseguenza tutte le altre, vedi tu come agire
Titolo: Re: Animazioni con componente opengl
Inserito da: Ceskho - 21 Novembre 2010, 18:42:46
il modulo analizza la dimensione della prima immagine e adatta di conseguenza tutte le altre, vedi tu come agire

Io preleverei le dimensioni dell'immagine più piccola e mi adatterei quella....il tempo "perso" a ricercare l'immagine più piccola è giustificato dalla successiva leggerezza di tutto.....secondo me è un buon compromesso.... ;)
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 21 Novembre 2010, 18:55:14
in verità un coverflow , solitamente visualizza cover che hanno tutte le stesse dimensioni, a parte questo fatto il problema non sono le dimensioni intese come grandezze bensì le proporzioni delle varie immagini (w/h) che se sono diverse portano ad un appiattimento o allargamento che può risultare leggermente fastidioso, un immagine 300X200 verrà visualizzata allo stesso identico modo di un immagine 6000X4000 in quanto il loro rapporto è identico
Titolo: Re: Animazioni con componente opengl
Inserito da: Ceskho - 21 Novembre 2010, 19:05:26
in verità un coverflow , solitamente visualizza cover che hanno tutte le stesse dimensioni, a parte questo fatto il problema non sono le dimensioni intese come grandezze bensì le proporzioni delle varie immagini (w/h) che se sono diverse portano ad un appiattimento o allargamento che può risultare leggermente fastidioso, un immagine 300X200 verrà visualizzata allo stesso identico modo di un immagine 6000X4000 in quanto il loro rapporto è identico

Ma infatti quello che ti dico è che dovresti prendere una delle due misure dell'immagine più piccola....a seconda di quella che è più pratica...anche perchè se l'immagina più piccola è quadrata e le altre sono rettangolari poi viene fuori una cosa obrobriosa...
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 21 Novembre 2010, 20:37:29
fsurfing la versione in download zone ha lo scroll del mouse abilitato?
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 21 Novembre 2010, 20:40:04
no no non ancora.... mi son dimenticato di abilitarla :)
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 21 Novembre 2010, 20:50:33
se vuoi implementarlo aggiungi questo codice al fondo di fflow.form

Codice: [Seleziona]
PUBLIC SUB sch_MouseWheel()

  IF Mouse.Delta < 0 THEN
   
    IF go_avanti = FALSE THEN
      Timer1.Delay = t0 / 2
     
      avanti()
    ENDIF
  ELSE IF Mouse.Delta > 0 THEN
    IF go_indietro = FALSE THEN
      Timer1.Delay = t0 / 2
      indietro()
    ENDIF
  ENDIF
'RAISE change

END
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 22 Novembre 2010, 16:39:42
funziona a meraviglia, grazie! Un altra cosa...per aumentare le dimensioni delle anteprime?
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 22 Novembre 2010, 20:31:53
utilizza un panel + grande :)
oppure alle righe 228 e 231 di fflow

sostituisci -4 con -3 o -3.5
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 23 Novembre 2010, 20:40:46
Mi da di nuovo problema di out of bounds (come ti avevo mostrato in privato)! Come risolvo?
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 23 Novembre 2010, 21:08:10
mandami i sorgenti e il numero di riga che ti indica l' errore

out of bound solitamente avviene quando cerchi di indicare un valore di un array il cui indice indicato non esiste
Titolo: Re: Animazioni con componente opengl
Inserito da: fsurfing - 23 Novembre 2010, 21:15:59
il problema deriva dalla riga 16 di temi.txt  manca  il percorso dell' immagine


modifica il codice di fmain da riga 23 a 34 con

Codice: [Seleziona]
FOR EACH righe
     'array con le foto
     riga = Split(righe[i], "|", "%%", TRUE)
     IF riga.Count = 4 THEN
               listaflow.Add(riga[2])
               nomitemi.add(riga[1])
               comanditemi.add(riga[0])
               comandiremovetemi.add(riga[3])
     ENDIF
     INC i
    
  NEXT

in questo modo eventuali errori nel file temi non bloccano il programma  ma solo non viene visualizzata la relativa immagine


ps: per aiuti o problemi relativi al tuo programma ti conviene aprire un' apposita discussione in progetti in cerca di aiuto :)
Titolo: Re: Animazioni con componente opengl
Inserito da: Mefrio - 24 Novembre 2010, 15:54:54
ho fatto come mi hai detto...grazie