Render.ru

Треугольники или прямоугольники??

hermione

Активный участник
Рейтинг
5
#1
В чем лучше оформлять полигоны? В прямоугольниках, или в треугольниках? В каких случаях нужно использовать треугольники, а в каких прямоугольники? Например: если у меня бюджет 8000 полигонов , то значит ли это что это то же самое что бюджет 4000 прямоугольника, или 8000 треугольников?
 

Миша Ершов

Модератор форума
Рейтинг
314
#2
прямоугольник - это фигура, имеющая прямые углы. Полигон может являться прямоугольником только в частных случаях. Полигон может иметь сколько угодно углов, теоретически от трёх до бесконечности, и может быть поделен на треугольники (кол-во треугольников = кол-во вершин - 2). А количество треугольных полигонов (треугольников) в одной моделе является постоянным. Поэтому бюджет _всегда_ указывают в треугольных полигонах.
 

hermione

Активный участник
Рейтинг
5
#3
прямоугольник - это фигура, имеющая прямые углы
Опечятка: конечно, имелось в виду четырехугольники.

Поэтому бюджет _всегда_ указывают в треугольных полигонах
Именно это я и хотела уточнить. Т.е. если бюджет, например 8000, то я могу построить либо на 8000 треугольниках либо на 4000 четырехугольниках.
Правильно?
 

hermione

Активный участник
Рейтинг
5
#5
еще не могу понять, при моделировании в каких случаях нужно строить треугольниками, а вкаких четырехугольниками?
 

Миша Ершов

Модератор форума
Рейтинг
314
#6
Моделировать удобнее всего четырехугольниками. Разбивать их на треугольники нужно только в единственном случае - когда нужно явно определить направление разделения.
 

Леонид Васильевич

Активный участник
Рейтинг
11
#8
Миша Ершов
когда нужно явно определить направление разделения.

Не могли бы вы на пальцах (картинках) объяснить, что за "направление разделения"?

А то я сейчас нахожусь в растерянности, пытаюсь замоделить заз-965, и хоть ты тресни, выходит так, что надо вставить треугольник!
То есть, получается, что треугольники можно в некоторых местах вставлять?
Имеет ли значение где этот треугольник буде стоять, на виду или нет?
 

Skif

Администратор 3D галереи
Команда форума
Рейтинг
584
#9
ой... чтож.. немного поправлю Михаила, хоть он и давно давал этот ответ. треугольники допустимы там где они не мешают, например при сглаживании, или текстурировании... НО желательно их вообще не делать...
треугольники допустимы и даже желательны в лоу поли моделировании тоесть для игр и архитектурном моделировании, в персонажах и авто они не желательны.
 

Skif

Администратор 3D галереи
Команда форума
Рейтинг
584
#11
все просто... при сглаживании, создании ЮВ разверток в местах с треугольниками появляются часто артефакты...
 

Slavenin

Активный участник
Рейтинг
12
#12
Примет прост, сделайте 2 простых полигональных куба, с одним сделайте триангуляцию, сделайте смус обоих и впечатлитесь результатами. Я конечно могу ошибаться, но любая хай поли модель получается путем смуса из лоу/мидполи модели, поэтому так важно чтобы полигоны имели четырехугольную форму, причем чем более прямоугольной она будет - тем лучше.
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#13
Менталовская аппроксимация дисплейса не выносит треугольники надо добавить.
 

Skif

Администратор 3D галереи
Команда форума
Рейтинг
584
#14
причем чем более прямоугольной она будет - тем лучше.
очень спорное утверждение... наоборот.. чем более равномерной будет сетка тем лучше... тоесть поли делать лучше квадратными.
 

alex_alv

Активный участник
Рейтинг
11
#15
Тоже долго не мог понять, почему надо делать четырехугольники. Для себя понял проблему так: для моделинга удобнее и проще использовать четырехугольники. Для рендеринга теоретически лучше - треугольники.

Четурехугольники (быстрее писать "квадраты") делают сетку более красивой, что делает возможной работу множества полезных в моделировании алгоритмов (от вставления edge loop до смуса). В квадрате, например, алгоритму edge loop легко понять направление разбиения. В треугольнике этот алгоритм невозможен. Именно поэтому, при моделировании треугольников нужно избегать. Но если при этом, сетка все равно не выглядит красиво ("изопармисто" - сам придумал слово), то большая часть этих алгоритмов работать все равно будет неправильно, и тогда уже все равно - треугольники ли кавдраты.

С точки зрения рендеринга, в общем случае квадрат отрендерить невозможно по двум причинам: планарность и UV. Непланарный квадрат невозможно отрендерить, потому что он неоднозначно определяет себя в пространстве. Иными словами, его можно разбить на два треугольника двумя разными способами. И эти два способа дадут абсолютно разную геометрию на выходе. Треугольник же определяется в пространстве всегда однозначно, так как три любые точки в пространстве всегда лежат в одной плоскости. Если они при этом не лежат на одной прямой, то они однозначно задают едиственную плоскость в пространстве. Именно поэтому, при рендеринге любая геометрия сначала триангулируется (квадрат не всегда возможно однозначно визуализировать, а треугольник - всегда однозначен).
На тему UV. Даже если квадрат планарен, но его диагонали пересекаются не в середине самих диагоналей (либо в пространстве, либо в UV раскладке), то на нем нельзя однозначным образом определить UV-координаты. В треугольнике - всегда можно. Если попытаться порендерить квадрат с неправильными диагоналями (см. выше), то расположение текстуры на нем непредсказуемо и зависит от того, каким именно способом рендер разобъет этот квадрат на два треугольника. Треугольник в этом смысле всегда однозначен и предсказуем. Я с этой проблемой сталкивался даже при простых UV (когда углы квадрата имеют UV: (0;0), (0;1), (1;0) и (1;1)).

На счет ментал рея. Могу ошибаться, но на сколько я помню, он легко работает и с квадратами и с треугольниками. Единственное, геометрия либо вся должна быть из треугольников, либо вся из квадратов. Если есть и то и другое, то будут глюки.

Вывод. Навреное, можно работать и с тем и с другим. И у треугольников и у квадратов есть и плюсы и минусы. Если их понимаешь (и если понимаешь, что будешь делать с геометрией потом), то можно использовать и то и другое. Если не понимаешь, то наверное нельзя использовать ни то, ни другое :)
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#16
геометрия либо вся должна быть из треугольников
Почему же именно должна? Триангуляция неизбежна для любого полигона, что для вывода на рендер, что на вьюпорт. Поэтому и не должно волновать понятие "Для рендеринга теоретически лучше - треугольники". Весь вопрос упирается в понятие усложненной топологии модели, неоднородности.
 

alex_alv

Активный участник
Рейтинг
11
#17
Процитированная фраза "геометрия либо вся должна быть из треугольников" относилась не к рендерингу, а к Approximation Editors ментал рея (просто выше было сказано, что эти Approximation Editors не работают с треугольниками). Эти Approximation Editors работают с геометрией еще до ее триангуляции, и они могут работать либо только с квадратами, либо только с треугольниками. Смешанная геометрия не подходит для них (если я правильно помню, и если с тех пор ничего не поменялось). А уже после их работы, геометрия триангулируется и рендерится.

А когда я говорил про рендеринг, что там лучше треугольники, я говорил, о том, что только треугольники могут порендериться однозначно и предсказуемо (с точки зрения UV и с точки зрения однозначности геометрии). Квадраты не всегда однозначно определены в пространстве и не всегда на них однозначно определены UV-координаты. Соответственно, при использовании квадратов, на рендере будет не всегда получаться то, что хочется, а будет получаться то, что получится.
 

alex_alv

Активный участник
Рейтинг
11
#18
Про то, что квадраты могут быть непланарными и в этом случае они принципиально не могут быть однозначно определены в пространстве (а значит и не могут быть однозначно порендерены), я думаю, это понятно.

На счет неопределенности UV у квадратов - вот скриншот планарного четырехугольника.

Это - обычный плейн с обычной UV-раскладкой. Токльо одна вершина перемещена по одной координате. (UV я не трогал)
По картинке надеюсь понятно, что если бы при визуализации триангуляция прошла бы по другой диагонали, текстура легла бы совсем по-другому.
Соответственно, предсказать, как текстура будет лежать на таком фэйсе при рендере - НЕВОЗМОЖНО.
Более того, при анимации (например, при перемещении камеры), рендер может принять решение триангулировать данный фэйс по-другому. Это приведет к тому, что текстура может просто начать скакать по фэйсу.
С треугольниками такие ситуации исключены
(тоже самое можно сказать и про планарность: непланарных треугольников не существует)
 

Вложения

Dark™

Модератор форума
Команда форума
Рейтинг
431
#19
Это все ясно и некоторые может даже скажут спасибо за такой обзор =), но речь сейчас не идет о полной триангуляции. Конечно логично, что mr Approximation хорошо работает с однородной треугольной топологией. Но я выше не про этот случай писал. Неоднородные изменения в структуре, по-моему, всегда приводят к косякам в процедурах, основанных на интерполяции - те же, например, сабдивы. Насчет картинки: таких случаев надо избегать хорошей разверткой, после этого заметных проблем не должно возникать.

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

alex_alv

Активный участник
Рейтинг
11
#20
На счет направления триангуляции - согласен, но я нигде в документации не видел, чтобы это было явно написано. А раз не написано, значит нельзя это утверждать наверняка. Более того, скорее всего, решение о направлении триангуляции скорее всего принимается на основе углов фэйса. А если ситуация почти симметричная, но от направления триангуляции сильно зависит, например, UV? Тогда - случай скакания текстуры при анимации.

На счет таких случаев, еще раз скажу, что у этого фэйса UV я не трогал. Они очень даже хорошие. Попробуйте замэпить такую трапецию "хорошо" - т. е. так, чтобы текстура шашечек легла тоже по трпеции. Не выйдет (если не разбивать на более мелкие фэйсы). Проблема не в UV, а в форме самого фэйса. Такой фэйс невозможно однозначно замэпить никаким способом (кроме может быть планарной проекции, но это - не то, что требуется в данном случае). Это принципиально.

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

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