Open Source 3D Engine. OpenGL Rendering System. Il Framework



Documenti analoghi
Grafica 3D Interattiva

OpenPsy: OpenSource nella Psicologia. Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova)

DISEGNO 3D IN AutoCad.

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Scopri come Creare e Vendere viaggi online! Il software per gestire le tue pratiche e i tuoi clienti: Et-Gest

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

Capitolo V : Il colore nelle immagini digitali

Segesta srl Via Giacomo Peroni Roma Tel. 06/ Fax 06/

Centro Acquisti per la Pubblica Amministrazione EmPULIA. Linee guida per gli Enti Aderenti. Procedure Negoziate: Richiesta di Preventivo. Versione 2.

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

MANUALE D USO DELLA PIATTAFORMA ITCMS

Comitato territoriale costituzione

Compilatore risorse display grafico LCD serie IEC-line

Raggruppamenti Conti Movimenti

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale

Esercizio data base "Biblioteca"

Piattaforma software mfp

Express Import system

APPENDICE I Pratiche di tecnologie informatiche per la elaborazione della musica e del suono

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

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

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Il modello veneto di Bilancio Sociale Avis

SCRUTINIO WEB MANUALE D USO. Scrutinio Web. Manuale d uso - Docente. Versione del Pagina 1 di 12

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

CP Customer Portal. Sistema di gestione ticket unificato

Progettazione con Revit Architecture

Claudio Gussini Programma dei Corsi I e II Livello

Introduzione. Installare EMAS Logo Generator

Come creare il test di Yasso tramite l applicazione Training Center

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Corso di Sistemi di Elaborazione delle informazioni

Manuale d uso Event Bureau

CORSO DI 3DS MAX+VRAY

Minerva. Un ambiente integrato per la Didattica e la Divulgazione. dr. Augusto Pifferi. dr. Guido Righini.

Dispensa di Informatica I.1

OpenSceneGraph & OSG4Web

Dal foglio di carta alla multimedialità

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT

Introduzione al sistema operativo Il file system: file, directory,...

InitZero s.r.l. Via P. Calamandrei, Arezzo

ANNO SCOLASTICO Piano di lavoro individuale

Il moderno messaggio mediatico: l Ipertesto e l Ipermedia. Stefano Cagol

Nuova ECDL NASCE UNA NUOVA COMPETENZA. LA TUA.

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

WorkFLow (Gestione del flusso pratiche)

STUDIO MESSANO UFFICIO SVILUPPO NUOVE TECNOLOGIE

Creare superfici. Le superfici. Informatica Grafica ][ Le superfici. Le superfici. Le superfici. Le superfici

Gestione Risorse Umane Web

creazione e gestione di siti L'agenzia di comunicazione Artistiko internet propria attività al centro dell'attenzione

Progettazione di una base di dati Ufficio della Motorizzazione

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Mac Application Manager 1.3 (SOLO PER TIGER)

Descrizione dettagliata delle attività

AddCAD per ZWCad. Passa alla progettazione 3D rimanendo sul tuo Cad famigliare

ARCHIVIO GRAFICO ESTESO

IL FITOFOR: UNO STRUMENTO PER LA GESTIONE DELLE INFORMAZIONI FITOSANITARIE. Marino Vignoli, Elisa Moneti, M. Miozzo DREAM - Italia

Il menu File contiene tutti i comandi relativi alle seguenti operazioni:

Presentazione. Argent Global Network

Database. Si ringrazia Marco Bertini per le slides

Linee guida per il Comitato Tecnico Operativo 1

MAGAZZINO FISCALE (agg. alla rel )

Attività federale di marketing

Architetture Applicative

Dimensione di uno Spazio vettoriale

SERVIZIO DICHIARAZIONE DI SUCCESSIONE ON LINE (SERVIZIO ATTIVO IN TUTTA ITALIA)

PREVENTIVO uno strumento che ci tutela!

Stampa Unione per lettere tipo

HP Advanced Profiling Solution Guide introduttiva

Introduzione a 3ds Max

Registratori di Cassa

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Circolari e lettere da Word con anagrafiche e indirizzi da Metodo

SISTEMI di PERSONAL COMPUTER

GUIDA ALL UTILIZZO DI MF QUICKEN

Software per Helpdesk

Introduzione Computer Graphics

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Architettura hardware

Centro Studi Politici, culturali, Economici, Sociali e Giuridici FUTURA

Fogli Elettronici: MS Excel utilizzo avanzato

LABORATORIO DI SISTEMI

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

FONDAZIONE ANGELO COLOCCI [AREA RISERVATA - STUDENTI]

LA SOLUZIONE. EVOLUTION, con la E LA TECNOLOGIA TRASPARENTE IL SOFTWARE INVISIBILE INVISIBILE ANCHE NEL PREZZO R.O.I. IMMEDIATO OFFERTA IN PROVA

1) GESTIONE DELLE POSTAZIONI REMOTE

manuale utente per Viabizzuno online

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

CONFRONTO TRA STABILE ORGANIZZAZIONE, SOCIETA E UFFICIO DI RAPPRESENTANZA

La visualizzazione del progetto contribuisce ad un miglioramento complessivo dell efficienza del project management

Effetto reddito ed effetto sostituzione.

I SISTEMI INFORMATIVI TERRITORIALI PER LA GESTIONE DEL TERRITORIO

Transcript:

Open Source 3D Engine OpenGL Rendering System Il Framework I moderni mezzi di programmazione, consentono a noi sviluppatori di utilizzare librerie avanzate e testate che si prestano eccellentemente allo svolgimento delle funzioni che un software 3D deve avere. La cosa che più mi ha spinto verso OpenGL è la sua portabilità su altri sistemi. Creare un buon software, a mio avviso, non vuole dire solamente creare un programma avanzato, potente, preciso, ma anche un programma in grado di funzionare su tutte le piattaforme. La attuale posizione nel mercato dei sistemi Linux, l interesse della comunità informatica verso soluzioni alternative, sono tutte caratteristiche che vanno assolutamente tenute in considerazione nella progettazione di un software. Ciò non toglie che qui, si fanno delle scelte non in base alle propie preferenze personali, ma in base al bacino d utenza che un software in potenza potrebbe avere. Benvenga quindi Windows, Linux e OpenGL che funge da collante frà i vari sistemi. GLUT Grazie alla API GLUT, OpenGL Utility Toolkit, è possibile avvalersi di interessantissime e utilissime funzioni che, se da un lato sembrano facilitare lo sviluppo del framework, dall altro offrono funzionalità che consentono di inizializzare con pochissimo codice l API OpenGL. In termini di praticità, questa è sicuramente è un agevolazione non indifferente è non trascurabile.

OpenGL Rendering Pipeline

Questa rappresentazione della pipelina OpenGL, riassume il funzionamento dell API nella fase di elaborazione dei dati in input forniti dal programma. I tipi di dati processati dalla pipeline, sono come si nota, Coordinate Spaziali(punti,vertici) e Pixels Data(Pixels, Immagini, Bitmaps). Il processo di questo tipo di dati, avviene per vie differenti, ma il risultato finale è un insieme composto di dati che viene scritto nel Framebuffer, copiato nella memoria video ed inviato allo schermo. I vari stadi della pipelina compiono delle operazioni sui dati per definire l assemblaggio finale dell immagine. Come si nota, all inizio, il passaggio dei dati(pxd,vxd) non è vincolato al passaggio per le display list, ma queste comunque sono estremamente utili e costituiscono un modo per salvare i dati di un determinato oggetto e saltare alcuni passaggi della pipelina. Coordinate Spaziali(punti, vertici) I VXd, passano per gli evaluators, che compiono attraverso dei control points, ed a seguito di alcune operazioni di derivazione su questi, il lavoro di determinazione dei vertici delle curve Bezier o Nurbs. Nel successivo stadio, Per-Vertex Operations, le coordinate di tutti i vertici vengono elaborate attraverso delle matrici di trasformazione che ne determinano effetti Traslazione, Rotazione, Ridimensionamento e vengono determinate le posizioni delle textures e gli effetti dell illuminazione per-vertex. Quindi, nella fase Primitive Assembly, avviene il Clipping dei Poligoni nascosti, i calcoli sulla profondità e le operazioni relative alla proiezione in prospettiva. E importante notare che OpenGL puo anche non lavorare con la proiezione in prospettiva, se viene inizializzata in maniera ortogonale. Pixels data Tutti i dati relativi alle immagini in input dal programma subiscono l operazione di un-packing,ed in seguito dopo successive trasformazioni(rotazioneridimensionameto) vengono passati o direttamente alla fase di Rasterization o alla Texture Assembly(responsabile dei calcoli sul texture mapping). VXd e PXd Nella fase Rasterization, i dati dei vertici e delle immagini si combinano e vengono trasformati in fragments.ogni fragment rappresenta un pixel del Framebuffer, i poligoni vengono cosi riempiti, viene applicato l antialiasing, viene dato ad ogni fragment un colore ed una profondità.

Finite queste operazioni, vengono copiati sui fragments i pixels delle textures, viene effettuata la eventuale sovrascrittura o modifica dei colori dei poligoni, vengono effettuati test in base ai parametri sulla trasparenza ed in base ai valori contenuti nello stencil buffer o nel depth buffer. A questo punto, avendo un Framebuffer pieno di tutti quei dati che servono alla visualizzazione finale, questo viene copiato nella memoria video e mostrato sullo schermo. Il motore 3d La creazione di un motore 3D, avendo bene a mente la OpenGL pipeline, è un insieme di strutture dati e funzioni che, correlazionate con OpenGL e correlazionate trà loro, vengono a formare una complessa struttura di dati di input per la pipelina. Caratteristiche tecniche attuali del progetto Attualmente, il progetto è nelle sue fasi primordiali ed è scritto in liguaggio C. L idea pero di una conversione in C++ è sicuramente interessante e credo anche indispensabile sotto certi punti di vista. La struttura attuale è la seguente: ObjectModel responsabile delle definizioni delle strutture principali del motore come Vertex, Poligono, TextureCoords, Normals. Textures responsabile della funzione di caricamento delle textures Vectors responsabile delle funzioni di creazione vettore planare, determinazione della magnitude, normalizzazione della magnitude del vettore, prodotto scalare, prodotto vettore 3DSLoader responsabile della funzione di caricamento dei files di 3DStudio Max per l importazione dei modelli 3D OGLManager responsabile di tutte le inizializzazioni della API OpenGL Attualmente, le caratteristiche del programma sono le seguenti: Calcolo dell illuminazione normale Texture Mapping Loader 3DSMax

La seguente preview mostra il sistema di illuminazione in azione Lo sviluppo del progetto Il Team Per lo sviluppo concreto di questo progetto, sono necessarie diverse componenti, e soprattutto molto impegno, dato che non è un lavoro facile ne tantomeno breve. La struttura del team che dovrebbe lavorare a questo software, deve comprendere diverse figure che essenzialmente sono: - Sviluppatore Engine Editor - Sviluppatore IA - Sviluppatore Assembly - Sviluppatore PhisicCore - Analista-Debugger Multipiattaforma - Modellatore 3D Studio Max - Texture Artist

Sarebbe ben accetta inoltre una persona che abbia conoscenze di OpenGL ed in generale di grafica 3D che possa lavorare con me nello sviluppo del 3DCore, possibilmente di Roma. Chiunque voglia partecipare, riceverà poi da me tutte le informazioni approfondite sul programma e tutti i chiarimenti del caso. Mi auguro si possa concretizzare questa bellissima iniziativa, un ringraziamento a Melix per avere messo a disposizione questa forma di collaborazione ed un saluto a tutti quanti. Andrea