J3Reality è un ambiente di Realtà Virtuale e Realtà Aumentata innovativo, che permette di integrare tutto il ciclo di progettazione di prodotti verso una visualizzazione ad altissimo realismo in tempo reale. Una volta creata la geometria dell’oggetto/degli oggetti desiderati, è possibile importarla in J3Reality in modo molto semplice e modificare a fondo la scena in pochi ed intuitivi passaggi: - Inserimento di un’ambientazione che si adatti alla tipologia di prodotto e sistemazione dei parametri e degli oggetti principali della scena (come anti-aliasing e posizionamento delle luci): tutte modifiche realizzabili con un paio di click ed altamente intuitive (slider, finestre di colore, ecc.). - Modifica dei materiali, delle texture, degli shader dei vari oggetti caricati: tutte modifiche realizzabili con un paio di click ed altamente intuitive (slider, finestre di colore, ecc.). - Collegare eventuali oggetti/azioni/animazioni a marker predeterminati. - Abilitare le funzionalità desiderate: ombre, Realtà Aumentata, Ray Tracing. - Vivere l’esperienza di una simulazione totalmente immersiva (se ad esempio si utilizzano sistemi di tracking) ad alto grado di realismo.
NOTA: J3Reality viene sviluppato per scopi di ricerca dalla sezione R&D della J3Tech. Contattaci per maggiori informazioni.
- una volta caricata una scena è possibile decidere se ottimizzarla, ad esempio eliminando oggetti ridondanti/degeneri, combinando oggetti compatibili ed unificando oggetti equivalenti. - se una scena caricata non contiene un’ambientazione è possibile aggiungerla con un semplice click. - in ogni istante vengono visualizzati il frame-per-second e il numero di triangoli e di vertici della scena caricata. - tramite click del mouse direttamente dove viene visualizzata la scena o nella barra contenente lo scenegraph di essa è possibile selezionare qualsiasi oggetto che la compone e modificarne a fondo i parametri. Citando solo alcuni dei principali parametri di alcuni oggetti come esempio, è possibile settare a runtime gli hint per ciascun oggetto; il posizionamento, la scala e l’orientazione per i transform; il colore, la posizione, la direzione e l’ampiezza del cono si luce per le “spot light”.
GESTIONE VIEWSTATE
- è possibile settare uno specifico livello di anti-aliasing hardware (2x, 4x, 8x, 16x) e software (2x, 3x, 4x, 5x, 6x, 8x, 9x, 12x, 16x in varie esclusive modalità JT_READ_PIXELS, JT_ACCUMULATION_BUFFER, JT_PBUFFER, JT_FBO). - è possibile settare i parametri della camera associata al ViewState: posizione, orientazione, up vector, headlight ecc.
GESTIONE MATERIALI, TEXTURE, SHADERS
- è possibile settare nella barra delle proprietà dell’oggetto tutti i possibili parametri esposti da SceniX per i materiali degli oggetti, tra cui colori (ambient, specular, diffuse, emissive), reflectivity, opacity, blending functions, Specular exponent e index of refraction. - è possibile settare nella barra delle proprietà dell’oggetto tutti i possibili parametri esposti da SceniX per le texture degli oggetti, tra cui le texture coordinate, l’immagine sorgente, il texture target, i filtri di minification e magnification, l’environment mode (come blend, replace decal, ecc.) i wrap mode per i wrap axis e traslazione e scala di essa. - è inoltre possibile applicare a runtime tramite barra delle proprietà un qualsiasi shader scritto in HLSL o CgFx ad un oggetto della scena: J3Reality si preoccuperà di far compilare tale shader da SceniX e di mostrare all’utente tutti i parametri che tale shader espone tramite controlli specifici e sempre molto intuitivi che ne permettono la modifica del comportamento in tempo reale.
GESTIONE OMBRE
J3Reality consente la visualizzazione delle ombre migliorando la qualità ed aggiungendo funzionalità all’esempio fornito con SceniX: - Innanzitutto permette l’utilizzo di luci fisse, non per forza legate alla Camera. - Inoltre consente il mantenimento delle texture agli oggetti che ricevono le ombre. - Permette di evitare che oggetti con INVISIBLE_MASK settata proiettino ombre (molto utile nel caso in cui sia presente una sfera di ambientazione). - Permette di migliorare la qualità delle ombre, riducendo sharpness (marcata distinzione tra ombra e luce) e jagging (dentellatura) dei contorni, utilizzando un’algoritmo di Percentage Closer Filtering (PCF). - Aggiunge la possibilità di far si che un’oggetto trasparente (come ad esempio un piano), mostri comunque le ombre ricevute: è un artifizio molto comodo far credere che un oggetto sembri appoggiato ad un piano presente nell’ambientazione (che in realtà è applicato ad una superfcie sferica).
GESTIONE REALTA’ AUMENTATA
J3Reality consente di realizzare realtà aumentata con tutta la qualità di rendering raggiunta con l’applicazione di materiali, texture, shaders e ombre, rendendo impercettibile la distinzione tra oggetti reali ed oggetti virtuali. Inoltre J3Reality utilizza un algoritmo derivato dall’optical flow incluso nelle OpenCV per permettere la riduzione quasi totale del flickering degli oggetti virtuali quando nè camera nè marker vengono mossi (dovuto al rumore di acquisizione). Le funzionalità esposte sono inoltre: - La possibilità di collegare qualsiasi oggetto presente nella scena ad un ben determinato marker. - La possibilità di associare azioni/animazioni da eseguire sulla scena una volta visualizzati ben determinati marker. - La possibilità di sfruttare le ombre ed i piani trasparenti per far si che gli oggetti sembrino appoggiati ad oggetti reali presenti nella scena.
GESTIONE RAY TRACING*
J3Reality consente di visualizzare la scena in real time** con il realismo eccezionale fornito dall’algoritmo di ray tracing. Il real time viene consentito dall’algoritmo di “Adaptive Anti-Aliasing”, che permette un rendering ad alta velocità ed a bassa qualità nei transitori (quando si naviga nella scena) ed un rendering sempre più realistico una volta che si mantiene fissa la camera. In J3Reality è poi possibile settare un’ambientazione di ray tracing e gestire il comportamento/l’aspetto degli oggetti presenti nella scena modificando le loro proprietà nella barra apposita e magari aggiungendo un attributo specifico RTFx (scritto in CUDA). Per ora sono presenti solo due possibili attributi specifici: - Glass: permette di realizzare oggetti in vetro altamente realistici (molto più che utilizzando solo le trasparenze, le riflessioni e l’IOR dei materiali). - Floor: rende trasparenti oggetti che ricevono ombre pur visualizzando tali ombre, non facendole così scomparire con essi. Ciò, come detto nel caso degli shader, è un artifizio molto comodo far credere che un oggetto sembri appoggiato ad un piano presente nell’ambientazione (che in realtà è applicato ad una superfcie sferica).
* utilizzabile solo con schede grafiche NVIDIA supportate. ** dipende essenzialmente dall’hardware posseduto e dalla scena caricata: più potente è la scheda video/meno poligoni compongono la scena caricata, più si raggiunge un grado elevato di real time.
RAY TRACING
OpenGL Capabilities
Minimum: OpenGL 1.4 compliant graphics board
Recommended: OpenGL 2.1 or higher
Ideal: NVIDIA Quadro FX or Fermi-based graphics board
Interactive Ray Tracing Capabilities
NVIDIA GPUs of G80 class or later
CUDA 3.1 compliance
GT200 or Fermi architecture required for using multiple GPUs
Platform Support:
Windows XP, Windows Vista, and Windows 7 in 32-bit/64-bit
Optional:
NVIDIA Quadro HD SDI video i/o
NVIDIA Quadro (FX or Fermi series) for 30-bit color output and quad buffered stereo
NVIDIA Quadro Plex systems for large scale visualization with CompleX (up to 32 GB with 8 GPUs)