Це легко зробити. Використовуючи Octtree, ви просто розділите світ на прогресивно менші шматочки, поки не досягнете необхідного рівня деталізації. Наприклад, це може бути розмір зерна піску. Подумайте, що Minecraft поставлений до крайності.
Що ви робите тоді? Якщо деталізація досить мала, ви можете розглянути блоки рендерінгу - листкові вузли октре. Інші варіанти включають сфери або навіть геометричні примітиви. Колір і нормальність можуть зберігатися на кожному вузлі, а для зменшеного LOD можна зберігати складову інформацію на більш високих рівнях дерева.
Як можна керувати такою кількістю даних? Якщо дерево є фактичною структурою даних, ви можете мати декілька покажчиків, що посилаються на одні і ті ж субдерева, як повторне використання текстури, але воно також включає геометрію. Хитрість полягає в тому, щоб отримати якомога більше повторного використання на всіх рівнях. Наприклад, якщо ви підключите 4 октанти в тетраедричному розташуванні всі до одного і того ж дочірнього вузла на всіх рівнях, ви можете зробити дуже великий 3d сірпінський фрактал, використовуючи майже відсутність пам'яті. Справжня сцена, звичайно, буде значно більшою.
Проблема полягає в тому, що вона працюватиме лише для статичної геометрії, оскільки реальна анімація потребує маніпулювання всіма цими даними кожного кадру. Однак надання, особливо зі змінною LOD, не є проблемою.
Як зробити таке? Я великий прихильник трасування променів, і він дуже добре поводиться з подібними речами з графічним процесором і без нього.
Все це - спекуляція звичайно. Я не маю конкретної інформації щодо справи, про який ви говорите. А тепер для чогось пов’язаного, але іншого:
Величезна кількість наданих даних
EDIT І ось я це зробив, але я навмисно змінив норми, щоб зробити поле яснішим:
Зайчик Стенфорда у вокселях
Ця частота кадрів була на одному ядрі IIRC. Подвоєння глибини дерева, як правило, скоротить частоту кадрів вдвічі, тоді як використання декількох ядер буде добре масштабуватися. Зазвичай я зберігаю примітиви (трикутники і подібні) у своїй октрисі, але для посмішок я вирішив зробити в цьому випадку листяні вузли дерева. Кращі показники можна досягти, якщо оптимізувати конкретний метод.
Десь на ompf стоїть машина, виконана з вокселями, яка справді фантастична - за винятком того, що вона статична. Не можу знайти його зараз ...