Un arbre quadratique est une structure de données utilisée pour calculer les ombres par lancer de rayons.
L'arbre quadratique représente la scène du point de vue de la lumière. Le noeud racine de l'arbre quadratique répertorie tous les objets visibles dans cette vue. Si trop d'objets sont visibles le noeud génère quatre autres noeuds, chacun représentant un quart de la vue, et chacun comportant une liste d'objets de cette portion. Ce procédé se poursuit jusqu'au moment où chaque noeud n'a qu'un petit nombre d'objets, ou jusqu'à la limite de profondeur de l'arbre quadratique (qui peut être réglée pour chaque lumière).
Chaque rayon de lumière projetant une ombre doit tester l'intersection avec les objets dans l'un des noeuds uniquement de l'arbre quadratique. Cela permet d'accélérer le processus de lancer de rayons. En général, le fait d'augmenter la profondeur maximale de l'arbre quadratique peut accélérer le lancer de rayons, mais utilise davantage de mémoire.
La taille maximum d'un arbre quadratique est le carré de deux jusqu'à la puissance de la profondeur maximale de l'arbre quadratique. A une profondeur de 7, le plus grand arbre quadratique a 128 x 128 noeuds; à une profondeur de 10, le plus grand arbre quadratique a une taille de 1028 x 1028 noeuds, etc. (En revanche, étant donné que chaque noeud successif contient moins d'objets, la taille d'un noeud diminue au fur et à mesure que sa profondeur dans l'arbre augmente.)