Canale visivo: componenti



Documenti analoghi
VR Engine Software. (Dassault. Quest 3D (Act 3D) VirTools. Systems) Realtà Virtuale: il presente, il passato, Interazione

AMBIENTE VIRTUALE. Canale visivo: componenti. Moduli logici AMBIENTE VIRTUALE UTENTE 07/04/2010. Management Rendering Interazione CANALE VISIVO

Canale visivo: componenti

Canale visivo: componenti

Introduzione ai software per la produzione di contenuto 3D

Introduzione a 3ds Max

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Le command line di Java

Architetture Informatiche. Dal Mainframe al Personal Computer

Software di base. Corso di Fondamenti di Informatica

Introduzione Computer Graphics

Introduzione a API e game engine per la programmazione grafica

Architetture Informatiche. Dal Mainframe al Personal Computer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

SOMMARIO. Introduzione - OpenInventor. Introduzione - OpenInventor. OpenInventor

Tecniche di progettazione e sviluppo di applicazioni mobile

Adobe Flash CS5.5 e Web Animation. Lezione 7: introduzione ad ActionScript 3.0, livelli guida, realizzazione di un player audio in streaming

Corso di Informatica

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

Tale attività non è descritta in questa dispensa

Eclipse - Nozioni Base

Corso di Realtà Virtuale

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

CAD 2D/3D E RENDERING

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java

Rapporto tecnico sulle tipologie di agenti software definiti e implementati nell ambito del progetto

WebGL. Lezione 18: 15 Maggio 2014

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2.

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Siti interattivi e dinamici. in poche pagine

Architetture Applicative

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

OmniAccessSuite. Plug-Ins. Ver. 1.3

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Dynamic 07 -Software per la lettura ottica e data capture. G.Q.S. Srl Global Quality Service Via Bernini, 5/7 Corsico (MILANO)

Progettazione : Design Pattern Creazionali

Corso Eclipse. Prerequisiti. 1 Introduzione

Reti di Telecomunicazione Lezione 6

Grafica 3D Interattiva

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Strumenti per la programmazione

Computer Graphics. La disciplina fornisce metodi per creare elaborare memorizzare visualizzare. immagini di oggetti o scene mediante un computer

Registratori di Cassa

OpenVAS - Open Source Vulnerability Scanner

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Installazione del driver Driver audio USB Manuale di installazione (Windows) Indice. Installazione del driver... Pagina 1

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Introduzione alle applicazioni di rete

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Introduzione al Python

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

sito web sito Internet

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

7.4 Estrazione di materiale dal web

Corso sul linguaggio Java

Ambienti di Sviluppo

ARCHIVIO GRAFICO ESTESO

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Amazon VPC (Virtual Private Cloud)

COMPILAZIONE DI UN APPLICAZIONE. 1) Compilare il file (o i file se più d uno) che contengono il testo del programma. compilatore

Introduzione all uso di Eclipse

Realizzare la VR: i software. Piattaforme per la VR: VRML. Il più diffuso: VRML (Virtual Reality Modeling Language)

Realtà Virtuali Prof. Raffaella Folgieri, aa 2013/2014. Realizzare la VR: i software

Sistemi informativi secondo prospettive combinate

Capitolo 4 Pianificazione e Sviluppo di Web Part

3D e Realtà Virtuale

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

The Enterprise Service BUS. Manuale utente - VulCon

4. Un ambiente di sviluppo per Java

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

SQL Server Express Edition è la novità di Visual Studio.Net versione di SQL Server che presenta la seguenti caratteristiche:

Il web server Apache Lezione n. 3. Introduzione

Lorenzo Sarti Materiale didattico sarti

Architettura di un sistema operativo

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at] .

CAPITOLO 1 PREREQUISITI DI INSTALLAZIONE SOFTWARE RICAMBI CAPITOLO 2 PROCEDURA

Compilatore risorse display grafico LCD serie IEC-line

Protezione. Protezione. Protezione. Obiettivi della protezione

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Installazione e caratteristiche generali 1

WorkFlow Management Systems

Programmazione in Java Parte I: Fondamenti

Progetti F.O.S.S. Ieri e Oggi

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Estensioni e modelli. Ancora poco conosciuti, consentono di estendere la suite per l ufficio. Ecco come servirsene

19. LA PROGRAMMAZIONE LATO SERVER

Application Server per sviluppare applicazioni Java Enterprise

Informatica. Prof. A. Longheu. Introduzione a Java

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Visual basic base Lezione 01. L'ambiente di sviluppo

1 Istruzioni installazione ITC Items

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Il Sistema Operativo (1)

fonte:

Transcript:

Canale visivo: componenti AMBIENTE VIRTUALE SW modules of visual modelling & rendering CANALE VISIVO CANALE Graphical ACUSTICO Feedback CANALE APTICO HW devices of visualization CANALE INERZIALE UTENTE

Moduli logici Sintesi Modellazione Campionamento Comportamenti Proprietà AMBIENTE VIRTUALE Management Rendering Interazione UTENTE

Software per la grafica 3D Obiettivi distinti ma collegati: modellazione geometrica animazione modellazione fisica rendering generazione di un immagine 2D corrispondente alla prospettiva della scena/modello a partire dal viewpoint - impostazione delle luci - definizione dei materiali - definizione delle inquadrature - calcolo del risultato - offline / real-time

Software per la grafica 3D grandissima varietà in genere rispondono a molteplici esigenze spesso a tutte ma a diversi livelli di completezza in linea di massima possiamo distinguere: suite complete tool specifici (spesso plugin per le suite) molti paradigmi diversi interfacce molto dissimili tendenza all'uniformità

Modellazione NURBS e simili curve parametriche uso tipico: CAD, design (es. automobili) Poligonale low poly per applicazioni interattive strumenti specifici per ridurre il numero di poligoni Digital sculpting diverso modo di interagire con mesh poligonali

Animazione definizione percorsi in genere curve parametriche definizione deformazioni tramite armature tipico ad esempio per personaggi o strumenti meccanici tramite interpolazione fra mesh modificate (key frame animation) tipico ad esempio per le espressioni facciali gestione di azioni e interpolazioni

Definizione dei materiali strettamente connessa all'uso previsto per applicazioni interattive fino a ieri poco più che definizione texture oggi software appositi per messa a punto shaders RenderMonkey per rendering offline modelli di interazione luminosa complessi possibilità di esprimere le proprietà del materiale addirittura con del codice sistemi RenderMan, shading a nodi, ecc.

Rendering gestione della telecamera piazzamento nella scena, inquadratura, lente, moto della camera, ecc. impostazione di parametri dimensioni finali numero di frame varie impostazioni di qualità grande varietà di tipi di renderer Non Photorealistic Rendering, biased/unbiased ( corretti o approssimati ) ecc.

Gestione del comportamento interattivo definirlo direttamente dentro il programma, impostando proprietà dei vari oggetti generalmente più facile ma meno potente esportare la geometria e gestire gli oggetti in un altro ambiente di sviluppo necessitiamo dunque di un exporter per il formato: leggere dal programma originale i dati che ci interessano (serve dunque una API di interazione con quel particolare programma) riorganizzarli e scriverli in un file secondo le nostre esigenze

Software per modellazione e rendering

Autodesk 3ds Max molto diffuso buon compromesso fra aspetti artistici e CAD Jurassic Park, Harry Potter, etc. modellazione, materiali, animazione, rendering integrazione con renderer esterni (Mental Ray, VRay, etc.) Scripting, SDK versione 9, costo $3.495 www.autodesk.com/3dsmax

Autodesk Maya interfaccia raffinata (es. menù circolari) scripting molto potente, anche Python costo versione 8.5: $1999 o $6999 (unlim.) www.autodesk.com/maya

Blender programma free e open source suite di tool per il 3D modellazione (supporta digital sculpting) animazione piuttosto avanzata rendering: non il punto forte video editing e compositing game engine Wiki: wiki.blender.org Forum: www.blenderartist.org

Altri software Cinema, videogiochi: Softimage XSI (es. FFXI, Half Life 2, etc.) www.softimage.com Lightwave 3d 09 - www.newtek.com/lightwave Modelli x Mappe 3D (e ormai molto altro...) Google SketchUp - www.sketchup.com CAD meccanici Pro-Engineer Solidworks Altri CAD AutoCAD (architettura, ingegneria) ArchiCAD (architettura) Rhino (NURBS, design)

Altri software Digital Sculpting: Pixologic Z-Brush 3.0 www.pixologic.com/zbrush/home Mudbox 1.0 www.mudbox3d.com Animazione di figure umane: Poser Generazione di scenari realistici Bryce Convertitori di formati Okino Polytrans Deep Exploration

Renderer Commerciali: Maxwell Mental Ray RenderMan Vray Free: Indigo, Yafray, POVray, WinOSI...

Software per rendering real-time

3D real-time libraries Librerie di basso livello : OpenGL Cross platform Non proprietaria Supportata da un Architectural Review Board Estensibile Usata soprattutto nei settori professionali/ricerca Direct3D Parte di DirectX Proprietaria (Microsoft) Windows only Diffusissima per giochi ENTRAMBE accelerate in hardware

3D real-time engines Le librerie di basso livello sono perfettamente utilizzabili direttamente nelle applicazioni, ma un livello più alto è spesso molto utile: Riutilizzo di codice Ottimizzazione delle funzionalità Implementazione di funzionalità di base non disponibili (es. caricamento di mesh) Nascono numerosi 3D Engine che si fanno carico di rendere trasparenti al programmatore molte operazioni Quake Engine (ID Software) Unreal Engine Ogre 3D etc

Complessità di un sistema VR Network Manager (~ 10 Hz) Simulazione (Fisica, ) AMBIENTE VIRTUALE (~ 200 Hz) Main Application CANALE Visual Rendering VISIVO (~ 60 Hz) CANALE Audio Rendering ACUSTICO (~ 60 Hz) CANALE Haptic Rendering APTICO (~ 1 KHz) Motion CANALE Rendering INERZIALE (~ 1 KHz) Tracking MoCap (~ 30 Hz) UTENTE Interaction Manager (~ 30 Hz)

VR frameworks I 3D engines sono solo uno dei componenti di un sistema di RV Per gestire efficamente l interazione e il rendering su tutti i canali sensoriali occorre integrare numerose librerie, engines, e driver Esempio: Canale visivo: OpenGL/Directx (o 3D Engines built-on-top) Canale acustico: OpenAL/DirectSound (o 3DAudio Engines - es. Fmod) Canale aptico: OpenHaptics/Chai (o Haptics Engines es. Hapticweb) Approccio bulldozer: applicazione C++ che usa tutti questi componenti -> programmer s nightmare Approccio auspicabile: utilizzo di un framework che si faccia carico di tutta la gestione dell infrastruttura (es. comunicazione fra librerie, networking, supporto ad hardware di diverso tipo, etc.)

VR frameworks Applicazione Fisica Networking VRFramework 3D Graphics Engine 3D Audio Engine 3D Haptics Engine OpenGL OpenAL OpenHaptics HW Visual HW Audio HW Haptic HW Tracking

Workflow (canale visivo) 3D Modeling Software modellazione Geometria Materiali Texture esportazione File geometria Textures importazione Ambiente Virtuale Applicazione programmazione VR Framework

VR framework: Virtools Commerciale Suite di strumenti di sviluppo Separa gli oggetti dai comportamenti Le applicazioni nascono dall assemblaggio di oggetti e comportamenti GUI visuale per assemblare blocchi precostituiti Linguaggio di scripting per specificare comportamenti più articolati Supporta molti dispositivi di rendering (dallo schermo semplice al CAVE) http://www.virtools.com

VR framework: VR Toolkit Supporto a Tecnologie di visualizzazione stereoscopica Guanti (data gloves) Dispositivi aptici Gamepads e joystick Suono 3D Networking Linguaggio di script basato su Python http://www.worldviz.com

VR framework: XVR

XVR

XVR stack di sviluppo VR System Development XVR Scripting Language Virtual Machine Scene Graph Core Libraries 3d Graphics Engine 3d Sound Engine Physics Engine Haptics Engine Cluster Renderer Hardware Abstraction Layer VR System Hardware

XVR Loops 3 Callback principali OnFrame() OnTimer() ~ 60 Hz 100-1000 Hz Tutte le variabili sono condivise VR_EVENT_1 VR_EVENT_3 OnEvent() VR_EVENT_2 VR_EVENT_4

XVR features User interaction management Photo-realistic rendering Multi-channel visual stereoscopic display (CAVEs) Hardware interfaces support Advanced content authoring and management

XVR Cluster Renderer Possibilità di usare più PC slave per renderizzare una singola scena (o più viste di una singola scena)

Dove avviene la sincronizzazione? User Input Sort First Script Language User Input Scene Graph Sort Early C++ Language Scene Graph OpenGL commands Sort Late OpenGL OpenGL commands Frame buffer image Sort Last Raster images Frame buffer image

XVR Cluster Renderer L XVR Network Driver permette il network rendering su un cluster di nodi slave Slaves Master Il nodo Master usa uno speciale driver per intercettare le chiamate OpenGL e inoltrarle agli slave usando pacchetti UDP

XVR Cluster Renderer

XVR Cluster Renderer (CAVE)

XVR E suddiviso in due moduli principali: XVR Virtual Machine: contiene il core della tecnologia (engine grafico, engine multimediale etc.) XVR ActiveX Control: realizza l interfaccia web Opzionalmente è possibile aggiungere moduli addizionali per gestire features extra

XVR Virtual machine Virtual Machine La XVR-VM contiene: - Un set di istruzioni bytecode - Un set di registri - Uno stack - Un area per i metodi Il comportamento delle applicazioni viene specificato tramite un linguaggio di scripting (S3D) Lo script S3D viene compilato in un bytecode che viene processato ed eseguito dalla XVR-VM OP1 OP2 OP3 SP BS IP Function bytecode Class Lib Class decl STACK Const GLOBAL VAR Function

XVR Workflow Dedicated scripting language Output Binary ByteCode Compiler Interpreter (Virtual Machine)

Web embedding Il bytecode prodotto (.bin) può essere eseguito dalla VM con un applicazione ad hoc o inserito in una pagina HTML Quando si accede, in locale o in remoto, alla pagina HTML che ospita l applicazione XVR: Viene controllata la versione dell XVR engine e, se localmente è assente quella specificata nella pagina HTML, viene scaricata dalla rete la versione giusta Viene scaricato il bytecode dell applicazione Vengono scaricati i file di dati associati all applicazione (modelli3d, textures, file multimediali etc.) Viene eseguito il bytecode sulla XVR-VM

Web embedding: codice HTML <OBJECT ID= AppName WIDTH = 800 HEIGHT = 800 CLASSID = "CLSID:5D589287-1496-4223-AE64-65FA078B5EAB" TYPE = "application/x-oleobject" align="left" border="2" CODEBASE = "http://client.vrmedia.it/xvrplayer.cab#version=1,0,0,900 > <PARAM NAME="ScriptName" VALUE=" AppName.s3d.bin"> <PARAM NAME="EngineVersion" VALUE="0136"> <PARAM NAME="BackgroundColor" VALUE="#000066"> <PARAM NAME="Params" VALUE "DEPTH=24"> <PARAM NAME= UserParams" VALUE " "> </OBJECT>

Engine version Un solo controllo ActiveX control for versioni multiple dell Engine Ogni Engine è autosufficiente Di tanto in tanto vengono rilasciate nuove versioni dell Engine (auto-update da web) The sequence was 0100, 0101,, 0142 Convenzione di naming Engine Family (sempre la stessa) 0142 Progressivo all interno della famiglia Compiler Generation Number

XVR scripting language (.S3D) Sintassi simile a JAVA e BASIC Byte code virtual machine model Type less Object oriented Costrutti dedicati alla VR

Loop negli ambienti virtuali Network Manager (~ 10 Hz) VIRTUAL ENVIRONMENT Physics (> 100 Hz) Main Application Visual Audio Haptic Motion VISUAL ACOUSTIC HAPTIC Rendering Rendering Rendering Rendering INERTIAL (~ 60 Hz) (~ 60 Hz) (~ 1 KHz) (~ 1 KHz) Tracking MoCap (~ 30 Hz) USER Interaction Manager (~ 30 Hz)

L approccio XVR 3 Main Call-backs (+ 3 special ones) OnFrame() OnTimer() ~ 60 Hz 100-1000 Hz Tutte le variabili sono condivise VR_EVENT_1 VR_EVENT_3 OnEvent() VR_EVENT_2 VR_EVENT_4

Struttura di uno script S3D Ogni script S3D è basato su 6 funzioni predefinite: OnDownload() OnInit() OnFrame() OnTimer() OnEvent() OnExit() Queste funzioni vengono automaticamente invocate al verificarsi di determinati eventi

OnDownload() E la prima funzione ad essere invocata Ogni volta che uno script XVR viene eseguito, viene creata una cartella di lavoro nella temp di sistema Nella OnDownload i files usati dall applicazione dalla locazione originale (server o locale) vengono spostati nella cartella di lavoro Gli archivi ZIP vengono decompressi automaticamente Nella OnDownload si può inserire anche codice generico

OnInit() Viene chiamata all inizio dell applicazione, subito dopo la OnDownload() E il posto per gestire il caricamento dei data-files scaricati e tutte le inizializzazioni. Può ricevere parametri di ingresso specificati nella pagina HTML con il tag <UserParams>

OnFrame() E la funzione dedicata al rendering. Di default viene chiamata ad una frequenza pari al refresh rate (60 Hz). Il target frame-rate può essere cambiato usando SetFramerate(Value); E la sola funzione ad accedere al frame buffer OpenGL Il massimo frame-rate possibile è 100 Hz

OnTimer() E la funzione normalmente dedicata alla gestione di loop ad alta velocità (fisica, collision detection, etc.) Di default viene chiamata a 100 Hz. Il time-step può essere cambiato usando: SetTimestep(Value); Minimo time-step = 1ms Independente dal framerate (a meno che il sistema non sia sovraccarico) Non ha accesso al framebuffer

OnEvent() Funzione prevista per la gestione di eventi (event-driven programming) OnEvent (EventID, param1, param2); Gli eventi possono essere generati da XVR, dal programmatore XVR (GenerateEvent(ID, param)) o all esterno di XVR (eventi Win32) Un esempio di evento XVR è quello generato quando termina un download eseguito con la funzione FileDownload(); [ che però è gestita dalla callback specifica OnDownloadReady() ]

OnExit() OnExit() Viene eseguita all uscita dell applicazione. L uscita può avvenire esplicitamente o in seguito alla chiusura della pagina HTML contenitore.

S3D: Statements e preprocessore IF..ELSE WHILE DO..WHILE FOR BREAK CONTINUE SWITCH..CASE SET SCENE_FOV SCENE_NEAR SCENE_FAR AUDIO_MODE Field of view Near clipping plane distance Far clipping plane distance 3d Audio Setup mode #DEFINE #IFDEF #ENDIF #ELSE #INCLUDE #PRAGMA

Funzioni Il tipo di parametri non viene specificato Il tipo del valore di ritorno non viene specificato

S3D: Tipi di dato La dichiarazione delle variabili non specifica il tipo. Il tipo viene specificato con l assegnamento o l inizializzazione: VAR i; VAR j,k; VAR x = 2; VAR y = 3.1; VAR s = Don t panic!!! k = 4.3; i = 8; i = 9.2; VAR v = [0.0, 1.0, 0.0];

S3D: Tipi di dato predefiniti INT, FLOAT, BOOLEAN (non sono dichiarabili) STRING (non è dichiarabile) ARRAY: è un set di elementi a cui si può accedere tramite un indice. Gli elementi possono essere di tipo diverso. Var1 = { 1, true, { 12, 3 }}; // Array made of different types Var2 = Array(12); // Creates an array of 12 elements Var3 = Var1[0]; // Var3 equals 1 Var4 = Var1[2][0]; // Var4 equals 12 Var1[1] = true; VECTOR: è un array di float Var1 = [ 0.2, 2, 3.33, 4 ]; Var2 = Vector(16); // creates a 16-elements vector Var3 = Var1[0]; // Var3 equals 0.2

S3D: Tipi di dato predefiniti OGGETTI Gli oggetti possono essere dichiarati come istanze di: - Classi predefinite - Classi definite dall utente Obj1 = CVmLight(); Obj1.SetPosition( 10,10,20);

S3D: Dichiarazioni di classi Class Playlist { var id; var name; var elements; Add(el); Start(); Stop(); }; // Identificativo unico della playlist // Nome della playlist // Array di id che compongono la playlist // Aggiunge un elemento // Avvia la playlist // Stop della playlist function Playlist::Playlist(i,n,) { id = i; name = n; elements = {}; } // Il costruttore è dichiarato di default function Playlist::Add(song) { aadd(elements,song); }

S3D: Ereditarietà multipla Class Vehicle: Engine, Bodywork { var m_desc; var m_numweels; var m_maxvel; Info(); }; Multiple inheritance, comma separated function Vehicle::Vehicle( Desc, Weels, MaxVel, EngineFuel, EngineHP, BodyColor, BodyStuff ) { } m_desc = Desc; m_numweels = Weels; m_maxvel = MaxVel; Engine::this.Init( EngineFuel, EngineHP ); Bodywork::this.Init( BodyColor, BodyStuff ); Calling a base class method

Importare funzioni esterne (1/2) XVR consente di implementare funzionalità non disponibili nell engine embedded attraverso dll esterne Dichiarare una variabile di tipo CVmExternDLL var mylib = CVmExternDLL( mylib.dll"); Chiamare AddFunction per ogni funzione da importare dalla dll mylib. AddFunction(C_VOID, lib_initialize ); mylib. AddFunction(C_VOID, lib_obj_get_mat, C_INT, C_PFLOAT); Non è necessario importare tutte le funzioni esportate dalla dll

Importare funzioni esterne (2/2) Si scarica la DLL in FileDownload FileDownload( mylib.dll ); E necessario scaricare anche tutte le dll da cui dipende la nostra, se non già presenti nel sistema FileDownload( msvcr71d.dll ); Le funzioni importate diventeranno metodi dell oggetto CVmExternDLL mylib.lib_initialize(); var v = vector(16); mylib.lib_get_obj_mat(idx, &v);

XVR Tools

XVR Studio IDE

XVR built-in profiler

XVR AAM viewer

XVR Add-ons XVR Texture Converter

XVR Add-ons XVR State Machine Visual Editor

XVR Add-ons XVR Shader Editor

BREAKING news: XVR Debugger A new beta XVR compiler supports producing additional information needed for debugging Interaction with the debugger takes place either through a shell or a GUI GUI is made available by the Eclipse framework. An Eclipse plugin has been implemented supporting XVR code highlighting and communication with the debugger via a dedicated pipe Fully working version expected in May 2011

XVR Debugger Breakpoint Single step trace

XVR Debugger Workspace management Variables watch 70

XVR: Script precompilati Added the directive #import to support importing XVR libraries consisting of precompiled.bin files Compile ExternLib.s3d.bin Use 71