[U3D] - LoD Chain

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Rispondi
Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

[U3D] - LoD Chain

Messaggio da fra3point »

:cappa:

Bazzicando un po' con U3D stavo provando a creare una LoD chain (cosa facilissima da fare) per un modello. Ma pare che non accada nulla, ovvero anche se la camera si allontana il triangle count resta lo stesso.. Ho dunque provato a fare lo stesso con un tool creato apposta per i modelli .u3d che mette a disposizione questa funzione.. E anche qui il modello non viene ridotto.. Ho provato con altri modelli ma non sembra funzionare.. Bug?? :fapensare:

P.S. ho già guardato il forum (nonchè la documentazione) di U3D e l'unica cosa che ho trovato riguarda il numero di vertici che non deve superare un certo numero, ma i miei modelli vanno bene.. Che strano!
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

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

Re: [U3D] - LoD Chain

Messaggio da Jak »

Magari il numero di triangoli reali visibili si abbassa ma non certo la memoria che occupano, quella è necessario che resti la stessa per contenere le informazioni originali del modello.
Fatto sta che ho aperto un modello a caso col viewer di u3d ed ho impostato un livello di dettaglio e mi funziona, appena allontano a sufficienza il modello(avevo messo molto vicino) il numero di triangoli mi è diminuito(l'ho capito perchè il modello era così lowpoly che si era deformato :lol: )

Sul viewer è segnato il numero di triangoli per ogni grado di lod quindi non posso vedere il numero di triangoli effettivi che segna u3d.
Secondo me il contatore sbaglia e non guarda le lod :roll:
Prova ad impostare la telecamera molto vicina e a dare una bassissima percentuale di triangoli, se tu vedi che le lod fungono lascia stare il contatore che tanto meno di così cè poco da fare. Uno col pc scarsissimo si arrangia.
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

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - LoD Chain

Messaggio da fra3point »

ho un modello in model viewer.. ho un modello LoD come hai detto tu e il contatore mi dice così:

Immagine

Il modello però non subisce proprio nessun cambiamento..
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

Avatar utente
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: [U3D] - LoD Chain

Messaggio da civic71 »

Bug??
Non credo , io l'ho utilizzato in alcuni giochi senza problemi ;)

Allora il codice deve essere messo alla fine dell' evento create .
Considera poi che la variabile di definizione è in percentuale ovvero max 100 .

CreateLODChain(100,90,400,80,600,70,800,60,1000,50);

Quindi lo script sopra indica che alla distanza di 100 (della camera dal object ) , si avrà un 90 % di poligoni-nodi visualizzati .
A 400 ( ovvero più distante di prima ) si avrà un 80% ... e così via scendendo di percentuale...

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - LoD Chain

Messaggio da fra3point »

Si lo so! ho fatto un sacco di prove! anche copia-incollando il tuo codice non succede proprio niente! Abbassando l'indice dei triangoli da 90 a 20 e la distanza da 100 a 25 non ottengo nessun risultato..
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

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

Re: [U3D] - LoD Chain

Messaggio da Jak »

Dal model viewer si vede che il numero dei triangoli della prima lod è praticamente identico a quello precedente. E' possibile anche che hai diviso il modello in troppe sottomesh tanto da averne pochi triangoli per ognuna e sotto un tot le lod non riducono un bel niente.
Programmi come sketchup ed anim8or sono fatti così, per modellare usano milioni di mesh anzichè modificarle a dovere quindi è possibile ti diano problemi di questo genere(ipotesi con scarsa possibilità di essere vera ma l'unica cosa che mi viene in mente per ora...)
Se mi passi il modello posso vedere se a me funge ed allora è un problema tuo, se non funge è molto probabilmente colpa del modello stesso come ho detto io...
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

Avatar utente
fra3point
Membro attivo
Messaggi: 388
Iscritto il: 24/08/2010, 15:16
Specialità: Prog. e 3D Modelling
Località: L'Aquila
Contatta:

Re: [U3D] - LoD Chain

Messaggio da fra3point »

ho trovato il problema.. E non è stato facile risolverlo.. Guardando alcuni topic sul forum di U3D ho notato (come dice jak) che alcuni programmi fanno un uso "particolare" delle sottomesh e delle facce. In pratica due triangoli che hanno un vertice in comune vengono presi singolarmente e il vertice che era uno solo in comune si duplica. In questo modo ogni triangolo ha 3 vertici NON in comune con gli altri triangoli.

Di conseguenza quando esporto da sketchup in .3ds (e non solo) ottengo un numero di vertici esattamente triplo a quello dei triangoli. Pare che la funzione LoD di U3D non riesca a gestire questa particolarità (vertici=3*triangoli). Ho dovuto quindi usare Lith Unwrap che oltre a creare UV Maps (davvero ottimo, altro che uvmapper :lol: ) permette di ottimizzare i modelli rimuovendo i vertici duplicati e di correggere le mesh.

Ora però viene la parte più brutta..

Una volta che ho ottimizzato il modello e lo esporto in .3ds il numero dei vertici ritorna ad essere quello originale.. L'unico formato che funziona correttamente (sempre in export) è il .lwo, che importato in anim8or e poi riconvertito in .3ds.

Solo che così perdo le textures.. E non so il perchè.. Intanto il problema delle LoD è risolto! Testato su Model Viewer! :uppa:
draw_text(100,100,"fra3point");

Progetti in corso:
Spoiler
Tuning Paradise --> 10%

Saw: The Game --> 60%

Tropic Races --> 40%

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

Re: [U3D] - LoD Chain

Messaggio da Jak »

Bè oltre all'evitare le lod in questo modo usi molta più memoria e rendi il rendering mooolto più lento(bè dai non così tanto ma i calcoli son comunque di più e necessitano di un'utilizzo maggiore del processore anzichè la scheda video). E' buona norma quindi cercare di fare "vere" mesh e non quella brodaglia che hai fatto te appunto. Non conosco quegli ottimizzatori di vertici ecc quindi non ti so dire niente a riguardo, ti so solo dire che è sempre bene cercare di evitare problemi del genere.
Anim8or riesce ad importare decentemente i materiali solo da .3ds per quello perdi le textures in giro :roll:
Devi ricrearti i materiali in anim8or.
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 34 ospiti