Orario: 21-05-2013, 6:02 Benvenuto ospite! (Log inRegistrati)


Rispondi 
engine alla minecraft?
Autore Messaggio
morgoth90
game over

Messaggi: 1,462
Registrato: Nov 2008
Offline Offline
#16 RE: engine alla minecraft?
0
senza sharing ho provato, con un area di 10x10 chunks va a meno di 20 fps, non ho però ottimizzato i bordi non visibili dove si congiungono i chunks Asd
a questo punto credo sia meglio usare più batch, mettendo di avere più di 30 materiali diversi, non sarebbe un problema perchè confrontato al numero di vertici che potrebbe crescere esponenzialmente rimane comunque un numero esiguo

Luca Salmin
[Immagine: premioeasteregg.png]
skype: morgoth990 twitter: morgoth990
(Questo messaggio è stato modificato l'ultima volta il: 23-01-2011 19:22 da morgoth90.)
23-01-2011 19:07
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,272
Registrato: Sep 2004
Offline Offline
#17 RE: engine alla minecraft?
0
tieni presente che non devi mica renderizzare tutti i cubi di un chunk eh, solo le facce visibili. Poi non so se minecraft renderizza tutti i cubi per intero o calcola la superficie visibile, ma di certo non renderizza quelli che stanno sottoterra ad esempio

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
23-01-2011 19:31
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
morgoth90
game over

Messaggi: 1,462
Registrato: Nov 2008
Offline Offline
#18 RE: engine alla minecraft?
0
infatti renderizzo solo le facce di quelli esterni, ho una funzione che chiamo quando un chunk viene modificato che ne rigenera la mesh usata al render

Luca Salmin
[Immagine: premioeasteregg.png]
skype: morgoth990 twitter: morgoth990
23-01-2011 19:47
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,272
Registrato: Sep 2004
Offline Offline
#19 RE: engine alla minecraft?
0
stai usando un vertex buffer dinamico che filli ogni volta? O renderizzi ogni faccia per i fatti suoi?

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
23-01-2011 19:55
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,884
Registrato: Nov 2008
Offline Offline
#20 RE: engine alla minecraft?
0
(23-01-2011 16:53)TheCrib ha scritto:  ..non so quanti materiali abbia Minecraft, da quanto ho capito piuttosto pochi.
In ogni caso anche 30 batches sono pochi.. ne faccio io almeno 100-200 col mio giochino su iPhone 3G e la performance e' ottima.

MC ha 92 materiali diversi ed è ancora in beta;
e un chunk va dal fondo alla massima altezza.
Quindi è certo che in un chunk ci sono materiali almeno per
-terra
-terra di lato (è un diverso tile)
-sabbia
-roccia
-carbone
-ferro
-oro
-redstone
-diamanti
-ghiaia
(esiste almeno una di queste risorse per ogni chunk)
-lava
-bedrock

inoltre è molto probabile che ci sia
-legno
-foglie
-neve
-neve di lato
-lapislazzuli
-acqua

Quindi nel chunk tipo, non ancora toccato dal player, arriviamo a 15 batches medi, con lo sharing.
Il gioco quando è settato a far mostra 9x9 chunks, quindi parliamo di 1215 batches solo per il terreno, che rischiano di aumentare ogni volta che si aggiunge un nuovo blocco.
E poi c'è il problema della luce: ogni blocco ha un diverso vertex colour per simulare la luminosità... la luce non è uniforme per definizione. Per farlo bisognerebbe clonare i vertici e assegnare un diverso vertex colour, nonostante il materiale sia lo stesso. Ma così abbiamo comunque i vertici duplicati della versione non-shared su quasi tutta la mappa.

@morgoth 10x10x(worst case) fanno 76.800 poly, non vedo come potrebbe fare ad andare così lento Fermosi
Se non stai usando i VBO ti consiglierei di metterli al più presto... col trasferimento ogni frame stai buttando nel bus 1.39 mb di geometria Sorriso

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
(Questo messaggio è stato modificato l'ultima volta il: 23-01-2011 22:09 da _tommo_.)
23-01-2011 21:56
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,176
Registrato: Sep 2010
Offline Offline
#21 RE: engine alla minecraft?
0
(23-01-2011 21:56)_ToMmO_ ha scritto:  E poi c'è il problema della luce: ogni blocco ha un diverso vertex colour per simulare la luminosità... la luce non è uniforme per definizione.

Mi pare di aver visto dell'ambient occlusion in scene interne, ma per le scene esterne non vedo necessita' di vertex color.

mooo

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
23-01-2011 22:42
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,884
Registrato: Nov 2008
Offline Offline
#22 RE: engine alla minecraft?
0
Beh la luce non è un'effetto grafico su minecraft, ogni blocco ha un preciso valore di luminosità che influenza parecchio il gameplay.
Quindi il colore della luce è dato dalla luminance del blocco in memoria, ergo il blocco va "colorato" tramite vertex colour Ahsisi

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
23-01-2011 22:45
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,176
Registrato: Sep 2010
Offline Offline
#23 RE: engine alla minecraft?
0
(23-01-2011 22:45)_ToMmO_ ha scritto:  Beh la luce non è un'effetto grafico su minecraft, ogni blocco ha un preciso valore di luminosità che influenza parecchio il gameplay.
Quindi il colore della luce è dato dalla luminance del blocco in memoria, ergo il blocco va "colorato" tramite vertex colour Ahsisi

Se e' cosi' nelle scene esterne non si vede affatto.
Personalmente eviterei di usare vertex color quando non sono necessari..

wooo

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
23-01-2011 23:18
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,272
Registrato: Sep 2004
Offline Offline
#24 RE: engine alla minecraft?
0
Sì c'è una sorta di "occlusione" su minecraft che usa il vertex color, anche se mi pare che i blocchi abbiano sempre un colore omogeneo, i vertici in pratica hanno tutti lo stesso colore.
L'effetto si nota solo quando ci sono grotte o ci sono blocchi sopra altri blocchi, si viene a creare una sorta di zona d'ombra. Ovviamente su un terreno tutto piatto non si nota.

In pratica quando viene creato un chunk del mondo viene anche calcolata la luce, idem quando viene modificato un blocco, ai blocchi attorno viene ricalcolata la luminosità:

[Immagine: 33uahwi.png]

qui ad esempio si può vedere che mettendo dei blocchi sopra sotto appare una sorta di "ombra", penso che per ogni blocco vengono calcolati il numero di blocchi attorno che lo occludono, entro un certo raggio, da quello deriva la luminosità del blocco stesso.
Anche fonti di luce come i blocchi di lava o le torce influenzano la colorazione dei blocchi entro il loro raggio...
Tutto questo va finire sul colore a vertice, tra l'altro l'occlusione è fatta male, sarebbe più bella visivamente se non fosse un valore singolo per tutti i vertici del blocco.

Il colore a "run time" invece è calcolato dal ciclo giorno\notte e dalla fog

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
(Questo messaggio è stato modificato l'ultima volta il: 23-01-2011 23:41 da Eclipse.)
23-01-2011 23:21
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,176
Registrato: Sep 2010
Offline Offline
#25 RE: engine alla minecraft?
0
(23-01-2011 23:21)Eclipse ha scritto:  Sì c'è una sorta di "occlusione" su minecraft che usa il vertex color, anche se mi pare che i blocchi abbiano sempre un colore omogeneo, i vertici in pratica hanno tutti lo stesso colore.
L'effetto si nota solo quando ci sono grotte o ci sono blocchi sopra altri blocchi, si viene a creare una sorta di zona d'ombra. Ovviamente su un terreno tutto piatto non si nota

Comunque solo per le scene interne credo (e' possibile che ci siano due paths: uno con una sorta di GI ed uno con un semplice Lambert).

In tal caso ovviamente i vertici non posso essere condivisi.. a meno che il lighting non sia in una texture (senza bilinear).
..cosa che ho usato io di recente proprio per dare un look poligonale ma senza dover duplicare i vertici (poi alla fine ho scelto di usare la texture con bilinear, che e' comunque meglio del vertex color perche' non interpola a triangoli).

mumble mumble

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
23-01-2011 23:29
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,884
Registrato: Nov 2008
Offline Offline
#26 RE: engine alla minecraft?
0
Beh su MC "interno" ed "esterno" non hanno un vero senso... nella luminance dei blocchi c'è il contributo delle torce + un fattore moltiplicativo della luce ambientale (che va da 4 a 15).
"esterno" sono solo i blocchi che hanno questo valore più alto.
Quindi anche in pieno giorno basta piazzare una torcia per modificare la luminance di tutti i blocchi vicini, anche se non si vede Ahsisi

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
23-01-2011 23:43
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,272
Registrato: Sep 2004
Offline Offline
#27 RE: engine alla minecraft?
0
in teoria visto che si parla più che altro di luminosità che di colore si potrebbe infilare quel valore abbastanza facilmente avendo un vertice float4 che entra dritto dritto in un registro, 3 float per la posizione e uno di luminosità, mi sa che è il sistema migliore

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
(Questo messaggio è stato modificato l'ultima volta il: 23-01-2011 23:47 da Eclipse.)
23-01-2011 23:47
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,176
Registrato: Sep 2010
Offline Offline
#28 RE: engine alla minecraft?
0
(23-01-2011 23:21)Eclipse ha scritto:  Anche fonti di luce come i blocchi di lava o le torce influenzano la colorazione dei blocchi entro il loro raggio...
Tutto questo va finire sul colore a vertice, tra l'altro l'occlusione è fatta male, sarebbe più bella visivamente se non fosse un valore singolo per tutti i vertici del blocco.

Dici a vertice perche' e' una cosa risaputa oppure e' una intuizione ?
Non e' per sostenere una cosa o l'altra, e' solo per capire 8)
(23-01-2011 23:43)_ToMmO_ ha scritto:  Beh su MC "interno" ed "esterno" non hanno un vero senso... nella luminance dei blocchi c'è il contributo delle torce + un fattore moltiplicativo della luce ambientale (che va da 4 a 15).
"esterno" sono solo i blocchi che hanno questo valore più alto.
Quindi anche in pieno giorno basta piazzare una torcia per modificare la luminance di tutti i blocchi vicini, anche se non si vede Ahsisi

Allora le cose si complicano.
In ogni caso, potrebbe essere utile tenere una lista di aree che sono flat.. ma sono tutte decisioni da prendere quando il codice c'e' gia' 8)

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
(Questo messaggio è stato modificato l'ultima volta il: 23-01-2011 23:59 da TheCrib.)
23-01-2011 23:52
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,272
Registrato: Sep 2004
Offline Offline
#29 RE: engine alla minecraft?
0
beh diciamo che si capisce giocando... puoi mettere dozzine di torce, fuochi e punti luce per km e km, sarebbe un casino calcolarli in realtime...

E poi mi ricordo di aver letto da qualche parte che precalcolava la luce alla creazione del mondo per ogni chunk Linguaccia

Ora che ci penso mi sa che usa proprio vertex color perchè il colore di lava e torce non è neutro...

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
(Questo messaggio è stato modificato l'ultima volta il: 24-01-2011 0:06 da Eclipse.)
24-01-2011 0:05
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,884
Registrato: Nov 2008
Offline Offline
#30 RE: engine alla minecraft?
0
Si è vero, la luce ambientale è neutra ma quella delle fonti di luce tende a un giallino Ahsisi

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
24-01-2011 0:30
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: