Parliamo di 3D
- Sla
- GMI VIP
- Messaggi: 3618
- Iscritto il: 21/07/2008, 10:11
- Specialità: Titanismo
- Località: (gm) Italia
- Contatta:
Re: Parliamo di 3D
<<
Ultima modifica di Sla il 25/03/2013, 10:29, modificato 8 volte in totale.
eppure mi sembra tutto giusto...
- Sla
- GMI VIP
- Messaggi: 3618
- Iscritto il: 21/07/2008, 10:11
- Specialità: Titanismo
- Località: (gm) Italia
- Contatta:
Re: Parliamo di 3D
Scusate, avrei da fare una piccola rettifica.
Contrariamente a quanto detto non credo di portare a termine questo progetto su Game Maker. È vero che sarebbe una bella cosa avere un esempio completo in GML, ma mi sono reso conto che non è fisicamente possibile.
Ovviamente mi sono già fatto un piccolo engine di rendering in game maker, ma per modelli un goccio complessi e senza nessun effetto (senza nemmeno usare le texture) il framerate arriva all'ordine di 1/(60*n),essendo purtroppo n un numero naturale.
Non è neanche da dare la colpa al mio computer, che è ben sopra la norma
(è un vecchio i7, anche se con supporto ht e clockato a 4+ ghz. non è neanche da pensare a problemi di swap di memoria, visto che ho 16 gb di ram con lo swap disabilitato).
Ho quindi deciso di abbandonare il progetto in GML e di lavorare solo in C++.
So che non è facile per voi valutare codice c++, ma vi chiedo di fare un "salto nel buio" e di fidarvi, cercherò di commentarlo il più possibile. Spero che questa immagine vi aiuti a constatare l' "esattezza" del codice che sto scrivendo:
Contrariamente a quanto detto non credo di portare a termine questo progetto su Game Maker. È vero che sarebbe una bella cosa avere un esempio completo in GML, ma mi sono reso conto che non è fisicamente possibile.
Ovviamente mi sono già fatto un piccolo engine di rendering in game maker, ma per modelli un goccio complessi e senza nessun effetto (senza nemmeno usare le texture) il framerate arriva all'ordine di 1/(60*n),essendo purtroppo n un numero naturale.
Non è neanche da dare la colpa al mio computer, che è ben sopra la norma
(è un vecchio i7, anche se con supporto ht e clockato a 4+ ghz. non è neanche da pensare a problemi di swap di memoria, visto che ho 16 gb di ram con lo swap disabilitato).
Ho quindi deciso di abbandonare il progetto in GML e di lavorare solo in C++.
So che non è facile per voi valutare codice c++, ma vi chiedo di fare un "salto nel buio" e di fidarvi, cercherò di commentarlo il più possibile. Spero che questa immagine vi aiuti a constatare l' "esattezza" del codice che sto scrivendo:
Spoiler
eppure mi sembra tutto giusto...
- civic71
- GMI Advanced
- Messaggi: 2210
- Iscritto il: 23/10/2003, 17:31
- Specialità: Risotto con zucchine
- Uso: GM:Studio 1.4 Pro
- Località: Jesolo (venezia)
- Contatta:
Re: Parliamo di 3D
Hai un i7 ma non ottieni buone performance con il d3d di GM , solo 45 fps
Ma hai GM 8.0 o GM 8.1 perché avevo letto da qualche parte che quest'ultimo era nettamente migliore in termini di prestazioni.
Se con il tuo engine ottieni quasi 5000 fps , ma poi aggiungendo l'illuminazione e le texture logicamente caleranno un pò .
In ogni caso buon lavoro per il tuo engine sperando che non faccia la fine di quello di Jack
Ma hai GM 8.0 o GM 8.1 perché avevo letto da qualche parte che quest'ultimo era nettamente migliore in termini di prestazioni.
Se con il tuo engine ottieni quasi 5000 fps , ma poi aggiungendo l'illuminazione e le texture logicamente caleranno un pò .
In ogni caso buon lavoro per il tuo engine sperando che non faccia la fine di quello di Jack
- Sla
- GMI VIP
- Messaggi: 3618
- Iscritto il: 21/07/2008, 10:11
- Specialità: Titanismo
- Località: (gm) Italia
- Contatta:
Re: Parliamo di 3D
Leggi bene sotto l'immagine. Il modello viene disegnato in una surface una sola volta all'inizio, poi nell'evento draw disegno la surface bella e pronta, non è rendering in real time.
Per gm 8.1 credo si tratti di quella storia della geometria statica (il d3d_model_draw prima del 8.1, se non ricordo male, era fatto coi piedi: disegnava triangolo per triangolo come fosse una primitiva invece di usare i metodi di DX per i modelli interi)
Per "preparare" la surface ci metto circa un minuto
I 45 fps del d3d non dipendono dal processore, ma dalla scheda video.
Ad ogni modo non sono indicativi di nulla, probabilmente la room speed in quell'esempio è bassa, non ricordo.
Cmq ho una vecchia ma buona ati radeon 5700
Per gm 8.1 credo si tratti di quella storia della geometria statica (il d3d_model_draw prima del 8.1, se non ricordo male, era fatto coi piedi: disegnava triangolo per triangolo come fosse una primitiva invece di usare i metodi di DX per i modelli interi)
Per "preparare" la surface ci metto circa un minuto
I 45 fps del d3d non dipendono dal processore, ma dalla scheda video.
Ad ogni modo non sono indicativi di nulla, probabilmente la room speed in quell'esempio è bassa, non ricordo.
Cmq ho una vecchia ma buona ati radeon 5700
eppure mi sembra tutto giusto...
- Sla
- GMI VIP
- Messaggi: 3618
- Iscritto il: 21/07/2008, 10:11
- Specialità: Titanismo
- Località: (gm) Italia
- Contatta:
Re: Parliamo di 3D
Da qualche giorno ho ripreso questo vecchio progetto abbandonato ricostruendo da 0 un engine di software rendering in c++.
Se riesco ad ottenere buoni risultati potrei continuare a parlare di matematica.
Infine vorrei scrivere un manuale matematico / pratico di riferimento per il forum in maniera più ordinata e comprensibile di come ho già fatto.
Naturalmente potrebbero volerci ere, anche perché intanto l'università ruba la maggior parte del mio tempo. Per questo, di tanto in tanto, vi delizierò con qualche screen (spero, forse ..).
Un possibile sviluppo successivo, oltre alle varie ottimizzazioni sfruttando il multithread, è quello di provare a far girare il tutto sulle schede video con OpenCL. Naturalmente sarebbe una speculazione completamente inutile, e funzionerebbe solo sulle schede relativamente recenti supportante da OpenCL, ma suvvia, chi potrebbe vantare di aver fatto un gioco "senza openGL né DirectX, ma col mio engine". Esatto, solo un nerd completo.
Se riesco ad ottenere buoni risultati potrei continuare a parlare di matematica.
Spoiler
Vorrei coprire almeno ancora una decina di effetti.
Infine vorrei scrivere un manuale matematico / pratico di riferimento per il forum in maniera più ordinata e comprensibile di come ho già fatto.
Naturalmente potrebbero volerci ere, anche perché intanto l'università ruba la maggior parte del mio tempo. Per questo, di tanto in tanto, vi delizierò con qualche screen (spero, forse ..).
Un possibile sviluppo successivo, oltre alle varie ottimizzazioni sfruttando il multithread, è quello di provare a far girare il tutto sulle schede video con OpenCL. Naturalmente sarebbe una speculazione completamente inutile, e funzionerebbe solo sulle schede relativamente recenti supportante da OpenCL, ma suvvia, chi potrebbe vantare di aver fatto un gioco "senza openGL né DirectX, ma col mio engine". Esatto, solo un nerd completo.
eppure mi sembra tutto giusto...
Chi c’è in linea
Visitano il forum: Nessuno e 61 ospiti