|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2007
Messaggi: 9933
|
Porting degli engine 3D verso nuove API architetture.
Ciao a tutti,
apro questo thread per discutere di una argomento emerso in un altro: http://www.hwupgrade.it/forum/showth...016250&page=68 che, amio avviso, risulta interessante, ma stava mandando pesantemente off-topic il thread. La questione riguarda quale fra le due operazioni sia piu' semplice: a) effettuare il porting di un engine di rendering verso una API differente, ma sulla stessa architettura hardware oppure b) effettuare il porting verso una differente architettura hardware, ma che si appoggia alla stessa API che la combinazione delle due (cioe' diversa API, diversa architettura) sia piu' complessa e' banale, e non e' oggetto di discussione. La mia tesi e' che le API siano state pensate proprio per svincolare la programmazione dell'engine ad alto livello dall'hardware, rendendo il porting verso una differente architettura una operazione quasi gratuita. Per contro, adattare l'engine verso una API differente comporta di mettere mani pesantemente al codice. Per questo propendo per la b) Per contro, Gaxel ha espresso una visione diversa: il porting verso una differente API e' una operazione di programmazione relativamente semplice. Piu' difficile risulta ottimizzare il codice in modo da sfruttare efficientemente le risorse hardware della nuova architettura. Per questo, propende per la a). Cosa ne pensate a riguardo? P.S. per i moderatori: riguardo la scelta della sezione, ho dato un'occhiata a quella relativa alla programmazione e alla computer graphics, ma le ho trovate molto piu' focalizzate sul supporto tecnico. La sezione relativa alle schede video e' dedicata all'hardware. Quella piu' adatta mi e' sembrata questa, visto che si parla di engine per giochi.
__________________
Case:Chieftec BA-01B-B-B MB: E-VGA 122-M2-NF59-TR CPU:Athlon64 X2 (Windsor) 6400+ PSU1:Corsair HX 520WPSU2:Thermaltake PurePower Express W0099R VGA: 9800GX2@680/1700/1040 MHz Audio: SB X-fi Gamer HDD 2x320GB RAID-Link alla guida SLI - CPU gaming test Ultima modifica di blade9722 : 07-08-2009 alle 18:28. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2002
Città: R'lyeh
Messaggi: 12548
|
Pur non capendoci una acca di simili questioni, trovo l'argomento interessantissimo -pare un controsenso quanto appena scritto, vero? °__°- e spero la discussione possa avvantaggiarsi anche del parere di chi i giochi li programma.
Lascio a voi la parola e mi metto in ascolto ![]()
__________________
Questa è poesia! |
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Aug 2005
Città: Buguggiate(VA)
Messaggi: 12007
|
Mooolto più facile cambiare il motore grafico se devi cambiare solo l'architettura. La cosa rimane vera fino a che si rimane nell'ambito della rasterizzazione, perchè se si passa al ray tracing va rifatto da capo in ogni caso l'intero motore grafico(tanto per lanciare il punto prima che qualcun altro lo chieda).
Se non devi toccare una riga di codice della pipeline è una sciocchezza perchè sarà l'implementazione delle API ad essere diversa, tutto quello che sarà da fare è limitarsi a modificare le variabili di sistema e piccole modifiche per sfruttare le caratteristiche diverse/più potenti delle piattaforme e introdurre vari livelli di dettaglio, operazione piuttosto semplice in quanto basta caricare elementi diversi in base al dettaglio scelto. Di contro se cambi API non si tratta solamente di cambiare il nome delle funzioni che richiami perchè sicuramente la pipeline grafica e le funzionalità che ti offrono sono diverse. Quindi dovresti riscrivere quasi completamente il motore se ti va male. E ti va male soprattutto se hai fatto un ottimo lavoro sfruttando tutte le particolarità delle librerie. Per questo Valve s'è scazzata, hanno costruito il Source Engine in DirectX sfruttandone caratteristiche e poggiandosi sull'architettura. Portare tutto in OpenGL non è così facile e richiede molto lavoro. Per questo i motori multipiattaforma PARTONO multipiattaforma in modo da non sfruttare nessuna peculiarità, e se viene fatto non renderla vitale. Comunque questo andrebbe nella sezione programmazione, sì. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2007
Città: Isola d' Elba
Messaggi: 2363
|
Seguo con estremo interesse anche questo thread!!!!
![]()
__________________
"Io non capisco se negli sviluppatori, quando sviluppano anche per le console, nasce l'idea dell'utente come di un platocefalo che ingurgita tutta la mexxa che gli viene spinta giù per la cavità orale" by Alekos Panagulis |
![]() |
![]() |
![]() |
#5 | |||
Senior Member
Iscritto dal: Jun 2007
Messaggi: 9933
|
Quote:
Quote:
Quote:
__________________
Case:Chieftec BA-01B-B-B MB: E-VGA 122-M2-NF59-TR CPU:Athlon64 X2 (Windsor) 6400+ PSU1:Corsair HX 520WPSU2:Thermaltake PurePower Express W0099R VGA: 9800GX2@680/1700/1040 MHz Audio: SB X-fi Gamer HDD 2x320GB RAID-Link alla guida SLI - CPU gaming test Ultima modifica di blade9722 : 07-08-2009 alle 13:29. |
|||
![]() |
![]() |
![]() |
#6 | |||
Senior Member
Iscritto dal: Jun 2007
Messaggi: 9933
|
Dall'altro thread
Quote:
Quote:
Quote:
__________________
Case:Chieftec BA-01B-B-B MB: E-VGA 122-M2-NF59-TR CPU:Athlon64 X2 (Windsor) 6400+ PSU1:Corsair HX 520WPSU2:Thermaltake PurePower Express W0099R VGA: 9800GX2@680/1700/1040 MHz Audio: SB X-fi Gamer HDD 2x320GB RAID-Link alla guida SLI - CPU gaming test |
|||
![]() |
![]() |
![]() |
#7 | ||
Bannato
Iscritto dal: Jan 2007
Messaggi: 39839
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2004
Messaggi: 1747
|
Mi sembra che il quesito non sussista, in quanto se delle API sono state sviluppate per un determinato hardware fare il porting diventa, per un programmatore, un'operazione banale. La risposta è b). Le api servono proprio per programmare ad alto livello, quindi dei dettagli implementativi dell'hardware sui cui gira te ne sbatti altamente. La a) è senza dubbio più impegnativa in quanto devi riscrivere tutto il codice in pratica.
__________________
Esistono 10 tipi di persone al mondo: quelli che capiscono il codice binario e quelli che non lo capiscono |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jun 2007
Messaggi: 9933
|
Quote:
![]()
__________________
Case:Chieftec BA-01B-B-B MB: E-VGA 122-M2-NF59-TR CPU:Athlon64 X2 (Windsor) 6400+ PSU1:Corsair HX 520WPSU2:Thermaltake PurePower Express W0099R VGA: 9800GX2@680/1700/1040 MHz Audio: SB X-fi Gamer HDD 2x320GB RAID-Link alla guida SLI - CPU gaming test |
|
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Aug 2005
Città: Buguggiate(VA)
Messaggi: 12007
|
Scusa, ma non mi pare così complicato capire che è molto più facile usare quello che già c'è piuttosto che rifarlo da capo...
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jun 2007
Messaggi: 9933
|
Quote:
Riguardo il caso dell'Orange Box, posso speculare su come farei io: probabilmente, se dovessi prender impegni per il porting di tutti i titoli Valve, il porting dell'engine a lungo termine sarebbe più efficiente. Se si tratta di uno o due titoli, potrebbe convenire il porting del gioco su un engine esistente. Ad ogni modo, questa operazione non è proprio di pertinenza del thread.
__________________
Case:Chieftec BA-01B-B-B MB: E-VGA 122-M2-NF59-TR CPU:Athlon64 X2 (Windsor) 6400+ PSU1:Corsair HX 520WPSU2:Thermaltake PurePower Express W0099R VGA: 9800GX2@680/1700/1040 MHz Audio: SB X-fi Gamer HDD 2x320GB RAID-Link alla guida SLI - CPU gaming test |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Dec 2000
Città: Provincia de Venessia
Messaggi: 23949
|
Ci vorrebbe il parere di Fek...
__________________
ALI: Seasonic VERTEX GX 850W * MOBO: Gigabyte B760 Aorus Master * CPU: Intel Core i7 13700KF * GPU: Gigabyte GeForce RTX 4080 Eagle OC * RAM: 32 GB DDR 4 G. Skill Aegis 3200 CL16 * HD: SSD M.2 Samsung 980 PRO 1 TB + Crucial MX500 4 TB * OS: Windows 11 Home 64 bit |
![]() |
![]() |
![]() |
#13 | |
Bannato
Iscritto dal: Aug 2005
Città: Buguggiate(VA)
Messaggi: 12007
|
Quote:
Per il resto, è sicuramente meno dispendioso che dover convertire il motore grafico perchè queste cose le dovresti fare comunque... |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Oct 2007
Città: Isola d' Elba
Messaggi: 2363
|
Io mi sento di sposare la tesi b!!!!
Partendo dalla definizione di API,(interfaccia di programmazione di una applicazione) sono ogni insieme di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per un determinato compito. Le API permettono di evitare ai programmatori di scrivere tutte le funzioni dal nulla!!! Inutile dire che se devi effettuare il porting di un engine di rendering verso una API differente la situazione sia molto complessa!!! E poi scatta anche il vantaggio di conoscere già le API sulle quali hai già operato!!! Magari se intervenisse una persona che i giochi li programma sarebbe perfetto!!(come detto da Custode)
__________________
"Io non capisco se negli sviluppatori, quando sviluppano anche per le console, nasce l'idea dell'utente come di un platocefalo che ingurgita tutta la mexxa che gli viene spinta giù per la cavità orale" by Alekos Panagulis |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:18.