Condividi tramite


Generazione automatica di Mipmaps (Direct3D 9)

È ora possibile creare automaticamente una mappa mipmap che è una serie di trame, ognuna filtrata in una risoluzione diversa. Le mappe mipmap vengono comunemente usate per fornire livelli diversi di dettaglio durante il rendering. La generazione automatica di mipmap in fase di creazione della trama sfrutta il filtro hardware perché la mipmap risiede nella memoria video.

Per generare automaticamente un mipmap, impostare un nuovo D3DUSAGE_AUTOGENMIPMAP di utilizzo prima di chiamare CreateTexture. La generazione di sublevel da questo punto è completamente trasparente all'applicazione. Solo il livello di trama principale è accessibile all'applicazione; i sublevel della trama non sono accessibili perché verranno creati solo quando necessario dal driver. Nei casi in cui la generazione di sublevel può richiedere molto tempo, usare GenerateMipSubLevels per suggerire al driver che deve generare sublevels alla volta appropriato per l'applicazione.

Filtro mipmap

SetAutoGenFilterType controlla la qualità del filtro durante la generazione automatica. Se si modifica il tipo di filtro, il mipmap sublevels viene generato e viene rigenerato. Usare GetAutoGenFilterType per ottenere il tipo di filtro corrente. Il tipo di filtro predefinito è D3DTEXF_LINEAR. Se il driver non supporta un filtro lineare, il tipo di filtro verrà impostato su D3DTEXF_POINT.

Questi metodi non hanno alcun effetto se la trama non viene creata con D3DUSAGE_AUTOGENMIPMAP E non viene restituito alcun errore. Tutti i tipi di filtro supportati dal driver per il filtro della trama regolare sono supportati per la generazione automatica tranne D3DTEXF_NONE. Per ogni tipo di risorsa, i driver devono supportare tutti i tipi di filtro segnalati nella trama corrispondente, cubeTexture e filtri volumetexture.

Per verificare quali tipi di filtro sono supportati, verificare quali limiti sono supportati dai membri TextureFilterCaps e/o CubeTextureFilterCaps di D3DCAPS9.

Supporto mipmap

D3DUSAGE_AUTOGENMIPMAP è solo un hint e specifica questo durante la creazione della trama o quando si chiama CheckDeviceFormat non causerebbe un errore in uno dei tipi DDI (Device Driver Interface).

La chiamata a UpdateTexture è illegale quando l'origine è una mipmap generata automaticamente, ma la destinazione non è. L'origine può essere una mappa mipmap non generata automaticamente e la destinazione può essere una mappa mipmap generata automaticamente. In questo caso viene aggiornato solo il livello di corrispondenza più alto. Tutti gli altri sublevel di origine vengono ignorati. Analogamente, quando vengono generati automaticamente sia l'origine che la destinazione, viene aggiornato solo il livello di corrispondenza superiore. I sublevel dall'origine vengono ignorati e i sublevel di destinazione vengono rigenerati.

Per verificare il supporto per la generazione automatica di mipmap, verificare che D3DCAPS2_CANAUTOGENMIPMAP sia impostato. In caso affermativo, chiamare CheckDeviceFormat con D3DUSAGE_AUTOGENMIPMAP. Se il valore restituito è D3D_OK, le mappe mipmap devono essere generate automaticamente. Se il valore restituito è D3DOK_NOAUTOGEN, ciò significa che la chiamata di creazione avrà esito positivo, ma non verrà generato alcun mipmap.

Trame Direct3D