Вырезка (компьютерная графика) - Википедия - Clipping (computer graphics)

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

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

Отсечение в 2D-графике

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

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

Отсечение в 3D графике

Усеченный вид с ближней и дальней плоскостями обреза. Рендерится только заштрихованный объем.

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

Элементы модели сцены включают геометрические примитивы: точки или вершины; отрезки или края линий; многоугольники или грани; и более абстрактные объекты модели, такие как кривые, шлицы, поверхности и даже текст. В сложных моделях сцены отдельные элементы могут выборочно отключаться (обрезаться) по причинам, в том числе видимости в области просмотра (выбраковка усеченной кости ); ориентация (отбраковка задней поверхности ), затемнение другими элементами сцены или модели (удаление окклюзии, отсечение по глубине или "z"). Существуют сложные алгоритмы для эффективного обнаружения и выполнения такого ограничения. Многие оптимизированные методы отсечения полагаются на особую логику аппаратного ускорения, предоставляемую графический процессор (GPU).

Концепция отсечения может быть расширена до более высокой размерности с использованием методов абстрактного алгебраическая геометрия.

Рядом с обрезкой

Помимо проецирования вершин и 2D-обрезки, для правильной растеризации 3D-примитивов требуется обрезка вблизи; это потому, что вершины могли проецироваться за глаз. Рядом с обрезкой гарантирует, что все используемые вершины имеют допустимые 2D-координаты. Вместе с далеко отсечка это также помогает предотвратить переполнение значений буфера глубины. Некоторые ранние оборудование наложения текстуры (с помощью прямое наложение текстуры ) в видеоиграх страдали от осложнений, связанных с клиппированием и УФ-координаты.

Отсечение окклюзии (отсечение по Z или глубине)

В трехмерной компьютерной графике «Z» часто относится к оси глубины в системе координат, центрированной в начале координат области просмотра: «Z» используется взаимозаменяемо с «глубиной» и концептуально соответствует расстоянию «до виртуального экрана». В этой системе координат «X» и «Y», следовательно, относятся к обычному декартова координата система выложена на экране пользователя или область просмотра. Этот видовой экран определяется геометрией просмотр усечённой пирамиды, и параметризует поле зрения.

Z-отсечение или отсечение глубины относится к методам, которые выборочно визуализируют определенные объекты сцены на основе их глубины относительно экрана. Большинство графических инструментов позволяют программисту определять «ближнюю» и «дальнюю» глубину клипа, и отображаются только части объектов между этими двумя плоскостями. Креативный программист приложений может использовать этот метод для визуализации внутренней части трехмерного объекта в сцене. Например, медицинская визуализация приложение может использовать эту технику для визуализации органов внутри человеческого тела. Программист видеоигр может использовать информацию отсечения для ускорения логики игры.[3] Например, высокая стена или здание, которые закрывают другие игровые объекты, могут сэкономить время графического процессора, которое в противном случае было бы потрачено на преобразование и текстурирование элементов в задних областях сцены; и тесно интегрированное программное обеспечение может использовать ту же информацию для экономии времени процессора за счет оптимизации игровой логики для объектов, которые не видны игроку.[3]

Важность клиппирования в видеоиграх

Хорошая стратегия обрезки важна при разработке видеоигры чтобы максимально увеличить игровую частота кадров и визуальное качество. Несмотря на Чипы GPU которые быстрее с каждым годом, остается дорогостоящим в вычислительном отношении преобразовать, текстура, и оттенок многоугольники, особенно с распространенными сегодня многократными переходами текстуры и затенения. Следовательно, разработчики игр должны жить в пределах определенного «бюджета» полигонов, которые можно рисовать в каждом кадре видео.

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

Вырезка оптимизация может ускорить рендеринг текущей сцены, экономя время и память модуля рендеринга в пределах возможностей оборудования. Программисты часто изобретают умные эвристика для ускорения обрезки, поскольку иногда с вычислительной точки зрения использовать литье строк или трассировка лучей определить со 100% точностью, какие полигоны не попадают в поле зрения камеры. поле зрения. Структуры данных с пространственным управлением, такие как Octrees, R * деревья, и ограничивающие иерархии томов может использоваться для разделения сцен на визуализированные и неотрисованные области (позволяя визуализатору отклонять или принимать целые узлы дерева, где это необходимо).

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

По историческим причинам в некоторых видеоиграх использовались обнаружение столкновения оптимизации с той же логикой и аппаратным ускорением, что и тест на окклюзию. В результате неспециалисты неправильно использовали термин «клип» (и его антоним «нить ") для обозначения обнаружения столкновений.

Алгоритмы

Смотрите также

дальнейшее чтение

Рекомендации

  1. ^ Бертолин, Гэри; Вибе, Эрик (2002). Основы графической коммуникации (3-е изд.). Макгроу-Хилл. п. G-3. ISBN  0-07-232209-8. Получено 2015-01-04.
  2. ^ а б "java.awt.Graphics.clipRect". Oracle. 2014 г.
  3. ^ а б c Секулич, декан (2004). «Эффективное удаление окклюзии». Камни GPU. Пирсон. Архивировано из оригинал на 2013-06-05. Получено 2015-01-02.
  4. ^ Пол Марц (2001). «Отсечение, отсечение и проверка видимости». OpenGL.org. Получено 2015-01-02.