Это легко сделать. Используя Octtree, вы просто делите мир на постепенно уменьшающиеся части, пока не достигнете необходимого уровня детализации. Это может быть размер песчинки, например. Думаю, Майнкрафт доведен до крайности.
Что вы делаете тогда? Если детали достаточно малы, вы можете рассмотреть рендеринг блоков - листовых узлов октодерева. Другие варианты включают сферы или даже геометрические примитивы. Цвет и нормаль могут быть сохранены в каждом узле, а для уменьшенного LOD можно хранить составную информацию на более высоких уровнях дерева.
Как вы можете управлять таким количеством данных? Если дерево является фактической структурой данных, вы можете иметь несколько указателей, ссылающихся на одни и те же поддеревья, подобно повторному использованию текстуры, но она также включает геометрию. Хитрость заключается в том, чтобы получить как можно больше повторного использования на всех уровнях. Например, если вы соединяете все четыре октанта в тетраэдрическом расположении с одним и тем же дочерним узлом на всех уровнях, вы можете создать очень большой 3d-серпинский фрактал, почти не используя памяти. Реальная сцена будет намного больше, конечно.
Проблема в том, что он будет работать только для статической геометрии, потому что настоящая анимация потребует манипулирования всеми этими данными в каждом кадре. Однако рендеринг, особенно с переменным LOD, не является проблемой.
Как сделать такую вещь? Я большой поклонник трассировки лучей, и он отлично справляется с подобными вещами как с графическим процессором, так и без него.
Все это, конечно, спекуляция. У меня нет конкретной информации по делу, о котором вы говорите. А теперь о чем-то связанном, но другом:
Огромное количество данных отображается
РЕДАКТИРОВАТЬ И вот что я сделал, но я намеренно изменил нормы, чтобы сделать коробки более очевидными:
Стэнфордский кролик в вокселях
Эта частота кадров была на одном ядре IIRC. Удвоение глубины дерева, как правило, сокращает частоту кадров вдвое, в то время как использование нескольких ядер хорошо масштабируется. Обычно я держу примитивы (треугольники и тому подобное) в своем октавном дереве, но для ухмылки я решил визуализировать листовые узлы самого дерева в этом случае. Лучшая производительность может быть достигнута, если вы, конечно, оптимизируете определенный метод.
Где-то на ompf есть машина с вокселями, которая действительно фантастическая - за исключением того, что она статична. Не могу найти это сейчас ...