Specifiche hardware comuni
Ci sono differenze nel modo in cui ATi e Nvidia progettano il loro hardware. Un motivo di lamentela da parte degli sviluppatori di software è stato quello di dover avere a che fare con hardware dalle capacità differenti, che li obbligava a inserire nei giochi librerie di codice multiple capaci di restituire differenti risultati su hardware diversi. In particolare, se un gioco identifica un hardware datato, lavorerà su canale di codifica software specializzato per quel sistema.
Gli sviluppatori di giochi su console non hanno bisogno di fare i conti con questo problema, ma gli sviluppatori su PC non hanno questo lusso. Se progettano giochi con nuove idee e tecniche, dovranno sperare che la maggioranza delle persone li notino giocando con tutte le caratteristiche abilitate. Tuttavia sappiamo che la maggioranza dei gamers non gioca a questi titoli con tutti gli orpelli grafici attivati.
A rendere ancora più sconfortante il panorama, c'è il fatto che le DirectX 9 lasciano alcune parti dello standard un pochino troppo aperte all'interpretazione, anche perchè alcune cose sono state cambiate prima che ATI e Nvidia potessero introdurle nel loro nel design. Questo ha fatto sì che da parte degli sviluppatori si andasse incontro a un po' di confusione e a una differenza negli standard di precisione tra produttori di hardware concorrenti. Sono i produttori a dover educare gli sviluppatori sulla forza e le capacità del loro hardware, e gli standard conflittuali rallentano l'arrivo di contenuti di qualità sul mercato.
Le Direct3D 10 sanciscono gli standard, i limiti delle risorse, la precisione artimetica e i formati di archiviazione di vario genere. Mentre tutto all'interno dell'hardware Direct3D 10 sarà a 32-bit (floating point o integer), ci saranno diversi cambiamenti nel tipo di archiviazione. Di seguito c'è una lista dei formati di archiviazione dati.
Nella lista vedete formati full single-precision, così come formati half-precision come unorm e snorm16. Float16 è utilizzato per caratteristiche come l'High Dynamic Range (HDR), anche se presenta lo svantaggio di utilizzare troppo spazio e banda. Sono stati creati anche altri formati alternativi come l'11-11-10, che non è altro che una combinazione di due unità float11 e di una float10 (11 sul rosso, 11 sul verde, e 10 sul blu) per 32 bit in congiunzione con il formato shared-exponent (RGBE). Clicca qui per maggiori informazioni sulla precisione in virgola mobile e i formati presenti nello standard IEEE 754.