Portal:InItalian/Sistema dei materiali di DarkPlaces/Introduzione
(Created page with "{{capitolo precedente|}} == Cos'è un materiale? == I materiali sono brevi script testuali che definiscono le proprietà di una superficie in termini di come appare e delle s...") |
|||
(One intermediate revision by one user not shown) | |||
Line 4: | Line 4: | ||
I materiali sono brevi script testuali che definiscono le proprietà di una superficie in termini di come appare e delle sue funzioni nel mondo di gioco (o un tool di modifica compatibile). Convenzionalmente i documenti che contengono questi script hanno lo stesso nome dei file in cui si trova la texture che viene modificata (es: textures_inn, models_mapobjects_crypt ecc.). Diversi documenti con script specifici sono anche stati creati per gestire casi particolari, come i liquidi, gli ambienti e gli effetti speciali. | I materiali sono brevi script testuali che definiscono le proprietà di una superficie in termini di come appare e delle sue funzioni nel mondo di gioco (o un tool di modifica compatibile). Convenzionalmente i documenti che contengono questi script hanno lo stesso nome dei file in cui si trova la texture che viene modificata (es: textures_inn, models_mapobjects_crypt ecc.). Diversi documenti con script specifici sono anche stati creati per gestire casi particolari, come i liquidi, gli ambienti e gli effetti speciali. | ||
− | Per | + | Per DarkPlaces, gli script dei materiali sono in 'Path_To_The_Game/gamedir/scripts'. |
− | Il file di un materiale di | + | Il file di un materiale di DarkPlaces consiste in una serie di attributi della superficie e di istruzioni per il render, scritte tra parentesi ("{" e "}"). Qui sotto c'è un esempio di semplice sinttassi e formattazione per un singolo procedimento, incluse le parole chiavi in [[Q3map | Q3MAP]], o "parametri per le superfici", che seguono la prima parentesi e un singolo "livello" tra parentesi: |
<font color=green>// Definizione del materiale</font> | <font color=green>// Definizione del materiale</font> | ||
Line 53: | Line 53: | ||
== Ispirati a Quake 3, ma diversi == | == Ispirati a Quake 3, ma diversi == | ||
− | Gli script degli shader di Quake 3 sono stati d'ispirazione per il sistema di materiali di | + | Gli script degli shader di Quake 3 sono stati d'ispirazione per il sistema di materiali di DarkPlaces e l'aspetto degli script dei materiali è davvero molto simile a quello degli equivalenti in Quake 3. Quindi, se siete pratici con il sistema di [[Shader | shaders]] di Id Tech 3 vi sentirete a casa con la sintassi degli script dei materiali. Ad ogni modo, il sistema di materiali di DarkPlaces è stato scritto indipendentemente e presenta alcune importanti differenze: |
=== Illuminazione in tempo reale === | === Illuminazione in tempo reale === | ||
Line 59: | Line 59: | ||
Puntare ad un'illuminazione in tempo reale cambia il modo in cui funzionano gli stage. Non ci sono passaggi di render (quindi i materiali a più strati possono essere creati solo duplicando delle superfici reali). | Puntare ad un'illuminazione in tempo reale cambia il modo in cui funzionano gli stage. Non ci sono passaggi di render (quindi i materiali a più strati possono essere creati solo duplicando delle superfici reali). | ||
− | La catena del render dei materiali di | + | La catena del render dei materiali di DarkPlaces può usare da 1 a 3 utilizzi prefissati degli stage: |
* Nessun disegno (0 stage) | * Nessun disegno (0 stage) | ||
* Texture non illuminata (1 stage) | * Texture non illuminata (1 stage) | ||
Line 70: | Line 70: | ||
=== Nuove parole chiave === | === Nuove parole chiave === | ||
− | + | DarkPlaces aggiunge diverse parole chiave proprie che non esistono in Id Tech 3. | |
− | === Texture Q3 = skinframe | + | === Texture Q3 = skinframe DarkPlaces === |
− | Id tech 3 ha bisogno solo di informazioni sui colori per le texture. Il motore grafico | + | Id tech 3 ha bisogno solo di informazioni sui colori per le texture. Il motore grafico DarkPlaces usa normal map, mspecularity map, texture di glow e altre texture che contengono informazioni aggiuntive. Tutti questi file di texture messi insieme (colori + normal map + gloss map + glow ecc.) formano lo skinframe. |
Per ulteriori dettagli leggere la pagina sulle [[texture]]. | Per ulteriori dettagli leggere la pagina sulle [[texture]]. | ||
=== Costi diversi in velocità === | === Costi diversi in velocità === | ||
− | La catena di rendering del motore grafico | + | La catena di rendering del motore grafico DarkPlaces è molto diversa da quella di Id Tech 3. Con l'utilizzo di shader di pixel e vertici essa aggiunge nuovi parametri di velocità che non esistono in Id Tech 3: |
* intruzioni degli shader - numero di istruzioni per vertex shader e pixel shader generate per un materiale particolare (dipende dagli effetti usati) | * intruzioni degli shader - numero di istruzioni per vertex shader e pixel shader generate per un materiale particolare (dipende dagli effetti usati) | ||
* look-up delle texture - numero dei look-up delle texture nel pixel shader, texture aggiuntive in uno skinframe, aumento del numero di look-up delle texture del parallax mapping | * look-up delle texture - numero dei look-up delle texture nel pixel shader, texture aggiuntive in uno skinframe, aumento del numero di look-up delle texture del parallax mapping | ||
Line 84: | Line 84: | ||
=== Il materiale è detto 'shader' === | === Il materiale è detto 'shader' === | ||
− | Dato che | + | Dato che DarkPlaces usa dei tool derivati da Id Tech 3 i materiali sono spesso chiamati 'shader' da essi. Per non fare confusione, questi termini sono equivalenti nei tool di Q3: |
* Shader = Material | * Shader = Material | ||
* Shader name = Surface shader = Material name = Surface material | * Shader name = Surface shader = Material name = Surface material | ||
Line 96: | Line 96: | ||
Quelle della seconda classe sono le parole chiave compilate dalla parte server del motore grafico (le "surfaceparm", alcune altre parole chiave). Modificano le proprietà fisiche della superficie e possono avere effetto sul gameplay. | Quelle della seconda classe sono le parole chiave compilate dalla parte server del motore grafico (le "surfaceparm", alcune altre parole chiave). Modificano le proprietà fisiche della superficie e possono avere effetto sul gameplay. | ||
− | Tutte le altre parole chiavi globali e tutte le Stage Specific Keywords (parole chiavi specifiche dello stage) vengono elaborate dal renderer. Riguardano solo cambiamenti di aspetto e non hanno effetto sul gameplay o sulle meccaniche di gioco. Le modifiche a questi attributi avranno effetto non appena il gioco passa ad un altro livello o gli si dice di operare un vid_restart (scrivere il comando "vid_restart" nella [[ | + | Tutte le altre parole chiavi globali e tutte le Stage Specific Keywords (parole chiavi specifiche dello stage) vengono elaborate dal renderer. Riguardano solo cambiamenti di aspetto e non hanno effetto sul gameplay o sulle meccaniche di gioco. Le modifiche a questi attributi avranno effetto non appena il gioco passa ad un altro livello o gli si dice di operare un vid_restart (scrivere il comando "vid_restart" nella [[Portal:InItalian/Cvar | console]] di gioco). |
Le parole chiave dei materiali funzionano indifferentemente con maiuscole e minuscole. | Le parole chiave dei materiali funzionano indifferentemente con maiuscole e minuscole. |
Latest revision as of 13:31, 11 July 2013
[edit] Cos'è un materiale?
I materiali sono brevi script testuali che definiscono le proprietà di una superficie in termini di come appare e delle sue funzioni nel mondo di gioco (o un tool di modifica compatibile). Convenzionalmente i documenti che contengono questi script hanno lo stesso nome dei file in cui si trova la texture che viene modificata (es: textures_inn, models_mapobjects_crypt ecc.). Diversi documenti con script specifici sono anche stati creati per gestire casi particolari, come i liquidi, gli ambienti e gli effetti speciali.
Per DarkPlaces, gli script dei materiali sono in 'Path_To_The_Game/gamedir/scripts'.
Il file di un materiale di DarkPlaces consiste in una serie di attributi della superficie e di istruzioni per il render, scritte tra parentesi ("{" e "}"). Qui sotto c'è un esempio di semplice sinttassi e formattazione per un singolo procedimento, incluse le parole chiavi in Q3MAP, o "parametri per le superfici", che seguono la prima parentesi e un singolo "livello" tra parentesi:
// Definizione del materiale textures/crypt/stone { // parole chiave qer_editorImage radiant/textures/crypt/stone surfaceparm stone dpglossexponentmod 0.5 // stage di base { map textures/crypt/stone // il motore grafico cercherà textures/mymaterial.tga, textures/mymaterial.jpeg } // stage dell'illuminazione { map $lightmap } }
[edit] Nomi dei materiali e convenzioni
La prima riga è il nome del materiale. I nomi dei materiali possono essere lunghi fino a 63 caratteri. I nomi sono spesso identici al percorso fino ad un file .tga senza estensione o cartella alla radice (/Blood Omnicide/kain nel nostro caso), ma non serve che queste cose ci siano.
I materiali che verranno gestiti unicamente dal codice di gioco, non dai tool di modellazione, sono spesso una sola parola, come "collision" o "dpbihclip".
I materiali usati sui personaggi o su altri modelli poligonali devono corrispondere ad un file .tga, per permettere ai modellisti di creare delle normal texture e quindi di far apparire gli effetti speciali nel gioco quando il modello viene caricato.
I materiali posizionati su delle superfici nell'editor delle mappe generalmente corrispondono a un file .tga, ma il parametro del materiale "qer_editorimage" può far mostrare all'editor un'immagine a piaciere.
I percorsi dei nomi dei materiali distinguono maiuscole e minuscole - nelle finestre questo non avviene, ma succede in unix. Meglio cercare di usare sempre e solo minuscole per i nomi dei file, e sempre barre del tipo "/" per i separatori del percorso delle cartelle.
[edit] Formattazione degli scripr dei materiali
Affinché i materiali siano facilmente leggibili e modificabili è consigliato formattare tutti gli script dei materiali come segue:
<nomedelmateriale> { <Parole chiave specifiche dell'editor> <Parole chiave specifiche di Q3Map2> <Parole chiave generiche> { <Parole chiave dello stage> } }
[edit] Ispirati a Quake 3, ma diversi
Gli script degli shader di Quake 3 sono stati d'ispirazione per il sistema di materiali di DarkPlaces e l'aspetto degli script dei materiali è davvero molto simile a quello degli equivalenti in Quake 3. Quindi, se siete pratici con il sistema di shaders di Id Tech 3 vi sentirete a casa con la sintassi degli script dei materiali. Ad ogni modo, il sistema di materiali di DarkPlaces è stato scritto indipendentemente e presenta alcune importanti differenze:
[edit] Illuminazione in tempo reale
Ogni parola chiave degli shader non compatibile con l'illuminazione in tempo reale è stata eliminata. Alcune altre hanno un comportamento leggermente diverso dall'originale.
Puntare ad un'illuminazione in tempo reale cambia il modo in cui funzionano gli stage. Non ci sono passaggi di render (quindi i materiali a più strati possono essere creati solo duplicando delle superfici reali). La catena del render dei materiali di DarkPlaces può usare da 1 a 3 utilizzi prefissati degli stage:
- Nessun disegno (0 stage)
- Texture non illuminata (1 stage)
- Texture illuminata (2 stage)
- Texture illuminata con blending di un terreno (3 stage)
Ogni altra configurazione di stage di Id Tech 3, come i cieli, non è supportata.
[edit] Nuove parole chiave
DarkPlaces aggiunge diverse parole chiave proprie che non esistono in Id Tech 3.
[edit] Texture Q3 = skinframe DarkPlaces
Id tech 3 ha bisogno solo di informazioni sui colori per le texture. Il motore grafico DarkPlaces usa normal map, mspecularity map, texture di glow e altre texture che contengono informazioni aggiuntive. Tutti questi file di texture messi insieme (colori + normal map + gloss map + glow ecc.) formano lo skinframe. Per ulteriori dettagli leggere la pagina sulle texture.
[edit] Costi diversi in velocità
La catena di rendering del motore grafico DarkPlaces è molto diversa da quella di Id Tech 3. Con l'utilizzo di shader di pixel e vertici essa aggiunge nuovi parametri di velocità che non esistono in Id Tech 3:
- intruzioni degli shader - numero di istruzioni per vertex shader e pixel shader generate per un materiale particolare (dipende dagli effetti usati)
- look-up delle texture - numero dei look-up delle texture nel pixel shader, texture aggiuntive in uno skinframe, aumento del numero di look-up delle texture del parallax mapping
- uso del VBO - i modelli non animati vengono renderizzati più velocemente col VBO; alcune parole chiave degli shader (ad esempio tcMod turbulent, deformVertexes) disabilitano il VBO
- uso dell'illuminazione - la luce in tempo reale è più lenta per i blending (aggiunge più disegni sulla superficie, uno per luce) o le superfici su cui si applica un offset mapping (l'offset mapping viene elaborato di nuovo per ogni singola luce)
[edit] Il materiale è detto 'shader'
Dato che DarkPlaces usa dei tool derivati da Id Tech 3 i materiali sono spesso chiamati 'shader' da essi. Per non fare confusione, questi termini sono equivalenti nei tool di Q3:
- Shader = Material
- Shader name = Surface shader = Material name = Surface material
- Shader script = Material script
- Shader keywords = Material keywords
- etc.
[edit] Tipi di materiali
La parole chiave che agiscono sui materiali sono divise in tre classi. La prima è quella dei parametri globali. Alcuni parametri globali (le "surfaceparm" e tutte le parole chiave "q3map_") sono elaborate da Q3MAP2 e cambiano gli attributi fisici della superficie che usa il materiale. Questi attributi possono avere effetto sul giocatore. Per vedere i cambiamenti in questi parametri bisogna ricompilare la mappa.
Quelle della seconda classe sono le parole chiave compilate dalla parte server del motore grafico (le "surfaceparm", alcune altre parole chiave). Modificano le proprietà fisiche della superficie e possono avere effetto sul gameplay.
Tutte le altre parole chiavi globali e tutte le Stage Specific Keywords (parole chiavi specifiche dello stage) vengono elaborate dal renderer. Riguardano solo cambiamenti di aspetto e non hanno effetto sul gameplay o sulle meccaniche di gioco. Le modifiche a questi attributi avranno effetto non appena il gioco passa ad un altro livello o gli si dice di operare un vid_restart (scrivere il comando "vid_restart" nella console di gioco).
Le parole chiave dei materiali funzionano indifferentemente con maiuscole e minuscole.
Capitolo successivo: Concetti chiave
Torna all'indice | Torna in cima alla pagina