Обрезка (компьютерная графика)

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

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

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

Содержание

  • 1 Отсечение в 2D-графике
  • 2 Отсечение в 3D-графике
    • 2.1 Около отсечения
    • 2.2 Отсечение окклюзии (отсечение по Z или глубине)
  • 3 Важность отсечения в видеоиграх
  • 4 Алгоритмы
  • 5 См. Также
  • 6 Дополнительная литература
  • 7 Ссылки

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

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

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

Обрезка в трехмерной графике

Угол обзора с ближней и дальней плоскостями обрезки. Визуализируется только закрашенный объем.

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

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

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

Отсечения вблизи

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

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

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

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

Важность обрезки в видеоиграх

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

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

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

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

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

Алгоритмы

См. Также

Дополнительная литература

Ссылки

  1. ^Бертолайн, Гэри; Вибе, Эрик (2002). Основы графической коммуникации (3-е изд.). Макгроу-Хилл. п. G-3. ISBN 0-07-232209-8. Проверено 4 января 2015 г.
  2. ^ "java.awt.Graphics.clipRect". Oracle. 2014.
  3. ^ Секулич, Декан (2004). «Эффективное устранение окклюзии». Самоцветы GPU. Пирсон. Архивировано с оригинального 05.06.2013. Проверено 2 января 2015.
  4. ^Пол Марц (2001). «Проверка отсечения, отсечения и видимости». OpenGL.org. Проверено 2 января 2015 года.
Последняя правка сделана 2021-05-15 11:50:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте