http://gamequiz.altervista.org/portale/themes/marinelli/img/banners/gamequizBIG2.png


Manuale U3D Advance
 

 
Data : 2011-04-01
 
Advanced functions ( Funzioni avanzate 1° parte)
 
Le caratteristiche che avete visto finora sono piuttosto buone. sarà possibile effettuare piacevoli giochi con loro, ma la grafica che si otterrà non sarà davvero impressionante. Inoltre, avrete problemi con il frame rate se non si conoscono i trucchi per ottimizzare il tuo gioco. Con le tecniche descritte nella parte per gli utenti avanzati è possibile realizzare una grafica stupefacente e livelli enormi....
Ma non si deve passare alla parte per gli utenti avanzati, se prima non si conoscono bene le funzioni utilizzate per gli utenti inesperti ( la base di conoscenze per poter poi apprendere quelle avanzate ).
 
Leggi la parte per gli inesperti
 
Alcune cose che si impareranno nel prossimo tutorial sono più facili di quello che potreste pensare ( per esempio la parallasse ed il bump mapping ), mentre altre sono complicate ( ad esempio, imparare a programmare effetti shader ).
Ma per tutte queste cose Ultimate 3D offre interfacce che sono di facile utilizzo. La maggior parte del lavoro è fatto da Ultimate 3D, gli si deve solo dire che cosa si desidera realizzare. E ora divertitevi mentre imparate a realizzare una grafica incredibile.
 

 
Advanced model management ( Modello di gestione avanzata )
 
Mentre si lavora con Ultimate 3D arriverete ad apprezzare l' importanza degli objects model ( oggetti di modelli ) molto rapidamente. In contrasto con gli objects pirmitives (oggetti primitivi), gli objects model sono estremamente flessibili.
Ma il rendering degli objects model ( oggetti di modelli ) prende più tempo di calcolo e modelli con un alto quantitativo di triangoli ( i modelli 3D sono realizzati da maglie di triangoli ) possono rallentare notevolmente le prestazioni dei vostri giochi. Per questo motivo questo tutorial sta per affrontare un paio di caratteristiche che possono essere utilizzate per rendere i modelli in modo più efficiente.
 
Managing model files ( gestione di file di modelli 3D )
A volte succede che ci sono oggetti nel gioco che non esistono fin dall' inizio, ma si creano durante la partita. Se questi oggetti sono stati caricati solo nel momento in cui sono stati necessari, porterebbero ad un breve ritardo.
Gli *. MD2 e *. an8 files possono aver bisogno di un tempo particolarmente grande di caricamento. Per questo motivo, è possibile precaricare i modelli utilizzando la seguente funzione:
 
PreloadMesh (File, Password ) ;
 
File Il file che contiene il modello che si desidera precaricare ( per esempio : "model/nome_del_modello3d.an8" ).
 
Password Se quello che si desidera caricare è un file criptato *.u3d ( modello di file di Ultimate 3D ), è possibile inserire la relativa password corretta per la sua decriptazione . Altrimenti si può mettere sia una stringa vuota o nulla.
 
Una volta richiamata questa funzione per un modello 3D, la successiva creazione di un object model (oggetto modello ) relativa ad esso non avrà più bisogno di alcun tempo di caricamento. In questo modo si può evitare un preoccupante ritardo. Quando si carica un modello attraverso LoadMesh () e dopo averne distrutto l' object , si ottiene lo stesso effetto. Ultimate 3D non dovrà caricare due volte lo stesso modello , perchè esso rimarrà in memoria , anche se i singoli objects erano stati distrutti .
In questo modo si evita di caricare infinite volte ed in modo più affidabile.
Naturalmente, questo comportamento non è sempre apprezzato. Per esempio se si passa da un livello ad un altro, sarebbe uno spreco di memoria avere ancora tutti quei modelli presenti nel livello precedente . Per questo motivo Ultimate 3D permette il rilascio esplicito dei modelli .
 
La seguente funzione rilascia il determinato file di un modello 3D in modo tale che esso non occupi più memoria e restituisce true se riesce. Se quando si chiama questa funzione c'è ancora un object sulla base di questo modello , non rilascia il modello , al fine di evitare conflitti. In questo caso si restituisce false.
 
ReleaseModel (File);
 
File : Il file che contiene il modello che si desidera rilasciare.
 
Exporting to *.u3d files ( Esportatori di file *. u3d )
Questo è facile. C'è solo una funzione di esportazione dell' objects modello , nel modello di file di Ultimate 3D e ci vogliono solo tre parametri :
 
Questa funzione exports the model object ( esportazioni di un oggetto modello) è chiamato dal relativo file.
Il risultato sarà quello di ottenere un file del modello nel formato di Ultimate 3D , rappresentativo del modello nel momento in cui questa funzione è stata richiamata. Le uniche informazioni che non verranno salvate sono le relative variabili.
 
ExportToU3DFile (Outputfile, Password, ExportResources ) ;
 
Outputfile
Il file di output desiderato per l' object model ( oggetto del modello ). Se la chiamata alla funzione viene completata correttamente, questo file contiene il modello Ultimate 3D .
 
Password
La password che deve essere utilizzata per cifrare il file del modello Ultimate 3D. Se questa è una stringa vuota o nulla, il file verrà esportato non criptato. Più lunga è la password e più sicura sarà la protezione.
 
ExportResources
Questo parametro può essere true o false ( vero o falso). Se si scrive false ( falso) il file del modello di Ultimate 3D non conterrà le sue texture e i suoi effetti. Queste verranno caricate dal file come al solito. Solo i dati dei file *. ufx sono esportati. Se si scrive true ( vero ) il file sarà un file di modello stand alone e quindi non richiederà nessun altro tipo di file da caricare. Tutte le texture e gli effetti shader verranno inclusi. Si noti che i modelli 3D che utilizzano un render target texture ( rendering texture) della texture di uno dei materiali , non possono esportare le loro risorse.
 
Naturalmente, non è possibile garantire la totale sicurezza di protezione tramite la password ( meccanismo di crittografia ) in Ultimate 3D. Specialisti , sarebbero probabilmente in grado di decifrare i criptati del file del modello di Ultimate 3D. Tuttavia, dovrebbe essere abbastanza sicuro per tenere lontano gli sviluppatori di giochi casual o hacker. Anche se proprio il codice che fa la decodifica, non sarebbe in grado di decifrare un file del modello di Ultimate 3D senza la password corretta.
 
Creating multiple levels of detail ( La creazione di più livelli di dettaglio )
 
I models ( modelli ) possono essere estremamente complessi. La loro complessità è collegata direttamente al loro quantitativo di triangoli . In quanto tale, modelli con un altissimo numero di triangoli ridurranno le prestazioni del vostro gioco, avendo così un più basso frame rate ( fps : fotogrammi per secondo.... in poche parole il gioco potrebbe rallentare ). Per questo motivo è importante utilizzare sempre il minor numero possibile di triangoli. Spesso la versione pienamente dettagliata del modello non è necessaria quando questo si trova ad una determinata distanza. Se l' oggetto 3d è più distante dalla Camera ( telecamera ), il suo livello di dettaglio può essere diminuito. Questa tecnica è comunemente denominato Lod ( livello di dettaglio). Ultimate 3D è in grado di creare automaticamente LoDs e farne uso per il parametro della distanza. La seguente immagine mostra un esempio di un modello che è stato semplificato utilizzando il generatore built-in LoD di Ultimate 3D.
 

 
La differenza tra la prima e la seconda versione del modello è appena avvertibile, ma il numero dei triangoli ( triangle count ) è stato diminuito del 40%. La terza versione del modello ha un numero dei triangoli che è diminuito del 70%. Tuttavia, la forma di base del modello è ancora riconoscibile. In una lunga distanza questo basso livello di dettaglio è perfettamente adatto, anche per la grafica di grandi giochi. Utilizzare i LoDs è estremamente facile. è sufficiente chiamare una funzione in cui si dici ad Ultimate 3D la richiesta di dettaglio del livello e la distanza a cui deve essere utilizzato. Ecco la sintassi:
 
Questa funzione crea LoDs con un numero in percentuale di triangoli relativi ad un modello che ne richiama tale funzione e le utilizza per una determinata distanza :
 
CreateLODChain ( CameraDistance1, LoD1, CameraDistance2, LoD2, CameraDistance3, LoD3, CameraDistance4, LoD4, CameraDistance5, LoD5 ) ;
 
CameraDistance1, CameraDistance2, ..., CameraDistance5
Le distanze della Camera ( telecamera ) in cui il LoD deve essere utilizzato . In modo originale LoD è utilizzato a distanze da 0 a CameraDistance1, LoD1 è utilizzato dalla distanza della Camera ( telecamera ) da CameraDistance1 a CameraDistance2 e così via.
 
LoD1, LoD2, LoD3, LoD4, LoD5
I livelli di dettaglio che devono essere creati.
Si tratta di un valore in percentuale, così 100 equivale ad un numero invariato di triangoli e 0 si intende il più basso numero di triangoli realizzabile (di solito 3 triangoli). I parametri devono soddisfare LoD1> LoD2> = LoD3> = LoD4> = LoD5. Se uno di questi valori è pari a zero questo dice ad Ultimate 3D d' interrompere la creazione di ulteriori LoDs.
 
I LoDs sono in grado di aumentare notevolmente il frame rate del vostro gioco, ma richiederà anche più memoria e tempo di calcolo ( per crearli ). Ricordatevi che non dovete creare LoDs per i file *. MD2. La loro creazione per ogni singolo fotogramma potrebbe richiedere alcuni minuti. Infine qui vi è un piccolo esempio di codice su come creare i LoDs per un modello. Questo codice dovrebbe essere utilizzato alla fine dell' event create di un oggetto di modello 3d :
 
CreateLODChain (100,70,500,40,1000,20);
 
Creating animations from multiple model files ( La creazione di animazioni da più file modello )
Se si desidera, è possibile creare animazioni da più file invece di utilizzare formati di file con il supporto per lo scheletro animato (*. 3ds, *. x o *. an8) oppure *. MD2 file. Per fare questo è necessario aggiungere ogni singolo fotogramma chiamando la seguente funzione dopo aver creato l' oggetto 3d con LoadMesh () :
 
AddFrame (File, Password );
File
Il file che contiene il frame che deve essere aggiunto.
 
Password
Se è un file criptato relativo al formato *u3d ( file di modello di Ultimate 3D ), è possibile inserire la password corretta per la decriptazione di questo parametro. Altrimenti è possibile passare sia una stringa vuota o nulla.
 
Dal momento che si avrebbe bisogno di un sacco di frame per avere una buona animazione, c'è la possibilità di consentire vertice tweening per le animazioni ( tweening vertice è la tecnica che è attivata, per impostazione predefinita, nei modelli *. MD2 ). Funziona solo se tutti i fotogrammi hanno lo stesso numero di maglie, vertici e triangoli. La funzione che consente il vertice tweening è chiamata EnableVertexTweening () e non occorre aggiungere alcun parametro.
 

Creating primitives from models

( Creazione di primitive da modelli )
 
Come ho già detto nel capitolo sugli objects primitives ( oggetti primitivi ), è estremamente efficiente la loro resa. Tutti i primitive che utilizzano lo stesso materiale e le stesse texture sono resi simultaneamente. In questo modo la scheda grafica sarà in grado di elaborarli molto più efficiente. Nei giochi spesso accade che alcuni oggetti 3D sono troppo complessi per essere rappresentati da semplici oggetti primitivi , ma che allo stesso tempo appaiono molto spesso .Quindi, di solito è necessario crearli come objects di modello , ma ciò sarebbe inefficiente. Per questo motivo c'è una funzione per creare dei modelli primitives da dei file 3d . Prima di creare l' object primitivo da un modello dovete impostare due variabili:
 
file
Il file che contiene il modello che si desidera creare come un oggetto primitivo.
 
material ( materiale : colore e texture )
L' indice del materiale che deve essere utilizzato per l' object primitivo.
 
password (opzionale)
Se è un file criptato relativo al formato *u3d ( file di modello di Ultimate 3D ), questa variabile deve essere impostata su una stringa dando la password. Altrimenti non è necessario impostare questa variabile.
 
Dopo la creazione di queste variabili dovete chiamare la funzione CreatePrimitiveFromModel (); una sola volta affinchè venga creato l' oggetto primitivo. Come con qualsiasi altro oggetto primitivo dovete mettere una chiamata Step () e Destroy () nei corrispondenti eventi. Gli oggetti primitivi creati da modelli 3D complessi , hanno anche la variabile della textura che li "avvolgerà". Si noti che solo la prima mesh ( maglia ) del modello verrà utilizzata per creare l'oggetto primitivo. E' utile usare i file *. an8 con questa funzione, perchè quando Ultimate 3D carica questi file , crea solo una maglia per ogni object (oggetto) .
 

Creating custom backgrounds

( La creazione di sfondi personalizzati )
 
Il sistema di backgrounds ( immagine di sfondi ) in Ultimate 3D è piacevole, ma è molto limitato. Se si desidera dei backgrounds che cambiano nel tempo o dei backgrounds che utilizzano alcuni effetti speciali , questi non possono essere realizzati con il normale sistema. Ciò richiede una più versatile tecnica. Oggetti 3D , che possono essere manipolati in modi complessi sono quindi necessari. Per questo motivo Ultimate 3D vi dà la possibilità di utilizzare degli objects (oggetti ) come backgrounds objects (oggetti di sfondo) .
 
Ogni object model può essere impostato in modalità background. Quindi questo object model (oggetto modello) essendo di sfondo nel gioco , non risentirà più dagli effetti della nebbia (fog effected ) e sarà coperto da tutti gli altri objects. Questo fa sembrare che siano in background ( in sfondo ).
Per raggiungere lo scopo d' illusione di background di questi objects , si dovrebbe fargli seguire ( follow ) la Camera ( telecamera ) , impostando la sua posizione alla posizione della Camera ( telecamera ) in ogni step.
L' attivazione della modalità di background ( in sfondo ) è facile.
 
Questa funzione abilita o disabilita la modalità di sfondo per l' oggetto modello 3D da essa richiamata.
 
SwitchBackgroundMode (EnableBackgroundMode) ;
 
EnableBackgroundMode
Se questo parametro è impostato su true ( vero) l' oggetto 3d verrà attivato in modalità background (di sfondo) , altrimenti verrà disattivato.
 
Una volta che il primo object model viene impostato sulla modalità background(di sfondo) , il normale sistema di sfondi viene completamente disattivato. Questo renderà la visuale molto strana, dato che tutti gli oggetti lasciano tracce, per cui si dovrebbe realizzare un miglior oggetto modello di background affinchè possa coprire tutta la visuale della Camera ( telecamera).
è inoltre possibile utilizzare più modelli di oggetti in modalità background, ma bisognerà essere attenti . Gli oggetti di background ( di sfondo ) saranno coperti da tutti gli altri oggetti , anche da altri oggetti background (di sfondo).
Se un' oggetto background (di sfondo) copre un' altro oggetto background (di sfondo) , ciò dipende dal rendering.
 
Per questo motivo si dovrebbe fare in modo che gli objects ( oggetti ), i quali dovrebbero avere una minore depth ( profondità ), vengano creati un po' più tardi. Inoltre si dovrebbe evitare che gli oggetti background (di sfondo) coprano parti di se stessi, poichè questo porta allo stesso problema. La migliore forma per i modelli background sono decisamente le sfere ed i cubi.
 
Se si mantengono queste cose in mente è possibile ottenere ottimi risultati con questa funzione. Potete avere un sole, che viaggia oltre il cielo, nuvole che cambiano, gli effetti del giorno che cambia , le nuvole illuminate in tempo reale e molto di più. Ottimi background ( sfondi ) sono una chiave per ottenere una grafica impressionante. Si dovrebbe utilizzare questa funzione in ogni sua potenzialità.

 

 

 

AFFILIATI :
 

 

 

 

 

 

 

 

 

 

 

UP