Z-Order è il nome dato al processo coinvolto nell’ordinamento di quali elementi in un’applicazione informatica dovrebbero apparire visivamente davanti ad altri oggetti. Un uso comune dell’ordine z è quando ci sono più finestre aperte in un’interfaccia utente grafica (GUI) e l’ordine z determina quali finestre verranno disegnate completamente e quali saranno oscurate dalle finestre sopra di esse. Il nome z-order deriva dalle tradizionali convenzioni di denominazione utilizzate quando si descrivono spazi tridimensionali (3D), dove X si riferisce alla direzione destra-sinistra, Y alla direzione su-giù e Z alla direzione avanti-indietro. Quasi tutte le applicazioni 3D utilizzano una qualche forma di z-order per determinare rapidamente quali oggetti devono o non devono essere renderizzati per aumentare la velocità di visualizzazione di una scena.
Si può pensare che l’asse effettivo descritto da un ordine z si estenda nel campo di visualizzazione, avvicinandosi o allontanandosi da uno spettatore che guarda il monitor. Più un oggetto è lontano, più alto è il suo numero nell’ordinamento, mentre gli oggetti più vicini hanno numeri più bassi. Utilizzando semplici algoritmi di ordinamento, gli oggetti più distanti dall’osservatore possono essere esclusi dalla vista o disegnati solo parzialmente, perché oscurati da oggetti più vicini.
Un uso comune per z-order è mantenere lo stato di una serie di finestre aperte o altri elementi della GUI in un’applicazione. Quando viene generata una finestra o un altro elemento, gli viene assegnato un numero d’ordine per indicare che è in piena vista. Se viene aperta un’altra finestra o elemento, l’ordine z viene spostato in modo che la nuova finestra attiva sia considerata più vicina. Oltre ad aiutare a fornire indicazioni che rendono più efficiente il disegno degli elementi della GUI, alcuni sistemi operativi o applicazioni lo utilizzano anche per determinare l’ordine di tabulazione in modo che, quando un utente utilizza la tastiera per scorrere una GUI, gli elementi che si concentrano vengono selezionati in base sul loro ordine z.
I programmi di modifica della grafica utilizzano metodi di ordinamento z per disegnare immagini con più livelli, assicurando che i livelli vengano visualizzati nella sequenza corretta. Questo stesso principio viene applicato ai programmi utilizzati per la pubblicazione o il layout, in cui diversi elementi possono essere impilati per creare un composito. In alcune situazioni, come nella grafica vettoriale, l’ordine viene utilizzato anche per calcolare operazioni geometriche su oggetti, come creare un’unione o una differenza tra geometrie a strati.
Nelle applicazioni 3D, l’ordine z è talvolta chiamato anche z-buffer o buffer di profondità. Oltre a fornire un modo ottimizzato per ordinare gli oggetti all’interno di una scena, consente anche un’efficace rimozione della superficie nascosta. Gli oggetti che hanno un numero sufficientemente distante nell’ordine z possono essere ignorati e non renderizzati affatto, mentre gli oggetti coperti da forme più vicine possono avere interi segmenti della loro geometria lasciati non renderizzati perché non possono essere visti.