CARATTERISTICHE
- ATTENZIONE: Tutte le caratteristiche descritte in questa pagina sono relative alla vecchia versione dell'engine (la 1.5). Le caratteristiche della versione 2009 saranno rese disponibili a breve.
-
GRAFICA
-
-
Sistema di determinazione delle superfici visibili
Con S2Engine è possibile costruire complesse scene tridimensionali con spazi aperti e chiusi.Ciò è possibile grazie all'utilizzo di una tecnica ibrida basata su un sistema bsp/portals nel quale ogni settore può essere integrato con un sistema octree/antiportal. - L'utente può decidere dove inserire un portale ed S2Engine automaticamente calcola l'insieme minimo di settori richiesti. Ciò ottimizza il culling della scena (cioè il sistema di determinazione delle superfici visibili) negli spazi chiusi senza gravare sul rendering degli spazi aperti considerati come un unico grande settore.
-
-
Terrain
-
S2Engine, dalla versione 1.5, supporta l'editing dei terrains. I Terrains posso essere scolpiti attraverso il disegno su heightmap manualmente e con combinazioni di filtri come erosione fluviale, erosione termica, ecc... E' possibile aggiungere alla geometria del terrain tanti starti quanti se ne vogliono per poter disegnare rocce, sabbia, erba, ecc...
E' anche possibile disegnare sui terrain modelli geometrici che rappresentano la vegetazione come alberi, cespugli, piante, ecc... -
-
Geometria statica e Instancing
I videogiochi moderni sono caratterizzati da scene con grosse quantità di dati geometrici, dunque sono neccessari grandi quantitativi di memoria dedicata alla geometria. Con la tecnica dell'instancing S2Engine ti permette di copiare lo stesso modello geometrico molte volte e di avere su schermo tanti modelli al costo (di memoria) di una sola instanza. D'altro canto l'instancing è computazionalmente più pesante rispetto alla geometria non instanziata. S2Engine ti permette di avere sia modelli instanziabili (quando hai bisogno di replicare più volte la stessa geometria) che modelli non instanziabili (quando non hai bisogno di replicare geometria ma di maggiore velocità di rendering). - Tutte le mesh di una scena possono avere più di un materiale, così puoi creare grandi ammassi di geometria complessa composta di più materiali in un unico modello che puoi ruotare, traslare, scalare.
-
-
Raggruppamento delle mesh
Le mesh di una scena possono essere raggruppate insieme. Ciò ti permette di avere grandi gruppi composti da molti oggetti che possono traslare, ruotare, scalare ed essere clonati in un unico passaggio, come fossero un unico oggetto. Il raggruppamento è anche molto utile per ottimizzare il 'culling' della scena e la selezione/picking degli oggetti: ad esempio se un gruppo di oggetti è interamente al di fuori della visuale della camera esso è intreramente scartato dalla pipeline di rendering, cosicchè l'engine non dovrà eseguire altri calcoli per scartare ogni singolo oggetto. Gruppi di oggetti inoltre possono essere a loro volta raggruppati in gruppi più grandi e così via, in una sorta di meccanismo a 'scatole cinesi'.
-
-
Dynamic Portal Scissoring
S2Engine è in grado di renderizzare ambienti ricchi di ombre e luci dinamiche grazie ad una tecnologia proprietaria denominata DPS. DPS (Dynamic Portal Scissoring) permette al sistema utilizzare i portali per ridurre, in base al volume di influenza di una luce ed al punto di vista corrente, l'area di schermo da utilizzare per disegnare ombre da essa generate e superfici da essa colpite.
-
-
Ombre
S2Engine è progettato per effettuare un rendering molto veloce dei volumi d'ombra con un algoritmo ottimizzato per un uso aggressivo dello scissor buffer. Ombre soft possono, inoltre, essere simulate attraverso la proiezione di textures da parte delle luci.
-
-
Illuminazione
- S2Engine è caratterizzato da un complesso sistema di luci per-pixel dinamiche che permettono la configurazione delle loro funzioni di attenuazione attraverso la combinazione di due textures oppure di una mappa cubica. S2Engine supporta, inoltre, gli shaders 3.0 che permettono effetti come bumpmapping doppio, riflessioni cubiche, riflessioni fresnel, phong shading, ecc. S2Engine è anche capace di simulare la luce ambientale attraverso un sistema proprietario di luci cubiche ambientali che permette di ottenere l'effetto di bumpmapping anche in assenza di luci.
- Attualmente sono supportati 4 tipi di luci:
- luci OmniDirectional
- luci spot
- luci dirazionali
- luce globale ambientale
-
Materiali
S2Engine permette l'utilizzo di materiali, da applicare alle superfici, che fanno un intenso uso di shaders e multitextuing. Attualmente gli shaders sono predisposti per simulare:- Riflessioni speculari Phong
- Riflessioni Cubemap bumpmap
- Trasparenza
- Self-illumination
- Glossisness
- Highlight speculare parametrico.
- Riflessioni Fresnel
- Ogni materiale supporta due canali di bumpmap (standard + dettaglio) e due canali texturemap (standard + dettaglio).
- Ogni texture può essere animata traslando le coordinate di mappatura ad essa associate in una direzione a scelta. Ciò permette, ad esempio, di simulare il movimento delle onde del mare usando due canali di bumpmap in animazione.
-
-
Post Processing
S2Engine è capace di generare una varietà di effetti di post processing che possono essere inclusi/esclusi dalla pipeline di rendering. - Colorizzazione e desaturazione
- Bloom
- Motion blur
- Queste immagini mostrano gli effetti della colorizzazione e desaturazione dello schermo
|
|
-
ANIMAZIONI
-
Animazioni Keyframed
Il sistema di animazione è stato progettato come naturale estensione dell'architettura basata su nodi dell'engine che permette di organizzare gli oggetti in modo gerarchico. La versione attuale permette di avere animazioni keyframed applicate sia a modelli skinnati (skin/bone based) che a modelli gerarchici (cioè composti da mesh organizzate in gerarchia) .
-
-
Blending delle animazioni
S2Engine è anche capace di generare il blending parametrico (transizione sfumata) tra due animazioni per evutare movimenti rapidi innaturali. Tale meccanismo può essere applicato sia a modelli skinnati che gerarchici.
-
FISICA
-
Modularità
S2Engine è interfacciato ad un sistema di fisica e di gestione delle collisioni contenuto in un modulo separato dal modulo principale. Ciò consente di aggiornare costantemente il sistema fisico senza modificare l'intero pacchetto.
-
-
Sistema di collisioni
Attualmente sono implementati due tipi di collisione: AABBox/scena collision (via BSP e Octrees locali) e AABox-AABox.
-
-
Dinamica
Nel modulo di fisica è contenuto un sistema di gestione della fisica delle particelle con integratore di Eulero. L'interfaccia del modulo consente di associare una particella fisica ad un oggetto della scena.
-
-
Picking
Ogni oggetto di scena può essere 'selezionato' attraverso l'operazione di 'picking' (cioè il test di intersezione raggio-oggetto). Il test viene effettuato su base triangolare con molta efficienza grazie all'implementazione di un octree locale per ogni mesh.
-
INTELLIGENZA ARTIFICIALE
-
IA stratificata
S2Engine include un sistema di IA organizzato a più livelli. I livelli più bassi contengono algoritmi di path-finding e di steering behaviours e i livelli più alti possiedono sistemi di message-routing e scripting.
-
-
Path-finding gerarchico
S2engine supporta algoritmi di path-finding con 2 livelli di gerarchia. Al livello più alto il percorso è generato automaticamente su base BSP/settori, ad un livello più basso è possibile manualmente generare un percorso in ogni settore attraverso l'utilizzo dei waypoint. Questo meccanismo permette a S2Engine di eseguire una ricerca dei percorsi molto veloce scartando le porzioni di percorso inutili.
-
-
Message routing
Tutti gli oggetti della scena possono comunicare tra di scambiandosi messaggi. Questa caratteristica consente di combinare il comportamento di diversi oggetti (triggers, armi, porte, ecc.) per ottenere comportamenti e logiche di gioco più complesse.
-
-
Linguaggio Script
Il comportamento di tutte le entità di gioco può essere customizzato attraverso l'utilizzo di un linguaggio di script proprietario. Tale linguaggio ha una sintassi molto semplice basata sul meccanismo di condizione (IF) che genera un azione (THEN). Utilizzando lo script è possibile ottenere differenti comportamenti su oggetti appartenenti alla stessa classe senza bisogno di programmazione troppo complessa.
-
TOOLS
-
WorldEditor
WorldEditor è il tool di sviluppo per la costruzione della geometria statica della scena. Con Worldeditor l'utente può creare la struttura bsp, inserire i portali, inserire mesh. A partire dalla versione 1.5 è possibile inoltre editare il terrain attraverso lo sculpting ed il painting della vegetazione e dei layers.
-
SceneStudio
SceneStudio è stato progettato per consentire l'inserimento delle entità di gioco come telecamere, luci, player, npc, armi ecc.. Dalla versione 1.5 in poi è inoltre possibile inserire oggetti statici da instanziare (vedi instancing) e raggruppare.
Ogni oggetto di scena appartiene ad una data classe in base al comportamento e ai suoi parametri. Nella versione BASIC è possibile associare ad ogni oggetto uno script che permette di personalizzare ulteriormente il suo comportamento. Nella versione PRO, in aggiunta, è possible creare intere nuove classi di oggetti attraverso l'SDK in C++. -
MaterialEditor
Usando il MaterialEditor è possibile editare le proprietà di un materiale. Tra le proprietà principali vi sono: Le texture e le normalmaps, la mappe di riflessione, le proprietà fisiche come frizione e elasticità, il livello di trasparenza e, a partire dalla versione 1.5 è possibile ottenere la traslazione delle coordinate di mappatura dei vari strati di texture. -
ModelStudio
ModelStudio è stato progettato per la gestione delle animazioni di un modello e dei suoi nodi.
L'utente può aggiungere o rimuovere un animazione, stabilire la transizione tra un' animazione e l'altra, impostare i fotogrammi chiave attraverso i quali è possibile conoscere, nello script, l'istante esatto in cui il modello assume una determinata postura per poter eseguire una determinata azione, ad esempio l'esecuzione di un suono.
Modelli ed animazioni risiedono i file diversi. Ciò consente, di associare a differenti modelli la stessa animazione. A partire dalla versione 1.4.1 è possibile inoltre la gestione dei nodi di un modello e la costruzione delle mesh di collisione utili soprattutto per i modelli skinnati. -
Tools di esportazione
Il set di tools di S2Engine contiene inoltre alcuni plug-ins di esportazione da utilizzare con pacchetti di modellazione di terze parti.
Tali programmi permettono di esportare vari tipi di file proprietari che contengono informazioni riguardo: mesh semplici, modelli skinnati, mesh gerarchiche, animazioni, ecc… -
Formati file di terze-parti supportati
S2Engine supporta anche una varietà di famosi formati di file di terze-parti utilizzati da numerosi altri programmi. Tali file sono: WAV per i suoni, TGA per le textures, COLLADA per i modelli ed animazioni. Altri formati sono previsti per i prossimi aggiornamenti: OGG per i suoni , DDS e PCX per le textures.
I Plug-ins di esportazione COLLADA sono disponibili su: www.feelingsoftware.com.
|
|
|
|
|
|
|
|
|
-
PROGRAMMAZIONE
-
SDK (PRO - FULL)
Nella versione PRO e FULLdi S2ENGINE è contenuto l'SDK in C++. L'SDK permette di creare nuovi moduli o plug-ins per la gestione dei sottosistemi dell'S2Engine: RenderDevice, AudioDevice, Input Device, ecc. Inoltre con l'SDK è possibile creare nuove classi per le entità di gioco, anche, ma non solo, partendo da quelle già disponibili come: BasePack, CharacterPack, GadgetPack, TriggerPack, DoorPack. - Queste librerie sono le librerie di base per la gestione delle entità di gioco fornite anche con la versione BASIC .