2015-10-03 7 views
0

Я занимаюсь исследованиями по созданию планет для игрового движка, который я планирую закодировать, и мне было интересно, какой будет лучший подход к процессуальному созданию планеты. (С точки зрения производительности.) До сих пор я видел, как больше всего появлялись Icosphere и Cubemapped Sphere, но мне было интересно, какой из них быстрее генерировать. Мой вопрос, в частности, направлен на LOD, так как я надеюсь, что геймплей будет похож на Sky No Man's.Icosphere versus Cubemapped Sphere

Заранее спасибо.

ответ

0

Я бы сказал, что сферой октаэдра будет лучше, но поскольку все они Platonic Solids, они будут похожи, поэтому преждевременная оптимизация может не стоить того. (Вот tutorial в Unity)

Возможные преимущества октаэдра в том, что грани являются треугольниками (в отличие от куба), и для каждого квадранта в трехмерном пространстве есть один треугольник (в отличие от икосферы и куба).

Мое обоснование за октаэдрами (и иосферами) быстрее, чем кубы заключается в том, что лицо уже является треугольником (тогда как куб имеет квадратную грань). Добавление деталей для октаэдра, икосаэдра или куба обычно означает поворот каждого треугольника на четыре меньших треугольника. Во время этого поколения вы создаете три новые вершины, позиции которых должны быть нормализованы, чтобы сетка была должным образом записана в единичной сфере.

Tessellating Куб

Tessellating a cube results in inconsistent normalization factors

октаэдр и икосаэдр может использовать таблицу поиска, который извлекает этот фактор нормализации (в отличие от куба), так как число соответствует для каждой итерации.

Предполагая, что вы можете написать собственный формат сетки, вы можете сохранить сетку для данной планеты через массив (размер 4, 8 или 20) четырехъярусных деревьев (поскольку каждый треугольник необязательно тесселирован на четыре дополнительных треугольника) , (Это, по сути, система LOD, но вам нужно периодически определять, следует ли тесселить или уменьшить часть сетки на основе расстояния от камеры.) Эта система, вероятно, будет узким местом, поскольку сетки должны быть пересчитаны во время выполнения ,