Ni55aN
@Ni55aN

Какая геометрия больше подходит для 3D сферы?

Пробую сделать генерацию сферы с различными уровнями детализации.

Первым была сфера, разбитая по quadtree по ш/д, таки образом получалось слишком большое количество частей на определенную плотность (что уже и говорить о неравномерной плотности геометрии.

Вторая quadtree геометрию на основе куба, но и там по площади треугольники сильно отличаются (на углах они мелкие, на середине большие)
02-sphere-perspective.png
Потом присмотрелся к правильным многогранникам:
из октаэдра также получал отличающиеся по площади треугольники (на полюсах они меньше)
31659764e6a54a68860bfaea12b008b3.png

Что касается икосаэдра и додекаэдра - в них визуально не определяются отличия в площади треугольников (но нужно говорить о додекаэдре, в котором грань состоит из 5 треугольников, с вершиной по центру грани)

Все же какой лучше выбрать, и какие еще параметры нужно учитывать, если нужно грани такого многогранника разбивать на относительно равные части, чтобы наладить lovel-of-detail ?

UPD: Икосаэдр, сгенерирован в Blender.
d8dde4446de84612885d449c828585e3.png
Чем ближе к местам стыка изначальных граней, тем меньше ребра треугольников после разбиения.

UPD:
Понял в чем дело:
представил фигуру в разрезе по горизонтали в центре, где
зеленым - места разреза при соблюдении одинаковой длины ребер, ориентируясь по углу ( то что нужно)
синим - места разреза грани по расстоянию на этой же грани (линейно)
пока не знаю как точно изложить, но результат следующий
2f30af3250094eb1a0d0acdb27ff84ef.png

Живой пример: https://www.desmos.com/calculator/plxwk8mukm
  • Вопрос задан
  • 756 просмотров
Решения вопроса 1
Ni55aN
@Ni55aN Автор вопроса
В итоге, на примере разбиения октаэдра получил:
71960db15c7a42999fe7cb55ee5d53af.png
UPD: в чем-то получился просчет - площадь при радиальном все же не одинакова (min area: 0.0192 -> max area: 0.0347)
Зеленый (линейный) - стандартный способ разбиения, в нем получается так, что крайние треугольники имеют меньшую площадь. Причем она в 5 раз отличается от максимальной.
Черный - радиальное разбиение, площадь не так сильно отличается сохраняется.
Причина - угловой дефект
2f30af3250094eb1a0d0acdb27ff84ef.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Для задач LOD вам лучше всего подойдёт сфера из одинаковых равносторонних треугольников.
Но нужно ещё смотреть, что вы хотите наложить на эту сферу, для определённых задач больше подойдёт ваш первый вариант.
Ответ написан
@GreatRash
Icosphere - та что справа.
Ответ написан
@AlexSku
не буду отвечать из-за модератора
Берёте икосаэдр и делаете тесселяцию: вместо одного треугольника будет 4 (при этом все новые и старые вершины продолжают быть вписанными в одну сферу, т.е. имеют одинаковый радиус-вектор). Разбиение продолжается несколько раз. В книге Франка Луны DirectX 12 приведён пример геосферы.

1c9121b75fb84f60bdc67ab7dc6f7be7.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы