ТЕХНОЛОГИИ УМЕНЬШЕНИЯ ПИКСЕЛЬНОГО ШЕЙДИНГА
TECHNOLOGIES OF REDUCING PIXEL SHADING

Визуализация двумерных (2D) сгенерированных компьютером изображений (CGI) из трехмерных (3D) моделей, ранее выполнявшаяся только частью относительно специализированных функций компьютера, все в большей степени используется во все большем количестве аспектов работы компьютерных устройств. В частности, хотя видеоигры продолжают представлять наиболее преобладающее использование таких изображений, их использование начинает поддерживаться на веб-сайтах и как часть графических интерфейсов пользователя (GUI) по все увеличивающемся массиве устройств.
Хотя достижения в конструкции аппаратных средств графической визуализации и повышение эффективности алгоритмов визуализации обеспечивали значительную часть такого увеличивающегося использования CGI на основе 3D моделей, эти достижения и повышение эффективности не были достаточными для того, чтобы полностью решить проблему ограничений при обработке и ресурсов энергии, которые являются типичными в портативных устройствах. В частности, работа по шейдингу графических примитивов для предоставления цвета и текстуры объектам в изображении продолжает требовать существенных ресурсов обработки, что, в свою очередь, налагает значительные требования в отношении ограниченных ресурсов энергии, предоставляемой аккумуляторными батареями и/или другими источниками питания, обычно используемыми в портативных устройствах. Кроме того, по мере того, как разрешение пикселей дисплеев, встроенных в портативные устройства, продолжает повышаться, достигнутое снижение требований в отношении обработки и питания было перекрыто экспоненциальным увеличением количества шейдинга связанного с таким увеличением разрешения.
Предыдущие усилия были направлены на то, чтобы, по меньшей мере, ограничить эти все возрастающие потребности в ресурсах энергии путем попыток непосредственного уменьшения количества выполняемого шейдинга. Однако при таких подходах все чаще происходит ввод неточной или неправильной информации, в виде входных данных для шейдинга, например, как в случае повышенного применения экстраполяций среди характеристик расчетов по интерполяции. Такая неточная или неправильная информация часто приводит к проявлению визуальных артефактов, таких как "мерцание" цвета пикселей, отсутствие гладкости при переходе цветов на изогнутых поверхностях объектов, составленных из множества примитивов, и/или смещенные границы теней.
Краткое описание чертежей
На фиг. 1 показан примерный вариант осуществления системы визуализации графики.
На фиг. 2 показан альтернативный примерный вариант осуществления системы визуализации графики.
На фиг. 3 показана часть примерного варианта осуществления.
На фиг. 4 показан примерный вариант осуществления растеризации 3D модели.
На фиг. 5 показан примерный вариант осуществления отсечения для определения многоугольника.
На фиг. 6 показан примерный вариант осуществления интерполяции для получения атрибутов вершин многоугольника.
На фиг. 7 показан примерный вариант осуществления вершин пиксельного шейдинга многоугольника.
На фиг. 8 показан примерный вариант осуществления интерполяции для раскрашивания пикселя экрана.
На фиг. 9A и 9B вместе представлен примерный вариант осуществления отсечения для определения более, чем одного многоугольника.
На каждой фиг. 10-11 представлен поток логической обработки в соответствии с вариантом осуществления.
На фиг. 12 показана архитектура обработки в соответствии с вариантом осуществления.
На фиг. 13 показан другой альтернативный вариант осуществления системы обработки графики.
На фиг. 14 показан вариант осуществления устройства.
Осуществление изобретения
Различные варианты осуществления, в общем, направлены на технологии для уменьшения требований к обработке шейдинга видимых примитивов при рендеринге 2D изображения экрана из 3D модели путем шейдинга пикселей, которые являются более грубыми, чем пиксели экрана, для изображения экрана, при одновременной минимизации визуальных артефактов. После растеризации выполняется отсечение видимых примитивов в пределах каждого из пикселей шейдинга для определения многоугольников, которые представляют пересечения видимых примитивов с областями, покрытыми отдельными пикселями шейдинга. Атрибуты в вершинах видимых примитивов интерполируют до вершин многоугольников, и затем выполняют шейдинг пикселей, используя атрибуты в вершинах многоугольников для вывода цветов в вершинах многоугольников. Затем цвета в вершинах многоугольников интерполируют для вывода цветов пикселей экрана.
В некоторых вариантах осуществления при растеризации может использоваться только одна выборка, выделенная для каждого пикселя изображения экрана для изображения экрана (например, одна выборка в центре каждого пикселя изображения экрана), для идентификации частей примитивов 3D модели, которые являются видимыми из перспективы изображения экрана в местах расположения пикселей изображения экрана. В других вариантах осуществления при растеризации может использоваться любая из различных типов выборки, включая в себя избыточную выборку, стохастическую выборку, мультивыборку и т.д., в которых присутствует множество выборок изображения экрана, выделенных для каждого пикселя изображения экрана для изображения экрана, для идентификации, таким образом, частей примитивов 3D модели, которые являются видимыми. Перед растеризацией может выполняться шейдинг вершины для вывода атрибутов для каждой из вершин каждого из примитивов. Как понятно для специалиста в данной области техники, в зависимости от подхода, в котором генерируются объекты 3D модели, примитивы могут быть представлены треугольниками или могут представлять собой смесь разных типов многоугольников. Однако, независимо от формы каждого примитива, все части каждого примитива должны существовать в пределах одной плоскости. Атрибуты вершин примитива, включая в себя их взаимные положения, могут определять этот примитив и плоскость, в которой он присутствует.
С сеткой пикселей экрана для изображения экрана может совпадать сетка пикселей шейдинга, в которой пиксели шейдинга являются более грубыми, чем пиксели экрана, таким образом, что каждый пиксель шейдинга охватывает большую область, чем каждый пиксель экрана. В некоторых вариантах осуществления пиксели шейдинга могут быть определены таким образом, что их границы соответствуют границам пикселей экрана таким образом, что каждый пиксель шейдинга соответствует целочисленному кратному пикселей экрана (например, каждый пиксель шейдинга может соответствовать четырем пикселям экрана). После растеризации может использоваться отсечение для вывода одного или больше многоугольников в пределах каждого пикселя шейдинга, которые представляют пересечения области каждого пикселя шейдинга и области пределах каждого пикселя шейдинга, покрытого частью примитива, который видим в пределах пикселя шейдинга. В действительности, каждый видимый примитив разделяют на один или больше многоугольников, таким образом, что каждый из них представляет такое пересечение с пикселем шейдинга.
После отсечения атрибуты вершин каждого видимого примитива интерполируют по вершинам каждого из многоугольников, на которые был разделен этот примитив, для вывода атрибутов в вершинах этих многоугольников. Шейдинг пикселей затем выполняют в каждой из вершин каждого из многоугольников, для вывода значений цвета для вершин каждого из многоугольников.
После шейдинга пикселей в вершинах многоугольников, значения цвета в вершинах многоугольников интерполируют, для вывода значений цвета для пикселей экрана. В некоторых вариантах осуществления, определение, какие вершины используются при интерполяции значений цвета на пиксели экрана, могут быть основано на местоположении центра каждого пикселя экрана относительно границ многоугольников. Другими словами, в случае, когда центр конкретного пикселя экрана попадает в пределы границ конкретного многоугольника, значения цвета в вершинах этого конкретного многоугольника интерполируют для вывода значений цвета этого конкретного пикселя экрана. Однако, в других вариантах осуществления, значения цвета в вершинах каждого многоугольника интерполируют для вывода значений цвета каждой выборки изображения экрана, которое попадает в пределы этого многоугольника, и значения цвета выборок, которые попадают в пределы каждого пикселя экрана, усредняют для вывода цвета этого пикселя экрана. Независимо от того, выполняется ли интерполяция значений цвета от вершин многоугольников к центрам пикселей экрана, или к выборкам изображений экрана после усреднения, другие атрибуты в вершинах многоугольников также могут быть интерполированы, таким образом.
При общей ссылке на представления и номенклатуру, используемые здесь, части подробного описания изобретения, которые следуют дальше, могут быть представлены со ссылкой на программные процедуры, выполняемые в компьютере или сети компьютеров. Такие описания процедур и представлений используются специалистами в данной области техники для того, чтобы наиболее эффективно передать суть своей работы другим специалистам в данной области техники. Здесь используется процедура, которая, в общем, рассматривается, как самостоятельная последовательность операций, приводящая к требуемому результату. Эти операции являются операциями требуемых физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, такие величины принимают форму электрических, магнитных или оптических сигналов, выполненных с возможностью их сохранения, передачи, комбинирования, сравнения и другой манипуляции. Время показало удобно, преимущественно по причинам общего использования, ссылаться на эти сигналы, как на биты, значения, элементы, символы, знаки, термины, числа и т.п. Следует отметить, однако, что все эти и аналогичные термины должны быть ассоциированы с соответствующими физическими величинами и представлять собой просто удобные метки, применяемые для этих величин.
Кроме того, такие манипуляции часто обозначают с использованием такой терминологии, как добавление или сравнение, которые обычно ассоциируются с ментальными операциями, выполняемыми оператором - человеком. Однако такая способность оператора - человека не является необходимой или желательной в большинстве случаев в любой из описанных здесь операций, которые формируют часть одного или больше вариантов осуществления. Скорее, эти операции представляют собой машинные операции. Полезные устройства для выполнения операций различных вариантов осуществления включают в себя цифровые компьютеры общего назначения, как избирательно активируемые или конфигурируемые компьютерной программой, содержащейся в них, которая записана в соответствии с представленным здесь описанием, и/или включают в себя устройство, специально построенное для требуемого назначения. Различные варианты осуществления также относятся к устройству или системам для выполнения этих операций. Такое устройство может быть, в частности, построено для требуемого назначения или может включать в себя компьютер общего назначения. Требуемая структура для множества таких устройств будет понятна из представленного описания.
Теперь будет сделана ссылка на чертежи, на которых одинаковые номера ссылочных позиций используются для обозначения одинаковых элементов на всех чертежах. В следующем описании, с целью пояснения, различные определенные детали представлены с целью обеспечения полного их понимания. Однако, может быть очевидно, что новые варианты осуществления могут быть выполнены на практике без этих конкретных деталей. В других случаях хорошо известные структуры и устройства показаны в форме блок-схем для того, чтобы способствовать их описанию. При этом предполагается охват всех модификаций, эквивалентов и альтернатив в пределах объема формулы изобретения.
На фиг. 1 иллюстрируется блок-схема варианта осуществления системы 1000 графической визуализации, в которой используется одно или больше из устройства 300 источника, вычислительного устройства 500 и устройства 700 просмотра. Вычислительное устройство 500 генерирует двумерное (2D) изображение 880 экрана трехмерной (3D) модели 280, проецируемой на 2D плоскость изображения 880 экрана. Вычислительное устройство 500 может принимать данные 330 3D модели, представляющие 3D модель 280 одного или больше объектов в пределах определенного 3D пространства из устройства 300 источника. Данные 330 3D модели могут либо непосредственно устанавливать примитивы, составляющие один или больше объектов модели 280 и/или атрибутов этих примитивов, или могут включать в себя достаточно информации для обеспечения вывода этих примитивов и/или их атрибутов.
После генерирования изображения 880 экрана, вычислительное устройство 500 может представлять изображение 880 экрана на дисплее 580 и/или передавать данные 730 изображения экрана, представляющие изображения 880 экрана, в устройство 700 просмотра для представления на его дисплее 780. Данные 730 изображения экрана могут включать в себя растровое представление для изображения 880 экрана, в котором цвета каждого пикселя изображения 880 экрана могут быть кодированы, используя любой из множества форматов. В некоторых вариантах осуществления разрешение пикселя изображения 880 экрана можно выбрать так, чтобы оно соответствовало разрешению пикселей дисплея 580 и/или дисплея 780. Действительно, в некоторых вариантах осуществления, устройство 700 просмотра может предоставлять обозначение разрешения пикселя дисплея 780 для вычислительного устройства 500, для обеспечения установки изображения пикселя изображения 880 экрана так, чтобы оно соответствовало разрешению пикселей дисплея 780.
Каждое из этих вычислительных устройств может представлять собой любое из различных типов вычислительных устройств, включая в себя, без ограничений, настольную компьютерную систему, терминал ввода данных, переносной компьютер, компьютер нетбук, планшетный компьютер, карманный персональный компьютер, смартфон, интеллектуальные очки, интеллектуальные наручные часы, цифровую камеру, вычислительное устройство, носимое на теле, встроенное в одежду, вычислительное устройство, интегрированное в транспортное средство (например, автомобиль, велосипед, инвалидное кресло и т.д.), сервер, кластер серверов, группы серверов и т.д.
Как представлено, такие вычислительные устройства 300, 500 и 700 выполняют обмен сигналами, переносящими данные, представляющие 3D модель и/или изображение 2D экрана через сеть 999. Однако, одно или больше их этих вычислительных устройств может выполнять обмен другими данными, полностью не связанными с визуализацией 2D изображения из 3D модели, с каждым другим и/или с дополнительными другими вычислительными устройствами (не показаны) через сеть 999. В различных вариантах осуществления сеть может представлять собой одиночную сеть, возможно, ограниченную по обмену одним зданием или относительно ограниченной другой областью, комбинации соединенных сетей, возможно, продолжающихся на значительное расстояние, и/или может включать в себя Интернет. Таким образом, сеть 999 может быть основана на любой из разновидностей (или комбинации) компьютерных технологий, с помощью которых может выполняться обмен сигналами, включая без ограничений, проводные технологии, в которых используются электрические и/или оптически проводящие кабели, и беспроводные технологии, в которых используются инфракрасная, радиочастотная или другие формы беспроводной передачи.
В различных вариантах осуществления вычислительное устройство 500 включает в себя один или больше компонентов 550 процессора, накопителя 560, дисплея 580, контроллера 600 и интерфейса 590 для соединения вычислительного устройства 500 с сетью 999. В накопителе 560 содержится одна или больше процедур 540 управления, данные 330 3D модели и данные 335 управления. В контроллер 600 встроен один или больше из компонента 650 процессора и накопителя 660. В накопителе 660 содержится одна или больше из процедур 640 управления, данных 632 видимых примитивов, данных 633 многоугольников, данных 635 многоугольника с атрибутами, данных 636 многоугольника, данных 637 цвета выборки и данных 730 изображения экрана.
Процедура 540 управления включает в себя последовательность инструкций, работающих в компоненте 550 процессора при выполнении его роли основного компонента процессора вычислительного устройства 500 для воплощения логики для выполнения различных функций. При выполнении процедуры 540 управления компонент 550 процессора может принимать данные 330 3D модели из устройства 300 источника через сеть 999 и может сохранять, по меньшей мере, их часть, которая представляет, по меньшей мере, часть 3D модели 280 в накопителе 560. Следует отметить, что данные 330 3D модели могут содержаться в накопителе 560 в течение значительного периода времени перед их использованием, включая в себя генерирование их 2D изображений при передаче. После генерирования данных 730 изображения экрана, представляющих изображения 880 экрана, компонент 550 процессора может визуально представлять изображение 880 на дисплее 580, для просмотра и/или передачи данных 730 изображения экрана в устройство 700 просмотра, для обеспечения возможности представления изображения 880 экрана на дисплее 780 для просмотра.
В некоторых вариантах осуществления компонент 550 процессора может принимать обозначения различных параметров конфигурации для использования при генерировании изображения 880 экрана из 3D модели 280. Например, в вариантах осуществления, в которых изображение 880 экрана должно быть передано в устройство 700 просмотра для представления на дисплее 780, могут быть приняты обозначения из устройства 700 просмотра (например, через сеть 999) о величине разрешения пикселей в виде цветов, частоты кадров и/или других параметров дисплея 780. В качестве другого примера, обозначения расположения и/или ориентация плоскости и/или границ изображения 880 экрана относительно 3D модели 280 могут быть приняты из устройства 700 просмотра и/или из еще другого устройства (не показано) через сеть 999. Компонент 550 процессора может сохранять обозначения таких параметров, как часть данных 335 управления для использования компонентом 650 процессора при генерировании изображения 880 экрана. В качестве альтернативы или в дополнение, обозначение разрешения пикселей может быть представлено для дисплея 580, а не для дисплея 780.
Процедура 640 управления содержит последовательность инструкций, выполняемых в компоненте 650 процессора, который выполняет свою роль компонента процессора контроллера для контроллера 600 вычислительного устройства 500, для воплощения логики для выполнения различных функций. При выполнении процедуры 640 оценки компонент 650 процессора генерирует данные 730 изображения экрана, представляющие изображения 880 экрана, из данных 330 3D модели, представляющих 3D модель 280. Более точно, компонент 650 процессора выполняет визуализацию изображения 880 экрана, как 2D проекцию 3D модели 280 на плоскости изображения 880 экрана. На фиг. 3 представлен пример варианта осуществления такого генерирования данных 730 изображения экрана, представляющего изображение 880 экрана из данных 330 3D модели, представляющих 3D модель 280. Как представлено, процедура 640 управления может содержать один или больше из компонента 642 растеризации, компонента 643 отсечения при шейдинге, компонента 645 интерполяции атрибутов, компонента 646 шейдинга пикселей, компонента 647 интерполяции цвета и компонента 648 усреднения. При выполнении процедуры 640 управления компонент 650 процессора может выполнять один или больше из компонентов 642, 643, 645, 646, 647 и 648 процедуры 640 управления.
Компонент 642 растеризации может выполнять визуализацию обозначения местоположения и ориентации на плоскости изображения 880 экрана относительно одного или больше объектов 3D модели 280 и/или границ изображения 880 экрана в пределах этой плоскости через данные 335 управления. Компонент 642 растеризации может затем использовать это обозначение при растеризации графических примитивов одного или больше объектов 3D модели 280, используя множество выборок для каждого пикселя изображения 880 экрана, для определения, какой из этих примитивов представляет собой видимые примитивы, все из которых являются, по меньшей мере, частично видимыми в изображении 880 экрана. На фиг. 4 более подробно представлены аспекты примера такой растеризации. Как представлено, данные 330 3D модели могут включать в себя данные 332 примитивов, которые включают в себя обозначение различных характеристик примитивов 282 3D модели 280, таких как размер, форма, местоположение и/или ориентация. Как описано выше, каждый из примитивов 282 может представлять собой любой из различных типов многоугольников, каждый из которых продолжается в пределах одной плоскости. Однако, как также было описано выше, большинство примитивов (если не все) в типичных 3D моделях представляют собой треугольники.
При выполнении растеризации, для определения, какие примитивы 282 3D модели 280 также являются видимыми примитивами 882, которые, по меньшей мере, частично видимы в изображении 880 экрана, компонент 642 растеризации может проецировать различные выборки 888 изображения экрана (только одна из которых представлена для ясности визуального представления) для каждого пикселя 885 изображения экрана для изображения 880 экрана в направлении 3D модели 280. При таком проектировании выборки 888 изображения экрана, любая из множества технологий выборки может использоваться при выборе количества выборок 888 изображения экрана на пиксель 885 изображения экрана и при выборе местоположений выборок 888 изображений экрана в пределах области, покрытой каждым пикселем 885 изображения экрана. Такие используемые технологии не являются ограничительными для избыточной выборки, множественной выборки и/или стохастической выборки. Поскольку каждая выборка 888 изображения экрана проецируется (как и линия, продолжающаяся от и нормально плоскости изображения 880 экрана) в направлении 3D модели 280, первый примитив 282 3D модели 280, с которым сталкивается каждая выборка 888 изображения экрана, становится видимым примитивом 882, который является, по меньшей мере, частично видимым в изображении 880 экрана.
Показатели того, какие видимые примитивы 882 идентифицированы растеризацией, могут быть сохранены, как часть данных 632 видимых примитивов. Как представлено, среди сохраненной информации, относящейся к видимым примитивам 882, могут быть показатели различных атрибутов, ассоциированных с каждой из вершин 883 каждого из видимых примитивов 882. Сохраненные атрибуты могут включать в себя, и не ограничены этим, одно или больше положений вершин, нормальных векторов, спецификаций материалов, глубин относительно плоскости изображения 880 экрана и т.д. В некоторых вариантах осуществления данные 632 видимых примитивов могут называться "буфером геометрии" (G - буфером).
Возвращаясь к фиг. 3, после растеризации, выполняемой компонентом 642 растеризации, компонент 643 отсечения шейдинга может разделить каждый из видимых примитивов 882 на один или больше многоугольников, так, что каждый из них представляет пересечение видимого примитива 882 с пикселем шейдинга для вывода вершин для использования при последующем шейдинге пикселя. На фиг. 5 более подробно представлены аспекты такого разделения примера видимого примитива 882. Более конкретно, на сетку 885 пикселей экрана, используемую во время растеризации, накладывается более грубая сетка пикселей 685 шейдинга, которая используется во время последующего пиксельного шейдинга. Как представлено, каждый из пикселей 685 шейдинга может покрывать большую область, чем пиксели 885 экрана. Кроме того, границы пикселей 685 шейдинга могут выравниваться, по меньшей мере, с поднабором границ пикселей 885 экрана таким образом, что область, покрываемая одним из пикселей 685 шейдинга, накладывается на область, покрытую целочисленным кратным пикселей 885 экрана (например, каждый пиксель 685 шейдинга соответствует области покрытия четырех из пикселей 885 экрана, как представлено). Несмотря на такое представление конкретного подхода соответствия местоположения и области между пикселями 685 шейдинга и пикселями 885 экрана, следует отметить, что возможны другие варианты осуществления, в которых границы не выравниваются и/или в которых область, покрытая пикселем 685 шейдинга, не является целочисленным кратным области, покрытой пикселем 885 экрана.
В некоторых вариантах осуществления подход, в соответствии с которым границы и/или области, покрытые пикселями 685 и 885, соответствуют, могут быть определены по показателю, сохраненному в данных 335 конфигурации (например, показатель, определяющий, что каждый пиксель 685 шейдинга покрывает область из четырех пикселей 885 экрана, как представлено), и этот показатель может быть получен из данных 335 конфигурации компонентом 643 отсечения шейдинга. В других вариантах осуществления компонент 643 отсечения шейдинга может включать в себя компонент 6435 определения пикселя шейдинга для определения границ и/или областей, покрытых пикселями 685 шейдинга на основе анализа одной или больше характеристик видимых примитивов 882 (например, на основе статистики, такой как средняя площадь, покрытая видимыми примитивами 882).
Независимо от подхода, в соответствии с которым определяют размер и/или границы пикселей 685 шейдинга относительно пикселей 885 экрана, компонент 643 отсечения шейдинга может выполнять отсечение частей видимых примитивов 882, которые попадают в пределы каждого из пикселей 685 шейдинга, для вывода многоугольников 682, каждый из которых представляет пересечение области, покрытой пикселем 685 шейдинга, и части видимого примитива 882, который попадает в пределы пикселя 685 шейдинга. Более конкретно, и, как представлено, на примере видимого примитива 882, ранее идентифицированного компонентом 642 растеризации, наложена сетка пикселей 685 шейдинга, включающая в себя пример пикселя 685 шейдинга (выделен), который соответствует примеру пикселя 885 экрана (также выделен), для которого выполняют поиск значения цвета. В пределах примера пикселя 685 шейдинга, отсечение примера видимого примитива 882 выполняют в непосредственной близости двух углов примера пикселя 685 шейдинга для определения примера многоугольника 682 (также выделен), имеющего форму, которая определяется путем пересечения областей, покрытых примером пикселя 685 шейдинга и участком примера видимого примитива 882, который попадает в пределы примера пикселя 685 шейдинга.
В некоторых вариантах осуществления компонент 643 отсечения шейдинга может генерировать барицентрическую систему координат на каждом видимом примитиве 882, для управления отсечением. Как понятно для специалиста в данной области техники, барицентрическая система координат основана на относительных местоположениях вершин, при этом центры каждого сегмента продолжаются между вершинами и/или центром масс многоугольника. Дополнительно, в пределах, по меньшей мере, выпуклых многоугольников, барицентрическая система координат определяет все точки с помощью полностью неотрицательных значений координат, как находящиеся либо на ребре, или внутри многоугольника, и все точки с любым отрицательным значением координат, как находящиеся за пределами многоугольника. Таким образом, в вариантах осуществления, в которых компонент 643 отсечения шейдинга генерирует барицентрическую систему координат для каждого видимого примитива 882, компонент 643 отсечения шейдинга может затем накладывать ограничение на любое отрицательное значение координат, как часть идентификации местоположений кромок видимого примитива 882 в пределах пикселя 685 шейдинга, для определения, где должно произойти отсечение в пределах этого пикселя 685 шейдинга.
Независимо от подхода, в котором выполнено определение, следует ли выполнить отсечение для генерирования каждого многоугольника 682, компонент 643 отсечения шейдинга может содержать показатели областей, покрытых каждым многоугольником 682, который может быть определен при таком отсечении в пределах каждого из пикселей 685 шейдинга, как часть данных 633 многоугольника. В некоторых вариантах осуществления геометрии каждого такого многоугольника 682 могут быть описаны с использованием данных 633 многоугольника по показателям мест расположения их вершин.
Возвращаясь к фиг. 3, после выполнения отсечения компонентом 643 отсечения, компонент 645 интерполяции атрибута может интерполировать один или больше атрибутов в вершинах каждого видимого примитива 882 до вершин многоугольников 682, на которые были разделены видимые примитивы 882 в результате отсечения. На фиг. 6 более подробно представлены аспекты примера такой интерполяции атрибутов от вершин примера примитива 882 до вершин примера многоугольника 682 на фиг. 5. Более конкретно, возвращаясь частности к тому, что представлено на фиг. 6, компонент 645 интерполяции атрибута интерполирует один или больше атрибутов каждой из вершин 883 примера видимого примитива 882 для каждой из вершин 683 примера многоугольника 682. Таким образом, компонент 645 интерполяции атрибута может получать показатели атрибутов вершин 883 примера видимого примитива 882 из данных 632 видимых примитивов и может получать показатели местоположений вершин 682 примера многоугольника 682 из данных 633 многоугольника.
Рабочие характеристики интерполяции, выполняемые компонентом 645 интерполяции атрибута из одного или больше атрибутов в каждой из вершин 883 примера видимого примитива 882 до вершин 683 примера многоугольника 682, исключают случаи экстраполяции, при которых интерполяция от вершин 883 выполняется до одного или больше мест расположения за пределами примера видимого примитива 882. Атрибуты интерполяции от каждой из вершин примитива до местоположения за пределами примитива могут рассматриваться логически некогерентными, поскольку может отсутствовать основание для собственного предположения о том, что атрибуты этого примитива могли бы иметь какую-либо применимость в отношении того, что может представлять собой местоположение, в котором может ничто не присутствовать, или в котором может существовать другой примитив, имеющий совершенно другие атрибуты. В качестве примера, интерполяция от значений цвета в вершинах 883 примера видимого примитива 882 до местоположения за пределами примера видимого примитива 882, вероятно, будет бессмысленной, поскольку в этом местоположении может ничего не находиться, что могло быть иметь заданное значение цвета, или здесь может находиться другой примитив с совершенно другим цветом в этом местоположении.
Вершины 683 примера многоугольника 682 предоставляет набор местоположений, которые, как известно, находятся либо в пределах примера видимого примитива 882 или вдоль одной или больше кромок примера видимого примитива 882, а не за пределами примера видимого примитива 882. В результате, интерполяция, выполняемая компонентом 645 интерполяции атрибута, может быть выполнена из вершин 883 примера видимого примитива 882 для каждой из вершин 683 примера многоугольника 682 без риска, что одна или больше этих интерполяций представляет собой экстраполяцию. Это отличается от других известных технологий, в которых такая интерполяция была бы выполнена из вершин 883 примера видимого примитива 882 в любой из углов пикселя 685 шейдинга, в котором пример многоугольника 682 сформирован к центрам этого пикселя 685 шейдинга и одному или больше соседних пикселей 685 шейдинга. Каждая такая интерполяция таких других известных технологий, могла бы привести к множеству экстраполяций (как можно видеть со ссылкой на фиг. 5). Компонент 645 интерполяции атрибута может содержать показатели атрибутов, выведенные для каждой из вершин 683 примера многоугольника 682, как часть данных 635 многоугольника с атрибутами. В некоторых вариантах осуществления данные 635 многоугольника с атрибутами также могут включать в себя показатели местоположений каждой из вершин 683.
Возвращаясь к фиг. 3, после интерполяции для вывода атрибутов в вершинах 683 каждого из многоугольников 682, выполненной компонентом интерполяции 645 атрибута, компонент 646 пиксельного шейдинга может использовать атрибуты в каждой вершине 683 каждого многоугольника 682, как входы для выполнения пиксельного шейдинга в каждой вершине 683 каждого многоугольника 682 для вывода значений цвета для каждой вершины 683 каждого многоугольника 682. Например, в каждой вершине 683 примера многоугольника 682, компонент 646 пиксельного шейдинга может использовать один или больше атрибутов в этой вершине 683 для вывода значения цвета, устанавливающего цвет в этой вершине 683. Таким образом, компонент 646 пиксельного шейдинга может получать показатели одного или больше атрибутов для каждой вершины 683 примера многоугольника 682 из данных 635 многоугольника с атрибутами. Компонент 646 пиксельного шейдинга может затем содержать показатели значений цвета, устанавливающих цвет в каждой из вершин 683 примера многоугольника 682, как часть данных 636 многоугольника после шейдинга. В некоторых вариантах осуществления данные 636 многоугольника после шейдинга также могут включать в себя показатели местоположений каждой из вершин 683 и/или атрибуты в каждой из вершин 683.
После шейдинга в вершинах 683 каждого из многоугольников 682, выполненного компонентом 646 пиксельного шейдинга, компонент 647 интерполяции цвета может интерполировать значения цвета в каждой вершине каждого многоугольника 682 для вывода значений цвета пикселей 885 экрана. На фиг. 7 более подробно представлены аспекты примера такой интерполяции для вывода значений цвета для примера пикселя 885 экрана, совпадающего с примером многоугольника 682 на фиг. 5 и 6.
Следует отметить, что интерполяция, выполняемая компонентом 647 интерполяции цвета, включает в себя, по меньшей мере, интерполяцию значений цвета, устанавливающих цвет для каждого пикселя 885 экрана изображения 880 экрана из значений цвета, выведенных компонентом 646 пиксельного шейдинга для вершин 683 соответствующих вершин многоугольника 682. Однако, интерполяция, выполняемая компонентом 647 интерполяции цвета, также может включать в себя вывод одного или больше других атрибутов для каждого пикселя 885 экрана, путем аналогичной интерполяции этих атрибутов, выведенных для вершин 683 соответствующих вершин многоугольников 682 с помощью компонента 645 интерполяции атрибута. Таким образом, компонент 647 интерполяции цвета может выводить обозначения значений цвета и/или значений атрибута (атрибутов) в каждой из вершин 683 многоугольников 682 из данных 636 многоугольника после шейдинга. Компонент 647 интерполяции цвета может затем сохранять значения цвета и/или значения атрибута (атрибутов), выведенные для пикселей 885 экрана путем интерполяции, как части данных 730 изображения экрана. Со значением (значениями) каждого пикселя 885 изображения экрана, сохраненными в данных 730 изображения экрана, данные 730 изображения экрана могут стать представлением изображения 880 экрана.
Таким образом, компонент 647 интерполяции цвета может интерполировать значения цвета, выведенные для каждой из вершин 683 примера многоугольника 682 компонентом 646 пиксельного шейдинга, для вывода значения цвета, устанавливающего цвет для примера пикселя 885 экрана. Аналогично, компонент 647 интерполяции цвета может дополнительно интерполировать значения одного или больше других атрибутов, выведенных для каждой из вершин 683 примера многоугольника 682 компонентом 646 пиксельного шейдинга для вывода значения (значений) для этих одного или больше других атрибутов, для примера пикселя 885 экрана. Местоположение, в которое могут быть направлены эти интерполяции, выполняемые компонентом 647 интерполяции цвета, может представлять собой центр примера пикселя 885 экрана. Кроме того, пример пикселя 885 экрана можно рассматривать, как соответствующий примеру многоугольника 682 в результате того, что центр примера пикселя 885 экрана попадает в пример многоугольника 682, и такая форма соответствия примера многоугольника 682 может определять, что атрибуты (включая в себя значения цвета), выведенные для примера пикселя 885 экрана, должны быть интерполированы из вершин 683 примера многоугольника 682.
Такая интерполяция к центру каждого из пикселей 885 экрана, как только что описанная выше, из вершин 683 многоугольников 682 компонентом 647 интерполяции цвета, может быть выполнена в вариантах осуществления, в которых существует одна выборка на пиксель 885 экрана (или в вариантах осуществления, в которых вывод значений цвета для каждого пикселя 885 экрана не основан на количестве выборок на пиксель, независимо от того, какое количество выборок может быть выполнено для каждого пикселя). Однако, в вариантах осуществления, в которых множество выборок на пиксель 885 экрана использовалось во время растеризации, компонент 647 интерполяции цвета может выполнять интерполяцию из вершин 683 многоугольников в каждую из этих выборок. На фиг. 8 более подробно представлен пример такой интерполяции каждой выборки каждого пикселя 885 экрана.
В частности, как представлено, могут присутствовать четыре выборки 888, которые попадают в пределы примера пикселя 885 экрана таким образом, что компонент 647 интерполяции цвета может интерполировать значения цвета и/или значения других атрибутов в вершинах 683 примера многоугольника 682 в каждую из выборок 888 примера пикселя 885 экрана. Таким образом, компонент 647 интерполяции цвета может сохранять показатели этих значений, выведенные таким образом, в каждой выборке 888, как часть данных 637 цвета выборки. Затем компонент 648 усреднения может усреднять значения цвета, выведенные таким образом, путем интерполяции для каждой из выборок 888 примера пикселя 885 экрана для вывода значения цвета примера пикселя 885 экрана. Компонент 648 усреднения может дополнительно усреднять значения одного или больше других атрибутов, также только что выведенных путем интерполяции для каждой из выборок 888 примера пикселя 885 экрана, для вывода значения (значений) одного или больше других атрибутов примера пикселя 885 экрана. Таким образом, компонент 648 усреднения может сохранять значения цвета и/или значение (значения) одного или больше других атрибутов примера пикселя 885 экрана, как часть данных 730 изображения экрана.
Следует отметить, что представление формирования и использования одного примера многоугольника 682 на фиг. 5-8 представляет собой относительно простой пример, представленный здесь для обеспечения ясного обсуждения вывода, по меньшей мере, значений цвета для пикселей 885 экрана из 3D модели 280, как часть визуализации изображения 880 2D экрана. Однако, как будет понятно для специалиста в данной области техники, вполне возможно иметь части более, чем одного видимого примитива 882 в пределах, по меньшей мере, некоторых из пикселей 685 шейдинга таким образом, что более чем один многоугольник 682 мог бы быть сформирован в пределах каждого из этих пикселей 685 шейдинга. На фиг. 9A и 9B, вместе, представлены аспекты формирования пары соседних многоугольников 682a и 682b в пределах альтернативного примера пикселя 685 шейдинга, в результате того, что части пары соседних видимых примитивов 882a и 882b попадают в пределы альтернативного примера пикселя 685 шейдинга.
Более конкретно, возвращаясь к фиг. 9A, как представлено, два соседних видимых примитива 882a и 882b встречаются таким образом, что формируется общее ребро с общими вершинами 883, которые продолжаются через альтернативный пример пикселя 685 шейдинга и через альтернативный пример пикселя 885 экрана, который совпадает с частью альтернативного примера пикселя 685 шейдинга. Также представлены относительные местоположения вершин 883 каждого из соседних видимых примитивов 882a и 882b, включая в себя две вершины 883, которые совместно используются между ними.
Более конкретно, возвращаясь к фиг. 9B, компонент 643 отсечения шейдинга выполняет отсечение каждого из соседних видимых примитивов 882a и 882b в пределах альтернативного примера пикселя 685 шейдинга, для формирования в нем пары соседних многоугольников 682a и 682b. Как представлено, соседние многоугольники 682a и 682b совместно используют часть общего ребра между соседними видимыми примитивами 882a и 882b, как общее ребро между соседними многоугольниками 682a и 682b. Также представлены относительные местоположения вершин 683 каждого из соседних многоугольников 682a и 682b, включая в себя две вершины 683, которые совместно используются между ними. Две совместно используемые вершины 683 определены вдоль границ альтернативного примера пикселя 685 шейдинга, как результат отсечения, выполняемого компонентом 643 отсечения шейдинга.
В вариантах осуществления, в которых соседние видимые примитивы 882a и 882b представляют собой часть набора видимых примитивов, которые определяют участки одной и той же поверхности одного и того же объекта, значения цвета, выведенные для вершин 683 каждого из соседних многоугольников 682a и 682b, которые совместно используют общее местоположение вдоль границ альтернативного примера пикселя 685 шейдинга, вероятно, будут, по существу, аналогичными. В результате, плавный переход может быть воспринят, как происходящий между частями этой поверхности, определенными соседними видимыми примитивами 882a и 882b. Действительно, на фиг. 9B иллюстрируется, что разделение видимых примитивов на один или больше многоугольников, как описано здесь, вероятно, приведет к формированию вершин многоугольника, взаимосвязанных с соседними видимыми примитивами, которые будут совместно использовать общие местоположения, что, в свою очередь, вероятно, приведет к таким аналогичным значениям цвета между соседними видимыми примитивами.
Возвращаясь к фиг. 1, после генерирования данных 730 изображения экрана, представляющего изображение 880 экрана, как было описано, компонент 550 обработки может представлять изображение 880 на дисплее 580. В качестве альтернативы или в дополнение, компонент 550 процессора может выполнять операции с интерфейсом 590 для передачи изображения 730 данных изображения в другое устройство, такое как устройство 700 просмотра, для обеспечения представления изображения 880 на другом дисплее, таком как дисплей 780.
В различных вариантах осуществления в устройство 700 просмотра встроены один или больше компонентов 750 процессора, накопителя 760, дисплея 780 и интерфейса 790 для соединения устройства 700 просмотра с сетью 999. В накопителе 760 содержится одна или больше процедур 740 управления и данные 730 изображения экрана. Процедура 740 управления включает в себя последовательность инструкций, работающих в компоненте 750 процессора, который выполняют свою роль основного компонента процессора устройства 700 просмотра для воплощения логики для выполнения различных функций. При выполнении процедуры 740 управления в некоторых вариантах осуществления компонент 750 процессора может выполнять операции с интерфейсом 790 для передачи обозначения разрешения пикселя дисплея 780 в вычислительное устройство 500. Как описано ранее, такой показатель может быть сохранен в вычислительном устройстве 500, как часть данных 335 управления, и в последующем может использоваться в одном или больше аспектах визуализации изображения 880 экрана (например, установка разрешения пикселя изображения 800 экрана). В качестве альтернативы или в дополнение, компонент 750 процессора может выполнять операции с интерфейсом 790 для приема данных изображения 730 экрана, представляющего изображения 880 экрана, из вычислительного устройства 500, после визуализации вычислительным устройством 500 изображения 880 экрана, как было описано. Компонент 750 процессора может затем визуально представлять движущееся изображение 880 экрана на дисплее 780.
На фиг. 2 иллюстрируется блок-схема альтернативного варианта осуществления системы 1000 визуализации графики, которая включает в себя альтернативный вариант осуществления вычислительного устройства 500. Альтернативный вариант осуществления системы 1000 визуализации графики на фиг. 2 во многом аналогичен варианту осуществления по фиг. 1 и, таким образом, одинаковые номера ссылочных позиций используются для обозначения одинаковых элементов на этих чертежах. Однако, в отличие от вычислительного устройства 500 на фиг. 1, вычислительное устройство 500 на фиг. 2 не содержит контроллер 600. Таким образом, в отличие от вычислительного устройства 500 на фиг. 1, в вычислительном устройстве 500 на фиг. 2, компонент 550 процессора выполняет процедуру 640 управления, как если бы здесь присутствовал отдельный компонент 650 процессора, для выполнения этой функции. Поэтому, в альтернативном варианте осуществления системы 1000 визуализации графики на фиг. 2, компонент 550 процессора выполняет визуализацию изображения 880 экрана, включая в себя растеризацию, шейдинг и фильтрацию, используя подход, который мало чем отличается от того, что было описано со ссылкой на выполнение процедуры 640 управления компонентом 650 процессора.
В различных вариантах осуществления каждый из компонентов 550 и 650 процессора может включать в себя любой из большого разнообразия коммерчески доступных процессоров. Кроме того, один или больше из этих компонентов процессора может включать в себя множество процессоров, многопотоковый процессор, многоядерный процессор (в случае, когда множество ядер совместно присутствуют на одном или отдельных кристаллах), и/или архитектуру множества процессоров некоторого другого вида, с помощью которых множество физически отдельных процессоров соединены определенным образом. Кроме того, хотя каждый из компонентов 550 и 650 процессора может включать в себя любой из различных типов процессора, предполагается, что компонент 650 процессора контроллера 600 (если присутствует) может быть в определенной степени специализированным и/или оптимизированным для выполнения задачи, относящейся к обработке графике и/или видеоданных. В более широком смысле, предполагается, что контроллер 600 воплощает графическую подсистему вычислительного устройства 500 для обеспечения рабочих характеристик для задач, относящихся к визуализации графики, сжатию видеоизображения, повторному масштабированию изображения и т.д., используя компоненты, отдельные и отдельно установленные от компонента 650 процессора и более тесно связанные с ним компоненты.
В различных вариантах осуществления каждый из накопителей 560, 660 и 760 может быть основан на любой из широкого разнообразия технологий сохранения информации, возможно, включающей в себя энергозависимые технологии, требующие непрерывной подачи электропитания, и, возможно, включающие в себя технологии, приводящие к использованию считываемых устройством носителей информации, которые могут быть или могут не быть съемными. Таким образом, каждый из этих накопителей может включать в себя любой из широкого разнообразия типов (или комбинации типов) устройства накопителя, включая в себя, без ограничений, постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), динамическое RAM (DRAM), DRAM с двойной скоростью передачи данных (DDR-DRAM), синхронное DRAM (SDRAM), статическое RAM (SRAM), программируемое ROM (PROM), стираемое программируемое ROM (EPROM), электрически стираемое программируемое ROM (EEPROM), запоминающее устройство флэш, полимерное запоминающее устройство (например, ферроэлектрическое полимерное запоминающее устройство), запоминающее устройство на аморфных полупроводниках, ферроэлектрическое запоминающее устройство или запоминающее устройство с фазовым переходом, запоминающее устройство типа "кремний-оксид-нитрид-оксид-кремний" (SONOS), магнитные или оптические карты, один или больше приводов индивидуального ферромагнитного диска, или множество устройств накопителя, организованных в один или больше массивов (например, множество приводов ферромагнитных дисков, организованных в виде массива независимых дисков с избыточностью информации или массива RAID). Следует отметить, что, хотя каждый из этих накопителей представлен как один блок, один или больше из них может включать в себя множество устройств накопителя, которые могут быть основаны на разных технологиях сохранения. Таким образом, например, один или больше из каждых из этих представленных накопителей может представлять собой комбинацию оптического привода или считывателя карты запоминающего устройства флэш, на котором могут быть сохранены программы и/или данные, и могут быть переданы в некоторой форме считаемого устройством носителя информации, привода ферромагнитного диска для локального сохранения программ и/или данных в течение относительно длительного периода, и одно или больше энергозависимых твердотельных запоминающих устройств, обеспечивающих относительно быстрый доступ к программам и/или данным (например, SRAM или DRAM). Следует также отметить, что каждый из этих накопителей может быть составлен из множества компонентов накопителя на основе идентичной технологии сохранения, но которые могут поддерживаться отдельно, в результате специализации при использовании (например, некоторые устройства DRAM используются, как основной накопитель, в то время как другие устройства DRAM используются, как отдельный буфер фреймов графического контроллера).
В различных вариантах осуществления в интерфейсах 590 и 790 может использоваться любое широкое разнообразие технологий передачи сигналов, которые позволяют связывать эти вычислительные устройства с другими устройствами, такими, как были описаны. Каждый из этих интерфейсов включает в себя цепь, обеспечивающую, по меньшей мере, некоторую из требуемых функций для обеспечения такого соединения. Однако каждый из этих интерфейсов также может быть, по меньшей мере, частично воплощен, используя последовательности инструкций, выполняемых соответствующими компонентами процессора (например, для воплощения стека протокола или других свойств). В случае, когда используются электрически и/или оптически проводящие кабели, в этих интерфейсах могут использоваться сигналы и/или протоколы, в соответствии с любым из различных промышленных стандартов, включающих в себя, без ограничений, RS-232C, RS-422, USB, Ethernet (IEEE 802.3) или IEEE 1394. В случае, когда требуется беспроводная передача сигнала, в этих интерфейсах могут использоваться сигналы и/или протоколы, соответствующие любому из различных промышленных стандартов, включая в себя без ограничений IEEE 802.11a, 802.11b, 802.11, 802.16, 802.20 (обычно называемые "мобильным широкополосным беспроводным доступом"); Bluetooth; ZigBee; или услуга сотового радиотелефона, такая как GSM с общей услугой пакетной радиопередачи данных (GSM/GPR), CDMA/1xRTT, Расширенная скорость передачи данных для Глобального Развития (EDGE), Развитие данных только/оптимизированное (EV-DO), Развитие передачи данных и голоса (EV-DV), Высокоскоростной пакетный доступ по нисходящему каналу передачи (HSDPA), Высокоскоростной пакетный доступ по восходящему каналу передачи (HSUPA), 4G LTE и т.д.
На фиг. 10 иллюстрируется один вариант осуществления логического потока 2100 обработки. Логический поток 2100 обработки может представлять собой некоторые или все из операций, выполняемых одним или больше вариантами осуществления, описанными здесь. Более конкретно, логический поток 2100 обработки может иллюстрировать операции, выполняемые компонентами 550 и/или 650 процессора при выполнении, по меньшей мере, процедуры 640 управления и/или выполняемые другим компонентом (компонентами) вычислительного устройства 500.
На этапе 2110 компонент процессора вычислительного устройства (например, компонент 550 и/или 650 процессора вычислительного устройства 500) выполняет растеризацию всех графических примитивов 3D модели (например, примитивов 282 3D модели 280) из перспективы плоскости изображения 2D экрана (например, изображение 880 экрана), которое должно быть визуализировано из 3D модели. Таким образом, компонент процессора идентифицирует все примитивы 3D модели, которые являются видимыми из перспективы изображения 2D экрана (например, видимые примитивы 882), и получает различные атрибуты, ассоциированные с вершинами каждого из этих видимых примитивов. Как было описано, местоположение и/или ориентация такой плоскости, а также границы изображения экрана в пределах этой плоскости могут быть приняты из другого вычислительного устройства (например, устройства 700 просмотра).
На этапе 2120, компонент процессора выполняет отсечение видимых примитивов в пределах каждого из пикселей шейдинга, в которые попадает, по меньшей мере, часть видимого примитива для вывода многоугольников, каждый из которых представляет пересечение областей пикселей шейдинга и части видимых примитивов, которые попадают в пределы пикселей шейдинга. Как было описано выше, пиксели шейдинга каждый может быть определен так, чтобы он включал в себя большую область, чем каждый из пикселей экрана, которые составляют вплоть до 2D изображения экрана таким образом, чтобы сетка пикселей шейдинга была более грубой, чем сетка пикселей экрана. Как также было описано выше, пиксели шейдинга могут быть определены за границами, которые выравниваются с, по меньшей мере, поднабором границ пикселей экрана таким образом, что каждый пиксель шейдинга может быть определен так, чтобы он соответствовал целочисленному кратному пикселей экрана (например, каждый пиксель шейдинга, соответствующий четырем пикселям экрана, как было представлено здесь).
На этапе 2130, компонент процессора выполняет пиксельный шейдинг для вывода значений цвета в вершинах многоугольников из атрибутов, интерполированных к вершинам многоугольников из вершин ассоциированных видимых примитивов. На этапе 2140 компонент процессора может интерполировать значения цвета из вершин многоугольников к центрам пикселей экрана для вывода значения цвета пикселей экрана. Как было описано выше, местоположение центров каждого из пикселей экрана относительно многоугольников может использоваться для определения, какие вершины многоугольника используются для предоставления значений цвета, из которых выполнялась интерполяция.
На фиг. 11 иллюстрируется один вариант осуществления потока 2200 логической обработки. Поток 2200 логической обработки может представлять собой некоторые или все операции, выполняемые одним или больше вариантами осуществления, описанными здесь. Более конкретно, поток 2200 логической обработки может иллюстрировать операции, выполняемые компонентами 550 и/или 650 процессора при выполнении, по меньшей мере, процедуры 640 управления, и/или выполняемые другим компонентом (компонентами) вычислительного устройства 500.
На этапе 2210, компонент процессора вычислительного устройства (например, компонент 550 и/или 650 процессора вычислительного устройства 500) выполняет растеризацию всех графических примитивов 3D модели (например, примитивов 282 3D модели 280) из перспективы плоскости изображения 2D экрана (например, изображения 880 экрана), которое должно быть визуализировано из 3D модели для идентификации всех примитивов 3D модели, которые видимы из перспективы изображения 2D экрана (например, видимые примитивы 882). Как было описано выше, местоположение и/или ориентация такой плоскости, а также границы изображения экрана в пределах этой плоскости могут быть приняты из другого вычислительного устройства (например, устройства 700 просмотра).
На этапе 2220, компонент процессора выполняет отсечение видимых примитивов в пределах каждого из пикселя шейдинга, в который попадает, по меньшей мере, часть видимого примитива, для вывода многоугольников, каждый из которых представляет пересечение областей пикселей шейдинга и участков видимых примитивов, которые попадают в пиксели шейдинга. Как описано выше, каждый пиксель шейдинга может быть определен так, чтобы он включал в себя большую область, чем каждый из пикселей экрана, которые составляют изображение 2D экрана таким образом, чтобы сетка пикселей шейдинга была более грубой, чем сетка пикселей экрана.
Как также было описано выше, пиксели шейдинга могут быть определены с границами, которые выравниваются с, по меньшей мере, поднабором границ пикселей экрана таким образом, что каждый пиксель шейдинга может быть определен так, чтобы он соответствовал целочисленному кратному пикселей экрана (например, каждый из пикселей шейдинга, соответствующий четырем пикселям экрана, как было представлено здесь).
На этапе 2230, компонент процессора выполняет интерполяцию для вывода атрибутов в вершинах многоугольников, путем интерполяции из атрибутов в вершинах ассоциированных видимых примитивов. На этапе 2240 компонент процессора выполняет шейдинг пикселя для вывода значений цвета в вершинах многоугольников из атрибутов в вершинах многоугольников.
На этапе 2250, компонент процессора может интерполировать, по меньшей мере, значения цвета из вершин многоугольников по выборкам, которые попадают в каждый из многоугольников. На этапе 2260 компонент процессора усредняет, по меньшей мере, значения цвета в выборках, которые попадают в пределы каждого пикселя экрана для вывода значений цвета пикселей экрана. Как пояснялось выше, значения других атрибутов также могут быть интерполированы из вершин многоугольников по выборкам, и затем усреднены из выборок по выведенным значениям этих атрибутов для каждого пикселя экрана.
На фиг. 12 иллюстрируется вариант осуществления примерной архитектуры 3000 обработки, выполненной с возможностью воплощения различных вариантов осуществления, описанных выше. Более конкретно, архитектура 3000 обработки (или ее варианты) может быть воплощена, как часть одного или больше вычислительных устройств 300, 500 или 700, и/или как часть контроллера 600. Следует отметить, что компоненты архитектуры 3000 обработки обозначены номерами ссылочных позиций, в которых последние две цифры соответствуют последним двум цифрам номеров ссылочных позиций, по меньшей мере, некоторых из компонентов, ранее представленных и описанных, как часть вычислительных устройств 300, 500 и 700, а также как контроллер 600. Это выполнено для помощи при корреляции компонентов друг с другом.
Архитектура 3000 обработки включает в себя различные элементы, обычно используемые при цифровой обработке, включая в себя без ограничений, один или больше процессоров, многоядерных процессоров, сопроцессоров, модулей памяти, наборов микросхем, контроллеров, периферийных устройств, интерфейсов, генераторов, устройств синхронизации, видеокарт, аудиокарт, компонентов ввода/вывода (I/O) мультимедийных данных, источников питания и т.д. Используемые в данной заявке термины "система" и "компонент" предназначены для обозначения объекта вычислительного устройства, в котором выполняется цифровая обработка, этот объект представляет собой аппаратные средства, комбинации аппаратных и программных средств, программное средство или программное средство при его выполнении, примеры которого предусмотрены данной представленной примерной архитектурой обработки. Например, компонент может представлять собой, но не ограничен этим, обработку, работающую в компоненте процессора, самом компоненте процессора, в устройстве накопителя (например, приводе жесткого диска, множестве устройств-накопителей в массиве, и т.д.), которые могут использовать оптический и/или магнитный носитель информации, программный объект, исполняемую последовательность инструкций, поток вычислений, программы и/или все вычислительное устройство (например, весь компьютер). В качестве иллюстраций, как приложение, работающее на сервере, так и сервер, могут представлять собой компонент. Один или больше компонентов могут находиться в пределах обработки и/или потока обработки, и компонент может быть локализован на одном вычислительном устройстве и/или может быть распределен между двумя или больше вычислительными устройствами. Кроме того, компоненты могут быть соединены с возможностью обмена данными друг с другом, используя различные типы средств передачи данных для координации операций. При координации может использоваться однонаправленный или двунаправленный обмен информацией. Например, компоненты могут передавать информацию в форме сигналов, передаваемых через среды передачи данных. Информация может быть воплощена, как сигналы, выделенные для одной или больше линий передачи сигнала. Сообщение (включающее в себя сообщение команды, статуса, адреса или данных) может представлять собой один из таких сигналов или может представлять собой множество таких сигналов, и может быть передано либо последовательно, или, по существу, параллельно через любое из различных соединений и/или интерфейсов.
Как представлено, при воплощении архитектуры 3000 обработки, вычислительное устройство включает в себя, по меньшей мере, компонент 950 процессора, накопитель 960, интерфейс 990 с другими устройствами и соединения 959. Как поясняется ниже, в зависимости от различных аспектов вычислительного устройства, воплощающего архитектуру 3000 обработки, включая его предполагаемое использование и/или условия использования, такое вычислительное устройство, может дополнительно включать в себя дополнительные компоненты, такие как без ограничений, интерфейс 985 дисплея.
Соединение 959 включает в себя одну или больше шин, взаимные соединения из точки в точку, приемопередатчики, буферы, переключатели в точках пересечения и/или другие проводники и/или логические устройства, которые соединяют с возможностью обмена данными, по меньшей мере, компонент 950 процессора с накопителем 960. Соединение 959 может дополнительно соединять компонент 950 процессора с одним или больше из интерфейса 990, аудиоподсистемы 970 и интерфейса 985 дисплея (в зависимости от того, какие из этих и/или других компонентов также присутствуют). Когда компонент 950 процессора подключен таким образом, используя соединение 959, компонент 950 процессора выполнен с возможностью выполнения различных задач, подробно описанных выше, для любых других упомянутых выше вычислительных устройств, воплощающих архитектуру 3000 обработки. Соединение 959 может быть воплощено с использованием любой из различных технологий или комбинации технологий, с помощью которых передают оптические и/или электрические сигналы. Кроме того, по меньшей мере, часть соединений 959 может использовать временные характеристики и/или протоколы, подтверждающие любой из широкого разнообразия промышленных стандартов, включая в себя, без ограничений, ускоренный графический порт (AGP), карту шины, расширенную архитектуру промышленного стандарта (EISA), архитектуру микроканала (MCA), NuBus, периферийное взаимное соединение компонентов (расширенное) (PCI-X), PCI Express (PCI-E), шину международной ассоциации производителей карт памяти для персональных компьютеров (PCMCIA), HyperTransport ™, QuickPath и т.п.
Как было описано выше, компонент 950 процессора (соответствующий компонентам 550, 650 и 750 процессора) может включать в себя любой из широкого разнообразия коммерчески доступных процессоров, в которых используется любая из широкого разнообразия технологий и в которых воплощено одно или больше ядер, физически скомбинированных любым из множества способов.
Как описано выше, накопитель 960 (соответствующий накопителям 560, 660 и 760) может быть состоять из одного или больше явно выраженных устройств накопителя на основе любой из широкого разнообразия технологий или комбинации технологий. Более конкретно, как представлено, накопитель 960 может включать в себя один или больше из энергозависимого накопителя 961 (например, твердотельного накопителя на основе одной или больше форм технологии RAM), энергонезависимого накопителя 962 (например, твердотельного, ферромагнитного или другого накопителя, для которого не требуется постоянная подача питания для сохранения его содержания) и накопителя 963 со съемным носителем информации (например, съемного диска или накопителя на твердотельной карте памяти, с помощью которых информация может быть перенесена между вычислительными устройствами). Такое представление накопителя 960, как, возможно, включающее в себя множество явно выраженных типов накопителя, представляет собой идентификацию повсеместного использования более, чем одного типа устройства накопителя в вычислительных устройствах, при которых один тип обеспечивает относительно быстрое считывание и в пределах возможностей, обеспечивающих более быструю манипуляцию данными компонентом 950 процессора (но, возможно, используя "энергозависимую" технологию, для которой постоянно требуется электропитание), в то время, как другой тип обеспечивает относительно высокую плотность энергонезависимого накопителя (но, вероятно, обеспечивает относительно медленные возможности считывания и записи).
Исходя из часто разных характеристик разных устройств накопителя, использующих разные технологии, также часто такие разные устройства накопителя соединяют с другими частями вычислительного устройства через разные контроллеры накопителя, соединенные с другими устройствами накопителями через другие интерфейсы. В качестве примера, в случае, когда энергозависимый накопитель 961 представлен и основан на технологии RAM, энергозависимый накопитель 961 может быть соединен с возможностью передачи данных с соединением 959 через контроллер 965a накопителя, обеспечивая соответствующий интерфейс для энергозависимого накопителя 961, который, вероятно, использует адресацию в виде ряда и столбца, и где контроллер 965a накопителя может выполнять обновление ряда и/или другую задачу по техническому обслуживанию для помощи при сохранении информации, содержащейся в энергозависимом накопителе 961. В качестве другого примера, в случае, когда энергонезависимый накопитель 962 присутствует и включает в себя один или больше из ферромагнитного и/или твердотельного приводов диска, энергонезависимый накопитель 962 может быть соединен с возможностью обмена данными с соединением 959 через контроллер 965b накопителя, обеспечивая соответствующий интерфейс для энергонезависимого накопителя 962, в котором, возможно, используется адресация блоков информации и/или цилиндров, и секторов. В качестве еще одного, другого примера, в случае, когда накопитель 963 со съемным носителем информации присутствует и включает в себя один или больше из оптического и/или твердотельного диска драйверов, в которых используется одна или больше частей считываемого устройством носителя 969 информации, накопитель 963 со съемным носителем информации может быть подключен с возможностью передачи информации к соединению 959 через контроллер 965c накопителя, предоставляя соответствующий интерфейс для накопителя 963 со съемным носителем информации, в котором, возможно, используется адресация блоков информации, и где контроллер 965c накопителя может соответственно считывать, формировать и записывать операции, используя подход, специфичный для расширения срока службы считываемого устройством носителя 969 информации.
Одно или другое из энергозависимого накопителя 961 или энергонезависимого накопителя 962 может включать в себя изделие в форме считываемого устройством носителя информации, в котором может содержаться процедура, включающая в себя последовательность инструкций, выполняемых компонентом 950 процессора, в зависимости от технологий, на которых каждая из них основана. В качестве примера, в случае, когда энергонезависимый накопитель 962 включает в себя приводы диска на основе ферромагнетизма (например, так называемые "приводы жесткого диска"), в каждом таком приводе диска обычно используется один или больше вращающихся дисков, на которых нанесено покрытие из чувствительных к магнитному полю частиц и ориентированных магнитным полем в различные структуры для сохранения информации, такой как последовательность инструкций, используя подход, который соответствует носителю информации, такому, как гибкий диск. В качестве другого примера, энергонезависимый накопитель 962 информации может быть изготовлен из банков твердотельных устройств сохранения для сохранения информации, такой как последовательность инструкций, используя такой поход, который похож на подход, используемый в компактной карте памяти типа флэш. И снова, очень часто используются различные типы устройств накопителей в вычислительном устройстве в разное время, для сохранения исполняемых процедур и/или данных.
Таким образом, процедура, включающая в себя последовательность инструкций, которые должны быть выполнены компонентом 950 процессора, может быть первоначально сохранена на считываемом устройством накопителе 969 информации, и накопитель 963 со съемным носителем информации может впоследствии использоваться при копировании этой процедуры в энергонезависимый накопитель 962 для долгосрочного хранения, для которого не требуется постоянное присутствие считываемого устройством носителя 969 информации, и/или в энергозависимый накопитель 961 для обеспечения более быстрого доступа компонентом 950 процессора при выполнении этой процедуры.
Как описано ранее, в интерфейсе 990 (возможно, соответствующем интерфейсам 590 или 790) может использоваться любая из множества технологий передачи сигнала, соответствующих любой из различных технологий передачи данных, которые могут использоваться для соединения с возможностью обмена данными вычислительного устройства с одним или больше другими устройствами. И снова, одна или обе из различных форм проводной или беспроводной передачи сигнала может использоваться для обеспечения для компонента 950 процессора возможности взаимодействия с устройствами ввода/вывода (например, в представленном примере клавиатурой 920 или принтером 925) и/или другими вычислительными устройствами, возможно, через сеть (например, сеть 999) или взаимно соединенный набор сетей. При распознавании часто сильно отличающегося характера множества типов сигналов и/или протоколов, которые часто должны поддерживаться любым одним вычислительным устройством, интерфейс 990 представлен, как включающий в себя множество различных контроллеров 995a, 995b и 995c интерфейса. В контроллере 995a интерфейса может использовать любой из различных типов проводного цифрового последовательного интерфейса или радиочастотного беспроводного интерфейса для приема последовательно передаваемых сообщений из устройств ввода пользователя, таких как представленная на чертеже клавиатура 920. В контроллере 995b интерфейса может использоваться любое одно из различных, основанных на кабеле или беспроводной передаче сигналов, сигналов синхронизации и/или протоколов для доступа к другим вычислительным устройствам через представленную сеть 999 (возможно, сеть, составленную из одного или больше соединений, меньших сетей или, возможно, сети Интернет). В интерфейсе 995c могут использоваться любые из множества электрически проводящих кабелей, обеспечивающих для пользователя возможность либо последовательной, или параллельной передачи сигналов для передачи данных в представленный принтер 925. Другие примеры устройств, которые могут быть соединены с возможностью обмена данными через один или больше контроллеров интерфейса в интерфейсе 990, включают в себя, без ограничений, микрофон для отслеживания звуков людей, для приема команды и/или данных, передаваемых этими людьми через голос, или других звуков, которые они могут произносить, устройства дистанционного управления, авторучек-стайлусов, считывателей карт, считывателей отпечатков пальцев, перчаток взаимодействия с виртуальной реальностью, планшетных устройств графического ввода, джойстиков, других клавиатур, сканеров сетчатки глаза, компонента ввода прикосновения сенсорных экранов, шаровых манипуляторов, различных датчиков, камеры или массива камер, для отслеживания передвижения людей, для приема команд и/или данных, передаваемых этими людьми через сигналы, используя жесты и/или выражения лиц, лазерных принтеров, струйных принтеров, механических роботов, фрезерных станков и т.д.
В случае, когда вычислительное устройство соединено с возможностью обмена данными с дисплеем (возможно, фактически встроенным в него) (например, как в представленном примере дисплея 980), такое вычислительное устройство, воплощающее архитектуру 3000 обработки, также может включать в себя интерфейс 985 дисплея. Хотя более обобщенные типы интерфейса могут использоваться для подключения с возможностью обмена данными дисплея, в определенной степени специализированная дополнительная обработка часто требуется при визуальном отображении различных форм содержания на дисплее, а также в определенной степени специализированные используемые интерфейсы на основе кабелей, что часто делает желательным использование отдельного интерфейса дисплея. Проводная и/или беспроводная технологии передачи сигналов, которые могут использоваться в интерфейсе 985 дисплея при соединении с возможностью обмена данными с дисплеем 980, может привести к использованию сигналов и/или протоколов, которые соответствуют любому из различных промышленных стандартов, включая без ограничений, любой из множества аналоговых видеоинтерфейсов, цифровой видео интерфейс (DVI), порт дисплея и т.д.
На фиг. 13 представлен вариант осуществления системы 4000. В различных вариантах осуществления система 4000 может представлять собой систему или архитектуру, пригодную для использования с одним или больше вариантами осуществления, описанными здесь, такими как система 1000 графической визуализации; одно или больше вычислительных устройств 300, 500 или 700; и/или один или больше потоков 2100 или 2200 логической обработки. Варианты осуществления не ограничены в этом отношении.
Как показано, система 4000 может включать в себя множество элементов. Один или больше элементов могут быть воплощены, используя одну или больше цепей, компонентов, регистров, процессоров, программных процедур, модулей или любой их комбинации, в соответствии с требованием для данного набора конструктивных ограничений или ограничений в отношении рабочих характеристик. Хотя на фиг. 13 показано ограниченное количество элементов в определенной топологии, в качестве примера, можно понимать, что больше или меньше элементов в любой соответствующей топологии могут использоваться в системе 4000, как описано для данного воплощения. Варианты осуществления не ограничены в этом контексте.
В вариантах осуществления система 4000 может представлять собой мультимедийную систему, хотя система 4000 не ограничена этим контекстом. Например, система 4000 может быть встроена в персональный компьютер (PC), переносной компьютер, ультра легкий переносной компьютер, планшет, сенсорную панель, портативный компьютер, удерживаемый в руках компьютер, компьютер на ладони, карманный персональный компьютер (PDA), сотовый телефон, комбинацию сотового телефона/PDA, телевизионный приемник, интеллектуальное устройство (например, смартфон, интеллектуальный планшет или интеллектуальный телевизор), устройство мобильной Интернет (MID), устройство передачи сообщений, устройство передачи данных и т.д.
В вариантах осуществления система 4000 включает в себя платформу 4900a, соединенную с дисплеем 4980. Платформа 4900a может принимать содержание из устройства содержания, такого как устройство (устройства) 4900c услуг, предоставляющих содержание, или устройства (устройств) 4900d предоставления содержания или других аналогичных источников содержания. Контроллер 4920 навигации, включающий в себя одно или больше свойств навигации, может использоваться для взаимодействия, например, с платформой 4900a и/или дисплеем 4980. Каждый из этих компонентов более подробно описан ниже.
В вариантах осуществления платформа 4900a может включать в себя любую комбинацию компонента 4950 процессора, набора 4955 микросхем, модуля 4969 памяти, приемопередатчика 4995, накопителя 4962, приложения 4940 и/или графической подсистемы 4985. Набор микросхем 4955 может предоставлять взаимное соединение между схемой 4950 процессора, модулем 4969 памяти, приемопередатчиком 4995, накопителем 4962, приложениями 4940 и/или графической подсистемой 4985. Например, набор 4955 микросхем может включать в себя адаптер накопителя (не показан), выполненный с возможностью предоставления взаимных соединений с накопителем 4962.
Компонент 4950 процессора может быть воплощен, используя любой процессор или логическое устройство, и может быть таким же, как или аналогичным одному или больше компонентов 550, 650 или 750 процессора и/или к компоненту 950 процессора на фиг. 12.
Модуль 4969 памяти может быть воплощен, используя любой считываемый устройством или считываемый компьютером носитель информации, выполненный с возможностью сохранения данных, и может быть таким же, как или аналогичным носителю 969 информации по фиг. 12.
Приемопередатчик 4995 может включать в себя одно или больше радиоустройств, выполненных с возможностью передачи и приема сигналов, используя различные соответствующие технологии беспроводной передачи данных, и может быть таким же, как или аналогичным приемопередатчику 995b на фиг. 12.
Дисплей 4980 может включать в себя любой монитор телевизионного типа или дисплей, и может быть таким же, как или аналогичным одному или больше дисплеям 580 и 780, и/или дисплей 980 на фиг. 12.
Накопитель 4962 может быть воплощен, как энергонезависимое устройство накопитель, и может быть таким же, как или аналогичным энергонезависимому накопителю 962 на фиг. 12.
Графическая подсистема 4985 может выполнять обработку изображений, таких как неподвижные изображения или видеоизображения на дисплее. Графическая подсистема 4985 может представлять собой, например, модуль графической обработки (GPU) или модуль визуальной обработки (VPU). Аналоговый или цифровой интерфейс может использоваться для соединения с возможностью передачи данных графической подсистемы 4985 и дисплея 4980. Например, интерфейс может представлять собой любой из мультимедийного интерфейса высокой четкости, порта дисплея, беспроводного HDMI и/или технологий, совместимых с беспроводным HD. Графическая подсистема 4985 может быть интегрирована в схему 4950 процессора или набор 4955 микросхем. Графическая подсистема 4985 может представлять собой отдельную карту, соединенную с возможностью обмена данными с набором 4955 микросхем.
Технологии обработки графических данных и/или видеоданных, описанные здесь, могут быть воплощены в различных аппаратных архитектурах. Например, функции обработки графических данных и/или видеоданных могут быть интегрированы в набор микросхем. В качестве альтернативы, может использоваться дискретный графический и/или видеопроцессор. В качестве еще одного, другого варианта осуществления, функции обработки графических и/или видеоданных могут быть воплощены в процессоре общего назначения, включающем в себя многоядерный процессор. В дополнительном варианте осуществления эти функции могут быть воплощены в электронном устройстве потребителя.
В вариантах осуществления устройство (устройства) 4900b предоставления услуг может быть подключено к хост-устройству, которое представляет собой любую национальную, международную и/или независимую услугу и, таким образом, может быть доступно для платформы 4900a, например, через Интернет. Устройство (устройства) 4900b услуг с предоставлением содержания может быть соединено с платформой 4900a и/или дисплеем 4980. Платформа 4900a и/или устройство (устройства) 4900b услуг по предоставлению содержания может быть соединено с сетью 4999, для обмена (например, передачи и/или приема) мультимедийной информации в и из сети 4999. Устройство (устройства) 4900c предоставления содержания также может быть соединено с платформой 4900a и/или дисплеем 4980.
В вариантах осуществления устройство (устройства) 4900b услуг предоставления содержания может включать в себя кабельную телевизионную приставку, персональный компьютер, сеть, телефон, устройства, работающие через Интернет, или устройство, выполненное с возможностью представления цифровой информации и/или содержания, и любое другое аналогичное устройство, выполненное с возможностью однонаправленной или двунаправленной передачи содержания между провайдерами содержания и платформой 4900a/и дисплеем 4980 через сеть 4999 или непосредственно. Следует понимать, что содержание может быть передано однонаправленно и/или двунаправленно в и из любого из компонентов в системе 4000 и провайдера содержания через сеть 4999. Примеры содержания могут включать в себя любую мультимедийную информацию, включающую в себя, например, видеоданные, музыку, медицинскую информацию и игровую информацию, и т.д.
Устройство (устройства) 4900b услуг по предоставлению содержания принимает содержание, такое как программы кабельного телевидения, включающее в себя мультимедийную информацию, цифровую информацию и/или другое содержание. Примеры провайдеров содержания могут включать в себя провайдеров любого кабельного или спутникового телевидения, или радио, или содержание Интернет.
Представленные примеры не означают ограничение вариантов осуществления.
В вариантах осуществления платформа 4900a может принимать сигналы управления из контроллера 4920 навигации, который имеет одно или больше свойств навигации. Свойства навигации контроллера 4920 навигации могут использоваться, например, для взаимодействия с интерфейсом 4880 пользователя. В вариантах осуществления контроллер 4920 навигации может представлять собой устройство-указатель, которое может составлять аппаратный компонент компьютера (в частности, устройство интерфейса пользователя), который обеспечивает для пользователя ввод пространственных (например, непрерывных и многомерных) данных в компьютер. Множество систем, таких как графические интерфейсы пользователя (GUI) и телевизионные приемники, и мониторы позволяют пользователю управлять и предоставлять данные в компьютер или телевизионный приемник, используя физические жесты.
Движения свойств навигации контроллера 4920 навигации могут отображаться на дисплее (например, дисплее 4980) в виде движений указателя, курсора, кольца фокусирования или других визуальных индикаторов, отображаемых на дисплее. Например, под управлением программных приложений 4940, свойства навигации, расположенные в контроллере 4920 навигации, могут отображаться на виртуальных свойствах навигации, отображаемых в интерфейсе 4880 пользователя. В вариантах осуществления контроллер 4920 навигации может не представлять собой отдельный компонент, но может быть интегрирован в платформу 4900a и/или дисплей 4980. Однако, варианты осуществления не ограничены элементами или контекстом, представленными или описанными здесь.
В вариантах осуществления драйверы (не показаны) могут включать в себя технологию, которая обеспечивает для пользователя возможность постоянно включать и выключать платформу 4900a, такую как телевизионный приемник, путем нажатия кнопки, например, после исходной загрузки, когда она включена. Логика программы может обеспечивать возможность для платформы 4900a передачи потока содержания в медиа адаптеры или другое устройство (устройств) 4900b услуг по представлению содержания или устройство (устройств) 4900c предоставления содержания, когда платформа “выключена”. Кроме того, набор 4955 микросхем может включать в себя аппаратные средства и/или программную поддержку для воспроизведения аудиоданных, используя, например, систему 5.1 окружающего звука и/или систему воспроизведения аудиоданных высокой четкости 7.1 окружающего звука. Драйверы могут включать в себя графический драйвер для интегрированных графических платформ. В вариантах осуществления графический драйвер может включать в себя графическую карту взаимных соединений периферийных компонентов (PCI) экспресс.
В различных вариантах осуществления любой один или больше из графических компонентов, показанных в системе 4000, могут быть интегрированы. Например, платформа 4900a и устройство (устройства) 4900b услуг предоставления содержания могут быть интегрированы, или платформа 4900a и устройство (устройства) 4900c предоставления содержания могут быть интегрированы или, например, платформа 4900a, устройство (устройства) 4900b услуг предоставления содержания и устройство (устройства) 4900c предоставления содержания могут быть интегрированы. В различных вариантах осуществления платформа 4900a и дисплей 4890 могут представлять собой интегрированный модуль. Например, дисплей 4980 и устройство (устройства) 4900b услуг по предоставлению содержания могут быть интегрированы, или дисплей 4980 и устройство (устройства) 4900c предоставления содержания могут быть интегрированы. Эти примеры не означают ограничения для вариантов осуществления.
В различных вариантах осуществления система 4000 может быть воплощена, как беспроводная система, проводная система, или их комбинация. Когда она воплощена, как беспроводная система, система 4000 может включать в себя компоненты и интерфейсы, выполненные с возможностью передачи через беспроводные, совместно используемые среды, такие как одна или больше антенн, передатчиков, приемников, приемопередатчиков, усилителей, фильтров, логики управления и т.д. Пример беспроводной совместно используемой среды может включать в себя части беспроводного спектра, такие как RF спектр и т.д. Будучи воплощенной, как кабельная система, система 4000 может включать в себя компоненты и интерфейсы, пригодные для передачи через проводную среду передачи данных, такую как адаптеры I/O, физические соединители, для соединения адаптеров I/O через соответствующую проводную среду передачи данных, сетевую карту сетевого интерфейса (NIC), контроллер диска, видеоконтроллер, аудиоконтроллер и т.д. Примеры проводной среды передачи данных могут включать в себя провод, кабель, металлические выводы, печатную плату (PCB), объединяющую плату, многоходовую систему коммутации, полупроводниковый материал, провод в виде витой пары, коаксиальный кабель, оптические волокна и т.д.
Платформа 4900a может устанавливать один или больше логических или физических каналов, для передачи информации. Информация может включать в себя мультимедийную информацию и информацию управления. Мультимедийная информация может относиться к любым данным, представляющим содержание, имеющее смысл для пользователя. Примеры содержания могут включать в себя, например, данные голосового разговора, видеоконференцию, видеоданные потоковой передачи, сообщение электронной почты ("e-mail"), сообщение голосовой почты, цифро-буквенные символы, графику, изображение, видеоданные, текст и т.д. Данные из голосового разговора могут представлять собой, например, информацию речи, периоды молчания, фоновые шумы, шумы, создающие комфорт, тоны и т.д. Информация управления может относиться к любым данным, представляющим команды, инструкции или слова управления, имеющие смысл для автоматизированной системы. Например, информация управления может использоваться для направления мультимедийной информации через систему, или передачи инструкции в узел для обработки мультимедийной информации заданным образом. Варианты осуществления, однако, не ограничены этими элементами или контекстом, представленным или описанным со ссылкой на фиг. 13.
Как описано выше, система 4000 может быть воплощена в различных физических стилях или с различными соотношениями размеров. На фиг. 14 иллюстрируются варианты осуществления устройств 5000 с малым соотношением размеров, в которых может быть воплощена система 4000. В вариантах осуществления, например, устройство 5000 может быть воплощено, как мобильное вычислительное устройство, обладающее возможностью беспроводной передачи данных. К мобильному вычислительному устройству может относиться любое устройство, имеющее систему обработки и источник мобильного питания или источник питания, такой как, например, одна или больше аккумуляторных батарей.
Как описано выше, примеры мобильного вычислительного устройства могут включать в себя персональный компьютер (PC), переносной компьютер, ультра легкий переносной компьютер, планшет, сенсорную панель, портативный компьютер, удерживаемый в руках компьютер, компьютер на ладони, карманный персональный компьютер (PDA), сотовый телефон, комбинацию сотового телефона/PDA, телевизионный приемник, интеллектуальное устройство (например, смартфон, интеллектуальный планшет или интеллектуальный телевизор), устройство мобильной Интернет (MID), устройство передачи сообщений, устройство передачи данных и т.д.
Примеры мобильного вычислительного устройства также могут включать в себя компьютеры, которые выполнены с возможностью их ношения, такие как компьютер на запястье, компьютер на пальце, компьютер в виде кольца, компьютер в стекле очков, компьютер в застежке ремня, компьютер в виде браслета, компьютеры в ботинке, компьютеры в одежде и другие носимые компьютеры. В вариантах осуществления, например, мобильное вычислительное устройство может быть воплощено, как смартфон, выполненный с возможностью выполнения компьютерных приложений, а также для передачи голосовых данных и/или передачи данных. Хотя некоторые варианты осуществления могут быть описаны на основе мобильного вычислительного устройства, воплощенного, в качестве примера, как смартфон, следует понимать, что другие варианты осуществления могут быть воплощены, используя также другие беспроводные мобильные вычислительные устройства. Варианты осуществления не ограничены в этом контексте.
Как показано на фиг. 14, устройство 5000 может включать в себя дисплей 5980, контроллер 5920a навигации, интерфейс 5880 пользователя, корпус 5905, устройство 5920b I/O и антенну 5998. Дисплей 5980 может включать в себя любой соответствующий модуль дисплея для отображения информации, соответствующей мобильному вычислительному устройству, и может быть таким же, как или аналогичным дисплею 4980 на фиг. 13. Контроллер 5920a навигации может включать в себя одно или больше свойств навигации, которые могут использоваться для взаимодействия с интерфейсом 5880 пользователя, и может быть таким же как или аналогичным контроллеру 4920 навигации на фиг. 13. Устройство 5920b I/O может включать в себя любое соответствующее устройство I/O для ввода информации в мобильное вычислительное устройство. Примеры устройства 5920b I/O могут включать в себя цифро-буквенную клавиатуру, цифровую клавиатуру, сенсорную панель, кнопки ввода, кнопки, переключатели, клавишные переключатели, микрофоны, громкоговорители, устройство распознавания голоса и программное обеспечение, и т.д. Информация также может быть введена в устройство 5000 с использованием микрофона. Такая информация может быть преобразована в цифровую форму с помощью устройства распознавания голоса. Варианты осуществления не ограничены в этом контексте.
В более общем смысле, различные элементы вычислительных устройств, описанных и представленных здесь, могут включать в себя различные аппаратные элементы, программные элементы или их комбинацию. Примеры аппаратных элементов могут включать в себя устройства, логические устройства, компоненты, процессоры, микропроцессоры, схемы, компоненты процессоров, элементы цепей (например, транзисторы, резисторы, конденсаторы, индуктивности, и т.д.), интегральные схемы, специализированные интегральные микросхемы (ASIC), программируемые логические устройства (PFD), цифровые сигнальные процессоры (DSP), программируемые пользователем вентильные матрицы (FPGA), модули памяти, логические вентили, регистры, полупроводниковое устройство, микросхемы, кристаллы микросхем, наборы микросхем и т.д. Примеры программных элементов могут включать в себя программные компоненты, программы, приложения, компьютерные программы, программы приложений, системные программы, программы для разработки программного обеспечения, машинные программы, программное обеспечение операционной системы, промежуточное программное обеспечение, встроенное программное обеспечение, программные модули, процедуры, подпрограммы, функции, способы, вспомогательные программы, программные интерфейсы, интерфейсы программ приложения (API), наборы инструкций, компьютерный код, код компьютера, сегменты кода, сегменты кода компьютера, слова, значения, символы или любую их комбинацию. Однако, определение, воплощен ли вариант осуществления, используя аппаратные элементы и/или программные элементы, может изменяться в соответствии с любым количеством факторов, таких как требуемая скорость вычислений, уровни потребляемой мощности, устойчивость к теплу, бюджет цикла обработки, скорости ввода данных, скорости вывода данных, ресурсы памяти, скорости шины передачи данных и другие конструктивные или рабочие ограничения, в соответствии с требованиями для данного варианта осуществления.
Некоторые варианты осуществления могут быть описаны, используя выражение “один вариант осуществления” или “вариант осуществления”, наряду с их производными. Эти термины означают, что конкретные свойство, структура или характеристика, описанная в связи с вариантом осуществления, включена, по меньшей мере, в один вариант осуществления. Появление фразы “в одном варианте осуществления” в различных местах в описании, не обязательно каждый раз относится к одному и тому же варианту осуществления. Кроме того, некоторые варианты осуществления могут быть описаны, используя выражение, "соединенный" и "подключенный", наряду с их производными. Эти термины не обязательно предназначены для использования, в качестве синонимов друг друга. Например, некоторые варианты осуществления могут быть описаны, используя термины "подключенный" и/или "соединенный", для обозначения, что два или больше элемента находятся в непосредственном физическом или электрическом контакте друг с другом. Термин "соединенный", однако, также может означать, что два или больше элемента не находятся в непосредственном контакте друг с другом, но все еще могут взаимодействовать или совместно работать друг с другом. Кроме того, аспекты или элементы из разных вариантов осуществления могут быть скомбинированы.
Следует подчеркнуть, что Реферат описания представлен для обеспечения для читателя, возможности быстрого восприятия свойства технического раскрытия. Он представлен с пониманием того, что он не будет использоваться для интерпретации или ограничения объема или значений формулы изобретения. Кроме того, в представленном выше Подробном описании изобретения, можно было видеть, что различные свойства сгруппированы вместе в один вариант осуществления с целью упрощения раскрытия. Этот способ раскрытия не следует интерпретировать, как отражающий намерение того, что заявленные варианты осуществления требуют больше свойства, чем в явном виде представлено в каждом пункте формулы изобретения. Скорее, как отражает следующая формула изобретения, предмет изобретения находится в менее, чем во всех свойствах одного раскрытого варианта осуществления. Таким образом, следующая формула изобретения, представлена в Подробном описании изобретения, и при этом каждый пункт формулы изобретения остается независимым, как отдельный вариант осуществления. В приложенной формуле изобретения термины "включающий в себя" и "в котором" используются, как эквиваленты обычного английского языка соответствующих терминов "содержащий" и "в котором", соответственно. Кроме того, термины "первый", "второй", "третий" и т.д., используются просто как метки, и не предназначены для наложения цифровых требований в отношении их объектов.
То, что было описано выше, включает в себя примеры раскрытой архитектуры, при этом, конечно, нет возможности описать каждую возможную комбинацию компонентов и/или методологий, но для специалиста в данной области техники будет понятно, что возможно множество дополнительных комбинаций и перестановок. В соответствии с этим, новая архитектура предназначена для охвата всех таких изменений, модификаций и вариантов, которые попадают в пределы сущности и объема приложенной формулы изобретения. Подробное раскрытие теперь возвращается к представлению примеров, которые относятся к дополнительным вариантам осуществления. Представленные ниже примеры не предназначены для их использования в качестве ограничения.
В Примере 1 устройство визуализации 2D изображения из данных 3D модели включает в себя компонент отсечения для отсечения первого видимого примитива изображения 2D экрана, выведенного из 3D модели в первой области изображения экрана, покрытой пикселем шейдинга, для формирования первого многоугольника, представляющего пересечение первой области и первого видимого примитива; первый компонент интерполяции, который интерполирует, по меньшей мере, один атрибут вершин первого видимого примитива с каждой вершиной первого многоугольника; и второй компонент интерполяции, для интерполяции значения цвета вершин первого многоугольника до точки в пределах второй покрытой пикселем области изображения экрана, вторая область меньше, чем первая область, и, по меньшей мере, частично совпадает с первой областью.
В Примере 2, который включает в себя предмет изобретения по Примеру 1, устройство может включать в себя компонент определения пикселя для определения размера первой области на основе характеристики множества видимых примитивов изображения 2D экрана, множество видимых примитивов, включающих в себя первый видимый примитив.
В Примере 3, который включает в себя предмет изобретения по любому из Примеров 1-2, точка может быть расположена в центре пикселя экрана, и компонент шейдинга для выбора вершин первого многоугольника, из которого следует интерполировать этот, по меньшей мере, один атрибут среди вершин множества многоугольников, сформированных компонентом отсечения, на основе местоположения точки относительно границ каждого многоугольника множества многоугольников, множество многоугольников, включающее в себя первый многоугольник.
В Примере 4, который включает в себя предмет изобретения по любому из Примеров 1-3, точка может совпадать с местоположением выборки, попадающим в пределы пикселя экрана, в выборке используется растеризация первого видимого примитива.
В Примере 5, который включает в себя предмет изобретения по любому из Примеров 1-4, устройство может включать в себя компонент шейдинга для вывода значения цвета вершин первого многоугольника из, по меньшей мере, одного атрибута, интерполированного до вершин первого многоугольника.
В Примере 6, который включает в себя предмет изобретения по любому из Примеров 1-5, компонент отсечения может отсекать второй видимый примитив изображения 2D экрана в первой области для формирования второго многоугольника, представляющего пересечение первой области второго видимого примитива, второй многоугольник совместно использует, по меньшей мере, часть ребра с первым многоугольником.
В Примере 7, который включает в себя предмет изобретения по любому из Примеров 1-6, для вершины первого многоугольника может совместно использоваться местоположение вдоль границы пикселя шейдинга с вершиной второго многоугольника.
В Примере 8, который включает в себя предмет изобретения по любому из Примеров 1-7, устройство может включать в себя компонент растеризации для растеризации примитивов 3D модели, для идентификации множества видимых примитивов, которые видимы в изображении 2D экрана, множество видимых примитивов, включающее в себя первый видимый примитив.
В Примере 9, который включает в себя предмет изобретения по любому из Примеров 1-8, компонент растеризации может устанавливать разрешение пикселя изображения экрана на разрешение пикселя дисплея.
В Примере 10, который включает в себя предмет изобретения по любому из Примеров 1-9, устройство может включать в себя дисплей для представления изображения экрана.
В Примере 11, который включает в себя предмет изобретения по любому из Примеров 1-10, устройство может включать в себя интерфейс для передачи данных изображения экрана, представляющих изображение экрана, в другое устройство.
В Примере 12 устройство для визуализации 2D изображения из данных 3D модели включает в себя компонент отсечения для отсечения первого видимого примитива и второго видимого примитива изображения 2D экрана, выведенного из 3D модели, в пределах области изображения экрана, покрытой пикселем шейдинга, для формирования первого многоугольника, представляющего пересечение области, покрытой пикселем шейдинга и первым видимым примитивом, и для формирования второго многоугольника, представляющего пересечение области, покрытой пикселем шейдинга, и второго видимого примитива; первый компонент интерполяции, который интерполирует, по меньшей мере, один атрибут вершин первого видимого примитива в каждой вершине первого многоугольника, и интерполирует, по меньшей мере, один атрибут вершин второго видимого примитива в каждой вершине второго многоугольника; и второй компонент интерполяции для интерполяции значения цвета вершин первого многоугольника до первой точки в пределах области, покрытой первым пикселем экрана изображения экрана и интерполяции значения цвета вершин второго многоугольника до второй точки в пределах области, покрытой вторым пикселем экрана изображения экрана, каждая из областей, покрыта первым и вторым пикселями экрана, совпадающими с областью, покрытой пикселем шейдинга.
В Примере 13, который включает в себя предмет изобретения по Примеру 12, первая точка может быть расположена в центре первого пикселя экрана, вторая точка может быть расположена в центре второго пикселя экрана, и второй компонент интерполяции может выбирать вершины первого многоугольника, по которым можно интерполировать этот, по меньшей мере, один атрибут до первой точки среди вершин множества многоугольников, сформированных компонентом отсечения, на основе местоположения первой точки относительно границ каждого многоугольника множества многоугольников, и может выбирать вершины второго многоугольника, среди которых следует интерполировать этот, по меньшей мере, один атрибут до второй точки среди вершин множества многоугольников на основе местоположения второй точки относительно границ каждого многоугольника множества многоугольников, множество многоугольников, включающее в себя первый и второй многоугольники.
В Примере 14, который включает в себя предмет изобретения по любому из Примеров 12-13, для второго видимого примитива может совместно использоваться, по меньшей мере, первая часть ребра с первым видимым примитивом.
В Примере 15, который включает в себя предмет изобретения по любому из Примеров 12-14, компонент отсечения может отсекать первый и второй видимые примитивы для обеспечения возможности совместного использования для первого и второго многоугольников, по меньшей мере, второй части ребра.
В Примере 16, который включает в себя предмет изобретения по любому из Примеров 12-15, компонент отсечения может отсекать первый и второй видимые примитивы для обеспечения для вершины первого многоугольника совместного использования местоположения вдоль границы пикселя шейдинга с вершиной второго многоугольника.
В Примере 17, который включает в себя предмет изобретения по любому из Примеров 12-16, устройство может включать в себя дисплей для представления изображения экрана.
В Примере 18, который включает в себя предмет изобретения по любому из Примеров 12-17, устройство может включать в себя компонент растеризации для установки разрешения пикселей изображения экрана до разрешения пикселей дисплея.
В Примере 19, который включает в себя предмет изобретения по любому из Примеров 12-18, устройство может включать в себя интерфейс для передачи данных изображения экрана, представляющих изображение экрана, в другое устройство.
В Примере 20, который включает в себя предмет изобретения по любому из Примеров 12-19, устройство может включать в себя компонент растеризации для приема из другого устройства обозначения ориентации плоскости изображения экрана.
В Примере 21 способ воплощения вычислений для визуализации 2D изображения из данных 3D модели включает в себя этапы, на которых: отсекают первый видимый примитив 2D изображения экрана, выведенного из 3D модели в пределах первой области изображения экрана, покрытой пикселем шейдинга, для формирования первого многоугольника, представляющего пересечение первой области и первого видимого примитива; интерполируют, по меньшей мере, один атрибут вершин первого видимого примитива до каждой вершины первого многоугольника; и интерполируют значения цвета вершин первого многоугольника до точки в пределах второй области, покрытой пикселем экрана изображения экрана, вторая область меньше, чем первая область, и, по меньшей мере, частично совпадает с первой областью.
В Примере 22, который включает в себя предмет изобретения по Примеру 21, способ может включать в себя этап, на котором: определяют размер первой области на основе характеристики множества видимых примитивов изображения 2D экрана, множество видимых примитивов включает в себя первый видимый примитив.
В Примере 23, который включает в себя предмет изобретения по любому из Примеров 21-22, точка может быть расположена в центре пикселя экрана, и способ может включать в себя этап, на котором: выбирают вершины первого многоугольника, среди которых следует выполнить интерполяцию этого, по меньшей мере, одного атрибута среди вершин множества многоугольников, сформированных компонентом отсечения на основе местоположения точки относительно границ каждого многоугольника множества многоугольников, и множество многоугольников включает себя первый многоугольник.
В Примере 24, который включает в себя предмет изобретения по любому из Примеров 21-23, точка может совпадать с местоположением выборки, попадающей в пределы пикселя экрана, в выборке используется растеризация первого видимого примитива.
В Примере 25, который включает в себя предмет изобретения по любому из Примеров 21-24, способ может включать в себя этап, на котором: выводят значения цвета вершин первого многоугольника, по меньшей мере, из одного атрибута, интерполированного до вершин первого многоугольника.
В Примере 26, который включает в себя предмет изобретения по любому из Примеров 21-25, способ может включать в себя этапы, на которых: отсекают второй видимый примитив изображения 2D экрана в пределах первой области для формирования второго многоугольника, представляющего пересечение первой области и второго видимого примитива, во втором многоугольнике совместно используется, по меньшей мере, часть ребра с первым многоугольником.
В Примере 27, который включает в себя предмет изобретения по любому из Примеров 21-26, для вершины первого многоугольника может совместно использоваться местоположение вдоль границы пикселя шейдинга с вершиной второго многоугольника.
В Примере 28, который включает в себя предмет изобретения по любому из Примеров 21-27, способ может включать в себя этап, на котором: представляют изображения экрана на дисплее.
В Примере 29, который включает в себя предмет изобретения по любому из Примеров 21-28, способ может включать в себя этап, на котором: передают данные изображения экрана, представляющие изображение экрана, в другое устройство.
В Примере 30, который включает в себя предмет изобретения по любому из Примеров 21-29, способ может включать в себя растеризацию примитивов 3D модели для идентификации множества видимых примитивов, которые видны в изображении 2D экрана, множество видимых примитивов, включающее в себя первый видимый примитив.
В Примере 31, по меньшей мере, один считываемый устройством носитель информации включает в себя инструкции, которые, при их исполнении вычислительным устройством, обеспечивают отсечение вычислительным устройством первого видимого примитива изображения 2D экрана, выведенного из 3D модели, в первой области изображения экрана, покрытой пикселем шейдинга, для формирования первого многоугольника, представляющего взаимное пересечение первой области и первого видимого примитива; интерполяцию, по меньшей мере, одного атрибута вершин первого видимого примитива для каждой вершины первого многоугольника; и интерполяцию значения цвета вершин первого многоугольника до точки в пределах второй области, покрытой пикселем экрана изображения экрана, вторая область меньше, чем первая область и, по меньшей мере, частично совпадает с первой областью.
В Примере 32, который включает в себя предмет изобретения Примера 31, вычислительное устройство может быть выполнено с возможностью определения размера первой области на основе характеристики множества видимых примитивов изображения 2D экрана, множество видимых примитивов, включающее в себя первый видимый примитив.
В Примере 33, который включает в себя предмет изобретения любого из Примеров 31-32, точка может быть расположена в центре пикселя экрана, и вычислительное устройство выполнено с возможностью выбора вершин первого многоугольника, из которых следует интерполировать этот, по меньшей мере, один атрибут, среди вершин множества многоугольников, сформированных компонентом отсечения, на основе местоположения точки относительно границ каждого многоугольника множества многоугольников, множество многоугольников, включающее в себя первый многоугольник.
В Примере 34, который включает в себя предмет изобретения по любому из Примеров 31-33, точка может совпадать с местоположением выборки, попадающей в пределы пикселя экрана, выборка используется при растеризации первого видимого примитива.
В Примере 35, который включает в себя предмет изобретения любого из Примеров 31-34, вычислительное устройство может быть выполнено с возможностью вывода значения цвета вершин первого многоугольника из, по меньшей мере, одного атрибута, интерполированного до вершин первого многоугольника.
В Примере 36, который включает в себя предмет изобретения любого из Примеров 31-35, вычислительное устройство может быть выполнено с возможностью отсечения второго видимого примитива изображения 2D экрана в пределах первой области для формирования второго многоугольника, представляющего пересечение первой области, и второго видимого примитива, во втором многоугольнике совместно используется, по меньшей мере, часть ребра с первым многоугольником.
В Примере 37, который включает в себя предмет изобретения по любому из Примеров 31-36, для вершины первого многоугольника может совместно использоваться местоположение вдоль границы пикселя шейдинга с вершиной второго многоугольника.
В Примере 38, который включает в себя предмет изобретения любого из Примеров 31-37, вычислительное устройство может быть выполнено с возможностью представления изображения экрана на дисплее.
В Примере 39, который включает в себя предмет изобретения любого из Примеров 31-38, вычислительное устройство может быть выполнено с возможностью передачи данных изображения экрана, представляющих изображение экрана, в другое устройство.
В Примере 40, который включает в себя предмет изобретения любого из Примеров 31-39, вычислительное устройство может быть выполнено с возможностью установки разрешения пикселя изображения экрана до разрешения пикселя дисплея.
В Примере 41, который включает в себя предмет изобретения по любому из Примеров 31-40, вычислительное устройство может быть выполнено с возможностью растеризации примитивов 3D модели для идентификации множества видимых примитивов, видимых в изображении 2D экрана, множество видимых примитивов, включающее в себя первый видимый примитив.
В Примере 42, по меньшей мере, один считываемый устройством носитель информации может включать в себя инструкции, которые при их исполнении вычислительным устройством, обеспечивают выполнение вычислительным устройством любого из представленных выше.
В Примере 43, устройство для визуализации 2D изображения из данных 3D модели может включать в себя средство для выполнения любого из представленных выше.