71
Software per canale visivo AMBIENTE VIRTUALE CANALE VISIVO Canale visivo: componenti Graphical Feedback SW modules of visual modelling & rendering HW devices of visualization

AMBIENTE VIRTUALE - percro.sssup.it

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

AMBIENTE VIRTUALE

UTENTE

CANALE

VISIVO

CANALE

ACUSTICO

CANALE

APTICO

CANALE

INERZIALE

Canale visivo: componenti

Graphical

Feedback

SW modules of visual

modelling & rendering

HW devices

of visualization

Page 2: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Moduli logici

Sintesi Campionamento

Comportamenti Proprietà

Rendering

UTENTE

Interazione

AMBIENTE VIRTUALE

Modellazione

Management

Page 3: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Software per la grafica 3D

Obiettivi distinti ma collegati:

modellazione geometrica

animazione

modellazione fisica

rendering

- impostazione delle luci

- definizione dei materiali

- definizione delle inquadrature

- calcolo del risultato

- offline / real-time

generazione di un immagine 2D

corrispondente alla prospettiva

della scena/modello a partire dal

viewpoint

Page 4: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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à

Page 5: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 6: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 7: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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.

Page 8: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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.

Page 9: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 10: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Software per modellazione e rendering

Page 11: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 12: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Autodesk Maya

interfaccia raffinata (es. menù circolari)

scripting molto potente, anche Python

costo versione 8.5: $1999 o $6999 (unlim.)

www.autodesk.com/maya

Page 13: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 14: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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)

Page 15: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 16: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Renderer

Commerciali:– Maxwell

– Mental Ray

– RenderMan

– Vray

Free: – Indigo, Yafray,

POVray, WinOSI...

Page 17: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Software per rendering real-time

Page 18: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 19: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 20: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Complessità di un sistema VR

CANALE

VISIVO

CANALE

ACUSTICO

CANALE

APTICO

CANALE

INERZIALE

AMBIENTE VIRTUALE

UTENTE

Visual

Rendering(~ 60 Hz)

Audio

Rendering(~ 60 Hz)

Haptic

Rendering(~ 1 KHz)

Motion

Rendering(~ 1 KHz)

Tracking

MoCap(~ 30 Hz)

Interaction

Manager(~ 30 Hz)

Simulazione

(Fisica, …)(~ 200 Hz)

Network

Manager(~ 10 Hz)

Main

Application

Page 21: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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.)

Page 22: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

VRFramework

VR frameworks

HW Visual HW Audio HW Haptic HW Tracking

OpenGL OpenAL OpenHaptics

Fisica

Applicazione

Networking

OpenGL OpenAL

3D Graphics

Engine3D Audio Engine 3D Haptics Engine

Page 23: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Workflow (canale visivo)

3D Modeling

Software

Geometria

Materiali

Texture

modellazione

File

geometria

Textures

esportazione

importa

zio

ne

VR

Frameworkprogrammazione

Applicazione

Ambiente

Virtuale

Page 24: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 25: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 26: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

VR framework: XVR

Page 27: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR

Page 28: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Virtual Machine

Hardware Abstraction Layer

Scene Graph

Core Libraries

XVR stack di sviluppo

3d Graphics

Engine3d Sound

Engine

Physics

EngineHaptics

Engine

VR System Hardware

XVR Scripting Language

VR System

Development

Cluster Renderer

Page 29: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

~ 60 Hz 100-1000 Hz

3 Callback principali

OnFrame() OnTimer()

Tutte le variabili sono condivise

OnEvent()

VR_EVENT_1

VR_EVENT_3

VR_EVENT_2

VR_EVENT_4

XVR Loops

Page 30: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

User interaction

management

XVR features

Multi-channel visual stereoscopic display (CAVEs)

Photo-realistic rendering

Hardware interfaces supportAdvanced content authoring and management

Page 31: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

• Possibilità di usare più PC “slave” per renderizzareuna singola scena (o più viste di una singola scena)

XVR Cluster Renderer

Page 32: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Dove avviene la sincronizzazione ?

Script Language

Scene Graph

OpenGL

commands

Frame

buffer image

User Input

Scene Graph

OpenGL

commands

Frame

buffer image

Sort First

Sort Early

Sort Late

Sort Last

User Input

C++ Language

OpenGL

Raster images

Page 33: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 34: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Cluster Renderer

Page 35: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Cluster Renderer (CAVE)

Page 36: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 37: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

La XVR-VM contiene:

- Un set di istruzioni bytecode

- Un set di registri

- Uno stack

- Un area per i metodi

Il comportamento delle applicazio-

ni viene specificato tramite un lin-

guaggio di scripting (S3D)

Lo script S3D viene compilato in un

bytecode che viene processato ed

eseguito dalla XVR-VM

XVR Virtual machine

Virtual Machine

IP

bytecode

OP1 OP2 OP3

BS

STACK

FunctionClass Lib

Class declConst Function

GLO

BAL

VAR

SP

Page 38: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Workflow

CompilerInterpreter

(Virtual Machine)

Dedicated scripting

languageOutput

Binary

ByteCode

Page 39: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 40: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

<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>

Web embedding: codice HTML

Page 41: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

“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

0142Engine Family

(sempre la stessa)Compiler Generation Number

Progressivo all’interno

della famiglia

Page 42: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR scripting language (.S3D)

• Sintassi simile a JAVA e BASIC

• Byte code – virtual machine

model

• Type less

• Object oriented

• Costrutti dedicati alla VR

Page 43: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

VISUAL ACOUSTIC HAPTIC INERTIAL

VIRTUAL ENVIRONMENT

USER

Visual

Rendering(~ 60 Hz)

Audio

Rendering(~ 60 Hz)

Haptic

Rendering(~ 1 KHz)

Motion

Rendering(~ 1 KHz)

Tracking

MoCap(~ 30 Hz)

Interaction

Manager(~ 30 Hz)

Physics(> 100 Hz)Network

Manager(~ 10 Hz)

Main

Application

Loop negli ambienti virtuali

Page 44: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

~ 60 Hz 100-1000 Hz

3 Main Call-backs (+ 3 special ones)

OnFrame() OnTimer()

Tutte le variabili sono condivise

OnEvent()

VR_EVENT_1

VR_EVENT_3

VR_EVENT_2

VR_EVENT_4

L’approccio XVR

Page 45: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Ogni script S3D è basato su 6 funzioni predefinite:– OnDownload()

– OnInit()

– OnFrame()

– OnTimer()

– OnEvent()

– OnExit()

Queste funzioni vengono automaticamente invocate al verificarsi di determinati eventi

Struttura di uno script S3D

Page 46: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 47: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

OnInit()

• Viene chiamata all’inizio

dell’applicazione, subito dopo la

OnDownload()

• E’ il posto per gestire il carica-

mento dei data-files scaricati e

tutte le inizializzazioni.

•Può ricevere parametri di

ingresso specificati nella pagina

HTML con il tag <UserParams>

Page 48: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 49: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 50: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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() ]

Page 51: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

OnExit()

Viene eseguita all’uscita dell’ applicazione.

L’uscita può avvenire esplicitamente o in seguito alla chiusura della pagina HTML contenitore.

OnExit()

Page 52: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

IF..ELSE

WHILE

DO..WHILE

FOR

BREAK

CONTINUE

S3D: Statements e preprocessore

SWITCH..CASE

SETSCENE_FOV Field of view

SCENE_NEAR Near clipping plane distance

SCENE_FAR Far clipping plane distance

AUDIO_MODE 3d Audio Setup mode

#DEFINE

#IFDEF

#ENDIF

#ELSE

#INCLUDE

#PRAGMA

Page 53: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Funzioni

• Il tipo di parametri non viene specificato

• Il tipo del valore di ritorno non viene specificato

Page 54: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 55: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 56: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

OGGETTI

Gli oggetti possono essere dichiarati come istanze di:

- Classi predefinite- Classi definite dall’utente

Obj1 = CVmLight();

Obj1.SetPosition( 10,10,20);

S3D: Tipi di dato predefiniti

Page 57: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Class Playlist

{

var id; // Identificativo unico della playlist

var name; // Nome della playlist

var elements; // Array di id che compongono la playlist

Add(el); // Aggiunge un elemento

Start(); // Avvia la playlist

Stop(); // Stop della playlist

};

function Playlist::Playlist(i,n,) // Il costruttore è dichiarato di default

{

id = i;

name = n;

elements = {};

}

function Playlist::Add(song)

{

aadd(elements,song);

}

S3D: Dichiarazioni di classi

Page 58: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

S3D: Ereditarietà multipla

Class Vehicle: Engine, Bodywork

{

var m_Desc;

var m_NumWeels;

var m_MaxVel;

Info();

};

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 );

}

Multiple inheritance, comma separated

Calling a base class method

Page 59: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

Importare funzioni esterne (1/2)

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

XVR consente di implementare funzionalità non disponibili

nell’engine embedded attraverso dll esterne

Page 60: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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);

Importare funzioni esterne (2/2)

Page 61: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Tools

Page 62: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Studio IDE

Page 63: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR built-in profiler

Page 64: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR AAM viewer

Page 65: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Texture Converter

XVR Add-ons

Page 66: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR State Machine Visual Editor

XVR Add-ons

Page 67: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Shader Editor

XVR Add-ons

Page 68: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

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

Page 69: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Debugger

• Breakpoint

• Single step

trace

Page 70: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

XVR Debugger

70

• Workspace

management

• Variables watch

Page 71: AMBIENTE VIRTUALE - percro.sssup.it

Software per canale visivo

71

• Added the directive “#import” to support importing XVR

libraries consisting of precompiled .bin files

Compile ExternLib

.s3d.bin

Use

XVR: Script precompilati