Я заметил, что большинство 3D-игр/рендеринга представляют собой твердые тела как сетку (обычно треугольную) 3d полигоны. Однако в некоторых примерах, таких как Second Life или PovRay, используются твердые тела, созданные из набора 3d примитивы (куб, сфера, конус, тор и т. Д.), На которых могут выполняться различные операции для создания более сложных фигур.Prims vs Polys: каковы плюсы и минусы каждого?
Так что мой вопрос: Зачем нужен один метод для другого для представления трехмерных данных?
Я вижу, что для сложных операций трассировки лучей может быть полезно описать поверхность как одну математическую функцию (например, PovRay), но SL, безусловно, не пытается так амбициозно работать с движком рендеринга.
Равным образом, я могу себе представить, что может быть более эффективной полосой пропускания служить описания обобщенных твердых тел, а не произвольных сетках, но это действительно стоит недостаток, что SL страдает (т.е. моделирования материала является действительно трудно, и, как правило, результаты уродливые) - было ли это всего лишь плохим решением, принятым на ранней стадии разработки SL, к которому они теперь привязались? Или это артефакт того, что проще всего реализовать в OpenGL/DirectX?
EDIT: Прочитав ответы до сих пор, я теперь думаю, что мои два примера имеют очень разные причины для использования примитивов:
Для POVRAY, примы может быть бок- эффект описания твердых тел как функций математики, что дает преимущества для комплексного трассировки лучей.
Вторая жизнь, по-видимому, в основном связана с параметризацией их трехмерных элементов (как в качестве примитивов, так и в качестве параметрических фигур человека) по соображениям производительности ... Я думаю, что это идеальный вариант для онлайновой игры.
Проблема с использованием примитивов для чего-то вроде человеческой фигуры заключается в том, что вам очень нужно большое количество примитивов и выполнять булевы операции (объединение и пересечение) для построения модели. Это может быть более дорогостоящим вычислительным и иметь большую пропускную способность, чем использование многоугольного моделирования. – ChrisF
@ChrisF: Возможно, выполнение булевых операций на стороне клиента может сэкономить полосу пропускания? Кроме того, возможно ли, что SL представляет человека параметрически? Это было бы с точки зрения пропускной способности ... –
@MichaelE: +1 Я не считал обнаружение, но это имеет большой смысл. Также позволяя клиенту выбрать, сколько деталей для рендеринга - умная оптимизация. –