Jump to content

Отбраковка задней поверхности

(Перенаправлено из отбраковки Backface )
Слева модель без BFC; справа та же модель с BFC: задние грани удалены.

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

Этот процесс делает рендеринг объектов более быстрым и эффективным за счет уменьшения количества полигонов, которые программа должна отрисовывать. Например, в сцене городской улицы обычно нет необходимости рисовать многоугольники на сторонах зданий, обращенных от камеры; они полностью закрыты сторонами, обращенными к камере.

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

Связанный с этим метод — обрезка , который определяет, находятся ли полигоны вообще в поле зрения камеры.

Другой похожий метод — Z-отсечение, также известное как отсечение окклюзии , которое пытается пропустить отрисовку полигонов, которые с точки зрения закрыты другими видимыми полигонами.

В нереалистичных рендерах определенные лица можно отбирать по тому, видны ли они или нет, а не по направлению от камеры. «Перевернутый корпус» или «отсечение передней грани» можно использовать для имитации контуров или мультяшных шейдеров без эффектов постобработки. [1]

Выполнение

[ редактировать ]

Один из методов реализации отсеивания обратной грани — это отбрасывание всех треугольников, у которых скалярное произведение к их нормали поверхности и вектора камеры к треугольнику больше или равно нулю:

где P — точка обзора, V 0 — первая вершина треугольника, а N — его нормаль, определяемая как векторное произведение двух векторов, представляющих стороны треугольника, смежные с V 0.

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

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

Если точки уже находятся в пространстве обзора, P можно предположить, что равно ( 0 , 0 , 0 ) , началу координат, что упрощает приведенное выше неравенство:

Также можно использовать этот метод в пространстве проекций, представляя приведенное выше неравенство как определитель матрицы и применяя к нему матрицу проекции. [2]

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

Пусть единичный треугольник в двух измерениях ( однородных координатах ) определяется как

Тогда для некоторого другого треугольника, также в двух измерениях,

определите матрицу, которая преобразует единичный треугольник:

так что:

Отбросьте треугольник, если матрица M содержит нечетное количество отражений (направленных в противоположную сторону единичного треугольника).

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

  1. ^ Хувен, ван дер, Йорик. «Нефотореализм в системах интерактивного рендеринга» (PDF) . Архивировано из оригинала (PDF) 2 ноября 2021 г. Проверено 10 августа 2023 г.
  2. ^ Дэвид Х. Эберли (2006). Проектирование движка 3D-игр: практический подход к компьютерной графике в реальном времени , с. 69. Издательство Морган Кауфманн, США. ISBN   0122290631 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5838e31513bf113109d9d69c3ed16fe1__1710083340
URL1:https://arc.ask3.ru/arc/aa/58/e1/5838e31513bf113109d9d69c3ed16fe1.html
Заголовок, (Title) документа по адресу, URL1:
Back-face culling - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)