Macchine a strati e motore Unreal Engine

Macchine a strati e motore Unreal Engine:  Unreal Engine  è il motore grafico per eccellenza alla base dei videogiochi più evoluti, negli sviluppi architettonici e ingegneristici, nel cinema e con potenti implicazioni e connessioni con la realtà virtuale e aumentata.

Ma come funziona una piattaforma di questo genere che unisce grafica, animazione, programmazione, fisica, matematica, realtà virtuale.

Macchine a strati e motore Unreal Engine: per comprendere l’architettura delle moderne piattaforme per lo sviluppo dei videogiochi è utile la rappresentazione del modello a strati, che caratterizza anche i sistemi di elaborazione e in generale i sistemi complessi.

Per farlo, partiamo dalla programmazione, utilizzando il modello a strati, cioè suddividendo il sistema in vari livelli di astrazione: ciascun livello è costituito da vari componenti che svolgono le azioni all’interno del livello stesso e sfruttano i servizi offerti dai livelli inferiori.

Per comprendere Unreal, partiamo proprio dal modello a strati di un programma: da linguaggio naturale a un’insieme di bit. Per prima cosa è importante conoscere la differenza tra segnale analogico e digitale.

Segnale analogico: grandezza continua nel tempo, come la tensione e la corrente degli impianti civili.

Segnale digitale: non ha continuità nel tempo, può assumere soltanto valori appartenenti ad un insieme discreto del segnale continuo. Il procedimento di conversione di un segnale continuo in digitale, passa attraverso il campionamento del segnale continuo in valori di tempo discreti. I segnali digitali sono sempre un’approssimazione dei segnali continui nel tempo. Esempi di segnali digitali sono quelli ad 8-bit (256 livelli, cioè valori), 16-bit (65,536 livelli), 32-bit (4,3 miliardi di livelli). Il passaggio è: segnale continuo, segnale discreto, campionamento con Sample & Hold e poi inviarlo all’ingresso di un convertitore analogico digitale che trasforma il segnale in codice binario a 8 bit, 16 bit, 32 bit.

Il passaggio da segnale continuo a segnale digitale provoca perdita di informazione, in termini pratici è accettabile, anche perché possiamo sempre ricostruire il segnale continuo nel tempo dal segnale digitalizzato. La digitalizzazione implica anche assegnare valori di 0 e 1 detti bit al segnale tempo discreto.

Ora vediamo di definire un altro concetto importante che ci servirà per capire il livello a strati.

Calcolatore: macchina elettronica digitale in grado di risolvere problemi attraverso un’insieme di istruzioni assegnate ( programma). Il calcolatore utilizza un sistema di numerazione binario (0,1). Il computer riconosce il linguaggio macchina. Da linguaggio naturale (il programma anche se con una sintassi e semantica bene definita è in linguaggio naturale) a linguaggio macchina, esiste una distanza concettuale enorme, superata con un’architettura a strati, composta da linguaggi e macchine virtuali via via più sofisticate. Un programma quindi deve essere interpretato e tradotto.

Interprete: un programma chiamato interprete, legge il programma scritto in linguaggio di alto livello (naturale) e lo esegue con un’istruzione alla volta. Questo permette la traduzione e funzionante su diversi Sistemi Operativi.

Traduttore: Il programma una volta interpretato, viene tradotto e ottimizzato per il computer.

Ma per passare dal programma in linguaggio naturale al programma tradotto a livello di logica digitale, abbiamo bisogno di vari livelli e varie macchine virtuali ( software che permettono di passare da un livello ad un altro). Riassumendo:
Livello 5,  il linguaggio ad alto livello (programma in linguaggio naturale) viene  o interpretato da una macchina di livello inferiore (Livello 4) , o tradotto nel linguaggio macchina di una macchina inferiore.

Livello 4, il linguaggio di Livello 4 (livello più basso del linguaggio naturale) viene  o interpretato da una macchina di livello inferiore (Livello 3) , o tradotto nel linguaggio macchina di una macchina inferiore.

Livello 3, i programmi in L3 (Livello 3), o vengono interpretati da una macchina virtuale (M2) che lavora a livello 2 o tradotto in linguaggio L2 (Livello 2)

Livello 2, i programmi in L2 (Livello 2), o vengono interpretati da una macchina virtuale (M1) che lavora a livello 1 o tradotto in linguaggio L1 (Livello 1)

Livello 1, i programmi in L1 possono essere eseguiti direttamente dai circuiti elettronici e quindi dal computer.

macchina-virtuale-a-strati

 

Macchine a strati e motore Unreal Engine: ma cos’è un computer quindi: una macchina che computa, esegue un tipo di lavoro in maniera automatica, quindi esegue un qualunque algoritmo specificato in un linguaggio recepito dalla macchina.

La costruzione dell’attuale computer ha un padre, Turing, poi Von Neumann. Quindi per algoritmo si intende: un algoritmo è una particolare macchina di Turing (A.M. Turing 1912- 1954, matematico britannico) oppure un programma della macchina di von Neumann (J. von Neumann 1903-1957, matematico statunitense di origine ungherese).

La macchina di Turing e la macchina di von Neumann sono due modelli di calcolo (ovvero; modi di definire e/o eseguire algoritmi) specifici. In breve, stiamo definendo il concetto di algoritmo come tutto ciò che può essere eseguito dai due tipi di macchine su menzionate.

Tra tutti i modelli di calcolo esistenti, questi due giocano un ruolo importante. Il modello di calcolo descritto dalla MdT (introdotto nel 1936) è importante perché è il primo modello di calcolo che sia stato definito ed è tuttora usato come definizione teorica di algoritmo.

Macchine a strati e motore Unreal Engine: Il modello di calcolo descritto dalla macchina di von Neumann (introdotto nel 1946) è importante perché traduce in pratica il concetto di algoritmo. In altre parole, tutti i più moderni computer  sono strutturati (ancora) come una macchina di Von Neumann. Anche se con le ultime scoperte tutto è in evoluzione…

Tale premesse per parlare di Unreal Engine e dei motori grafici, nel prossimo post. Senza tale premessa sarebbe stato complesso affrontare l’argomento.

Views: 110

Lascia un commento