DOMANDA Come funzionano le api di un motore grafico

Pubblicità

olegfresi

Nuovo Utente
Messaggi
102
Reazioni
2
Punteggio
38
Vorrei porre agli utenti più attivi e professionali di questo forum una domanda che riguarda software come motori grafici o altri programmi di sviluppo riguardo alla application programming interface(API). Un esempio molto semplice è il motore di gioco unity: se io voglio far fare una determinata azione al mio personaggio entro nella documentazione online del sito di Unity è da lì entro nella sezione scripting api dove sono specificati tutti i codici con le rispettive funzioni da usare per fare delle determinate cose nel mio gioco. quando vado a programmare il gioco e poi vado a compilare il programma capisce cosa ho scritto perché ho usato appunto quelle parole chiave della libreria API di Unity. La mia domanda è ma gli sviluppatori come hanno fatto a creare quei codici a loro piacimento e a far capire al motore il loro significato e cosa doveva succedere una volta che il programmatore ha scritto e compilato il codice. Spero di essermi spiegato bene se non avete ben capito cosa volevo chiedervi scrivetemelo qua sotto e io cercherò di essere più preciso.

Grazie in anticipo
 
Ultima modifica:
Grazie di avermi passato quesa tesi per capirci meglio ma quello che ho chiesto in questo post qui non è stato spiegato. Nessuno che sappia rispondermi brevemente giusto per farmi capire anche in poche righe? In sintesi vorrei sapere come fanno dei codici di una libreria API a essere interpretati dal compilatore e di conseguenza tradotti in binario.
 
Nessuno che sappia rispondermi brevemente giusto per farmi capire anche in poche righe? In sintesi vorrei sapere come fanno dei codici di una libreria API a essere interpretati dal compilatore e di conseguenza tradotti in binario.
Perché questo è ciò che fa un compilatore per definizione:
traduce in binario (secondo il codice macchina ed il sistema operativo su cui gira il compilatore) quello che il programmatore codifica.
Il compilatore non interpreta, TRADUCE LE ISTRUZIONI a basso livello.
 
gli sviluppatori come hanno fatto a creare quei codici a loro piacimento e a far capire al motore il loro significato e cosa doveva succedere una volta che il programmatore ha scritto e compilato il codice.

Allora rispondo alla tua domanda originale :
Un motore e' sviluppato da un programmatore (in realta' da molti...) e quindi lui ha deciso come strutturarlo e che funzioni potranno agire su di esso.

Sa vogliamo parlare del Compilatore invece andiamo sulle basi della programmazione... https://it.wikipedia.org/wiki/Compilatore


Come procede il tuo percorso di studio ?
Su che linguaggio ti sei orientato ?
A che punto sei ?
 
Vorrei iniziare a studiare il c++ ma comunque nella domanda volevo sapere come fanno i singoli codici inventati dagli sviluppatori del motore grafico a essere tradotti in linguaggio macchina e quindi a essere eseguiti. Faccio un esempio: voglio far camminare il mio personaggio sull'asse delle ascisse e invento un codice a caso: if( IpressButton"w"||"up")moveCharacterOnXAss e dunque una volta scritto il codice devo far capire al pc che quando viene premuto il tasto w o up allora il mio personaggio camminera nella scena sull'asse x. Come avviene questa procedura?
 
La grafica in sè è gestita dalla GPU.
Quelle a cui fai riferimento sono istruzioni che non vengono "inventate" dagli sviluppatori. Il codice macchina non viene inventato dai programmatori e non viene generato "per caso" da un motore grafico o da altro. Una volta scritto il codice il compilatore genera il codice macchina.
Nel caso dei giochi c'è di mezzo pure la grafica, ed è un mondo in cui evito di avventurarmi non conoscendolo bene. L'esempio che fai del movimento del personaggio segue comunque le solite regole. Il personaggio potrebbe essere - ipotizzo - un vettore (il personaggio in sè potrebbe essere modellato come un ellissoide magari). Quando premi un preciso tasto vengono modificate le coordinate che ne indicano la posizione.

Fai bene ad informarti, ma evita di fare il passo più lungo della gamba. Inizia a studiare C++, che sicuramente ti aprirà un mondo.
 
Tu dici che non vengono inventate dai programmatori ma perchè allora in ogni motore grafico per l input per esempio ci sono comandi diversi. Poi gli sviluppatori come fanno capire al linguaggio macchina cosa devono svolgere questi comandi
 
Non confondere il motore grafico con i comandi che riceve in input il gioco per muovere un personaggio. Penso siano totalmente configurabili (tant'è che di solito ogni gioco permette anche all'utente di cambiare i pulsanti predefiniti... e questo già da tantissimi anni).

La pressione di un tasto sulla tastiera provoca quella che viene definita "interruzione hardware" che - semplificando - interrompe la CPU tramite un segnale. La CPU a questo punto manda un segnale al solito chip (PIC 8259A, ora APIC, SAPIC) in risposta e riceve il numero dell'interruzione. Tramite questo numero - semplificando - viene poi identificata la procedura (chiamata ISR, Interrupt Service Routine) che gestisce questa interruzione. Nel caso dell'interruzione da parte della tastiera, avviene la lettura del codice di scansione. Questo codice identifica il tasto premuto. Il tutto semplificando molto... :P
La libreria grafica di un linguaggio di programmazione permette di ascoltare/ricevere gli eventi che avvengono sulla finestra, così come di conoscere i tasti premuti. Ergo la scelta del tasto per far muovere un giocatore o per qualsiasi altra azione è scelta da chi scrive il software.

Circa 3 mesi fa postai questo articolo. Prova a leggerlo, anche se penso sia decisamente ancora troppo avanzato: Il Linguaggio Macchina dell'8086.

Non ho capito la tua seconda frase... ma il linguaggio macchina dipende dall'architettura utilizzata. E' nel momento in cui il programma viene compilato che viene "portato" nella lingua parlata dalla CPU.
 
Pubblicità
Pubblicità
Indietro
Top