Все сцены Direct3D создаются с помощью иерархий фреймов. Приложения, которые мы рассмотрели до сих пор, использовали простую иерархию, состоящую из единственного корневого фрейма и нескольких дочерних фреймов. Хотя мы везде использовали иерархии фреймов, это не бросалось в глаза, поскольку иерархии были очень простыми. На рис.7.1 показана простая иерархия фреймов, типичная для рассмотренных ранее демонстрационных программ.
Рис. 7.1. Простая иерархия фреймов
Фреймы на рис. 7.1 названы в соответствии с их назначением. Показанная иерархия может применяться в любом приложении, где используются две сетки, источник света и камера.
В предыдущих главах мы видели несколько приложений с чуть более сложной иерархией фреймов. В приложениях Decal и Firefly применялись пустые фреймы, что усложняет иерархию и делает ее похожей на ту, которая изображена на рис. 7.2.
Рис. 7.2. Чуть более сложная иерархия фреймов
В иерархии, представленной на рис. 7.2 фрейм второй сетки (mesh2frame) присоединен к пустому фрейму, а не к корневому фрейму сцены. Это позволяет анимировать вторую сетку либо перемещая фрейм mesh2frame, либо перемещая пустой фрейм. Если вам непонятно назначение пустого фрейма, посмотрите описание демонстрационных программ Decal и Firefly.