Системы и способы обеспечения промежуточных адресатов в графической системе
Иллюстрации
Показать всеГруппа изобретений относится к средствам обработки данных при визуализации и отображения трехмерной графики, требующих вычислений и расчетов, с привлечением промежуточного адресата памяти. Техническим результатом является повышение или сохранение скорости обработки данных для компьютерной графики в компьютерной системе с использованием при этом промежуточных адресатов для повторного использования данных на других этапах обработки. В различных вариантах выполнения обеспечиваются и используются промежуточные буферы памяти в видеопамяти для обеспечения возможности последовательно выводимым программам из графического интерфейса поддерживать алгоритмы, которые превышают ограничения процедурных средств затенения для единичных программ. Промежуточные буферы обеспечивают совместное использование данных обработки в компьютерной системе. Размер этих буферов, т.е. величина данных, хранящихся в промежуточных буферах, может устанавливаться переменным образом для изменяющейся величины разрешения для графических данных. 10 н. и 27 з.п. ф-лы, 7 ил.
Реферат
Уведомление об авторском праве и разрешение копирования
Часть описания данного патентного документа может содержать материал, который является предметом защиты по авторскому праву. Обладатель авторского права не имеет возражений против факсимильного воспроизведения кем бы то ни было этого патентного документа или патентного описания, как оно явствует из дел или записей Ведомства по патентам и товарным знакам, но во всех остальных случаях оставляет за собой все права на копирование. К данному документу должно прикладываться следующее извещение: Авторское право © 2002, Microsoft Corp.
Область изобретения
Настоящее изобретение направлено на системы и способы обеспечения промежуточного адресата(ов) памяти в связи с компьютерной графикой. В частности, настоящее изобретение относится к системам и способам обеспечения промежуточного адресата(ов) памяти для использования в связи с процедурными программами затенения, такими как программы затенения пикселов и вершин.
Существующий уровень техники
Визуализация и отображение трехмерной графики, как правило, связано с множеством расчетов и вычислений. Например, чтобы визуализировать трехмерный объект, формируется набор координатных точек или вершин, которые определяют этот объект. Вершины могут соединяться для образования многоугольников, которые определяют поверхность объекта, подлежащего визуализации и отображению. После того как образованы вершины, которые определяют объект, эти вершины могут преобразовываться из объектного или модельного эталонного кадра в глобальный эталонный кадр и, наконец, в двумерные координаты, которые могут быть отображены на плоском отображающем устройстве, таком как монитор. По пути вершины могут поворачиваться, масштабироваться, исключаться или ограничиваться, потому что они оказываются вне видимой области, освещаться различными схемами или источниками освещения, окрашиваться, преобразовываться иным образом, затеняться и т.д. Процессы, используемые при визуализации и отображении трехмерного объекта, могут требовать вычислений и могут включать большое число вершин.
Обычно, как иллюстрируется на Фиг.1, сложные трехмерные объекты или их части могут быть представлены совокупностями смежных треугольников ("сеткой"), представляющими приблизительную геометрию трехмерного объекта, либо геометрической картой или поверхностью в пространстве двумерных поверхностей. Сетка может определяться через позиции вершин треугольников. Одна или более текстурных карт могут отображаться на поверхность для создания текстурированной поверхности согласно процессу отображения текстуры. В этом отношении сигналы, текстурированные по поверхности, могут быть очень общими и могут определять любой вид промежуточного результата, который можно вводить в механизм(ы) преобразования, такой как процедура(ы) затенения, чтобы получить конечные цветовые и/или иные значения, связанные с точечной выборкой.
После текстурной дискретизации к текстурированной поверхности могут дополнительно применяться дополнительные преобразования, такие как алгоритмы и методы затемнения, перед визуализацией изображения посредством элементов изображения (пикселов) отображающего устройства или выведением данных иным образом для другой цели, нежели отображение. Изображения в компьютерной графике обыкновенно представляются как двумерная матрица дискретных значений (шкала серого) или как три двумерных матрицы дискретных значений (цветов). С помощью стандартной системы прямоугольных координат (x, y, z) поверхность можно определить как сетку (например, треугольную сетку) с координатами (x,y,z) для вершины сетки либо как геометрическую карту, в которой координаты (x,y,z) определяются как прямолинейное изображение в двумерной системе координат (u,v), иногда называемой областью параметризации поверхности. Текстурная карта(ы) может также определяться системой координат (u,v).
Точечные выборки в области параметризации поверхности, где к поверхности, включая ее геометрию, приписаны сигналы, можно генерировать из текстурных сеток или геометрических карт. Эти выборки могут быть преобразованы и затенены с помощью множества вычислений. В конце этой обработки преобразования и затенения точечная выборка включает в себя: (а) информацию позиционирования, т.е. адрес изображения, указывающий, куда отображается точка в плоскости изображения, и (б) информацию текстурного цвета или шкалы серого, которая указывает цвет выборки в позиции, указанной информацией позиционирования. Другие данные, такие как информация глубины точечной выборки, чтобы обеспечить исключение скрытой поверхности, вес или иная полезная информация о точечной выборке, тоже могут включаться в него. Преобразованная текстурированная поверхность помещается в кадровый буфер перед визуализацией посредством дисплея в двумерном пиксельном пространстве (x,y) изображения. В этой точке в случае черно-белого отображающего устройства каждой пиксельной позиции (x,y) в двумерном пространстве изображения присваивается значение серого в соответствии с некоторой функцией поверхности в кадровом буфере. В случае цветного отображающего устройства каждой пиксельной позиции (x,y) в двумерном пространстве изображения присваиваются значения красного, зеленого и синего (RGB). Отметим, что существует также множество цветовых форматов, иных, нежели RGB. С учетом изменений архитектуры от начала до конца вышеописанный метод уплотнения больших массивов данных графических вершин и пикселов известен как графический конвейер.
Индустрия компьютерной графики и графические конвейеры в последние несколько лет растут чрезвычайно бурно. К примеру, нынешнее поколение компьютерных игр переносится в трехмерную графику во все возрастающей степени и весьма реалистично. В то же время скорость игры становится все быстрее и быстрее. Эта комбинация подпитывает насущную потребность в быстрой визуализации трехмерной графики в относительно недорогих системах.
Еще в 1970-е годы системы трехмерной визуализации были способны описать "внешность" объектов согласно параметрам. Эти и более поздние способы обеспечивают параметризацию воспринимаемого цвета объекта на основании положения и ориентации его поверхности и освещающих его источников света. При этом из них вычисляется внешность объекта. Параметры также включают в себя значения, такие как диффузный цвет, коэффициент зеркального отражения, зеркальный цвет, отражательная способность и прозрачность материала объекта. Такие параметры в общем именуются параметрами затенения объекта.
Ранние системы могли лишь приписывать единственное значение параметрам затенения, а следовательно, они оставались постоянными и однородными по всей поверхности объекта. Более поздние системы позволяли использовать неоднородные параметры (например, прозрачность), которые могли иметь различные значения на разных частях объекта. Два известных и отличных друг от друга метода использовались для описания значений, полученных этими неоднородными параметрами на разных частях поверхности объекта: процедурное затенение и отображение текстуры. Отображение текстуры основано на пикселах и не зависит от разрешения.
Процедурное затенение описывает внешний вид материала в любой точке одномерного, двумерного или трехмерного пространства путем определения функции (часто называемой процедурным средством затенения) в этом пространстве на пространство параметров затенения. Объект "погружается" в исходное одномерное, двумерное или трехмерное пространство, и значения параметров затенения в данной точке поверхности объекта определяются как результат функции процедурного затенения в этой точке. К примеру, разработаны и могут быть найдены в литературе процедурные средства затенения, которые аппроксимируют внешний вид поверхностей из дерева, мрамора или другого естественного материала.
Визуализация графических данных в компьютерной системе представляет собой совокупность ресурсоемких процессов. Процесс затенения, т.е. процесс выполнения сложных алгоритмов на наборе(ах) специализированных структур графических данных, используемых для определения значений некоторых примитивов, таких как цвет и т.п., связанных со структурами графических данных, упрощает такие вычислительно-емкие и сложные процессы. В целом процесс затенения до некоторой степени нормирован. За счет пересылки исходного кода, предназначенного для работы со средством затенения, в приложение средство затенения становится объектом, который приложение может создавать/использовать, чтобы облегчить эффективное вычерчивание сложной видео графики. Примерами таких средств затенения являются средства затенения вершин и средства пиксельного затенения.
До их нынешнего воплощения в специализированных аппаратных микросхемах средства затенения вершин и пикселов иногда воплощались в целом или по большей части как программный код, а иногда воплощались как комбинация более жестких частей аппаратуры с программным обеспечением для управления этой аппаратурой. Такие реализации часто содержали центральный процессорный блок или имитировали его наличие с помощью системного центрального процессора. Например, аппаратные реализации непосредственно встраивали микросхему центрального процессора в свою конструкцию, чтобы выполнять обработку функций, требуемых задачами затенения. Хотя центральный процессор придает значительную гибкость в процесс затенения ввиду диапазона функциональных возможностей, которые обеспечивает стандартная микросхема обработки, встраивание центрального процессора добавляет непроизводительные издержки к специализированному процессу затенения. Однако без современного состояния аппаратного обеспечения было бы мало возможностей выбора.
В настоящее время, тем не менее, достигнут прогресс в технологии аппаратного обеспечения, что облегчает возможность перемещения функций, ранее реализованных в программном обеспечении, в специализированную аппаратуру. В результате нынешние средства пиксельного затенения и вершин реализуется как специализированные и программируемые микросхемы. Современные аппаратные разработки микросхем для пиксельного затенения и вершин в высокой степени специализированы и этим отличаются от аппаратных реализаций центральных процессоров в прошлом.
Разработаны специализированные интерфейсы прикладных программ (ИПП) (API) трехмерной графики, которые проявляют специализированные функциональные возможности современных средств затенения вершин и пикселов. В этом отношении разработчик может загружать команды в средство затенения (программу построения теней) вершин, которые эффективно программируют это средство затенения вершин для выполнения специализированного режима. К примеру, ИПП проявляют функциональные возможности, связанные с возросшим числом регистров в средствах затенения вершин, например, специализированные функции затенения вершин по отношению к числам с плавающей запятой на регистровом уровне. В дополнение к этому, возможно реализовать набор команд, который позволяет чрезвычайно быстродействующему средству затенения вершин выдавать в ответ только дробные части чисел с плавающей запятой. Множество функций может быть реализовано посредством загрузки этих команд в предположении, что предел счета для команд в средстве затенения вершин не превышается.
Подобным же образом в отношении средства пиксельного затенения специализированные функции средства пиксельного затенения могут реализовываться путем загрузки команд в средство пиксельного затенения. К примеру, проявляются функциональные возможности, которые обеспечивают механизм линейной интерполяции в средстве пиксельного затенения. Кроме того, для разработчиков выявляются функциональные возможности многих различных модификаторов операций в связи с наборами команд, настроенными на средство пиксельного затенения. К примеру, логическое отрицание (взятие с обратным знаком), повторное отображение, смещение и другие функции чрезвычайно полезны для многих графических приложений, для которых желательно эффективное пиксельное затенение, и даже когда они исполняются как часть единственной команды, они лучше всего выражаются как модификаторы для этой команды. Короче говоря, вышеуказанные функциональные возможности являются преимуществом для многих графических операций, и их функциональное встраивание в наборы команд уже специализированных средств затенения пикселов и вершин добавляет огромное значение с точки зрения простоты разработки и улучшения характеристик. Множество функций может, таким образом, обеспечиваться через загрузку этих команд в предположении, что предел счета для команд в средстве пиксельного затенения не превышается.
Совместно переуступленная заявка на патент США того же заявителя №09/801079, поданная 6 марта 2001 года, предлагает такие примерные трехмерные ИПП для осуществления связи с аппаратными реализациями средств затенения вершин и средств пиксельного затенения, имеющих локальные регистры. Что касается средств затенения вершин, в этой заявке описываются связи ИПП, которые могут использовать встроенный указатель регистров, и эти связи ИПП обеспечивают также специализированную функцию, реализованную на микросхеме на регистровом уровне, которая выводит дробную часть(и) ввода(ов) (введенных данных). Что касается пиксельного затенения, связи ИПП обеспечивают специализированную функцию, реализованную на микросхеме на регистровом уровне, которая выполняет функцию линейной интерполяции, и предусмотрены связи ИПП для специализированных модификаторов, также реализованных на микросхеме на регистровом уровне, которые выполняют функции модификации, включая взятие с обратным знаком, определение дополнения, повторное отображение смещение, масштабирование и насыщение. Преимущественно связи ИПП предоставляют разработчику очень полезные встроенные графические алгоритмические элементы, скрывая в то же время от разработчика подробности работы микросхем со средствами затенения вершин и пиксельного затенения. Совместно переуступленная заявка на патент США того же заявителя №09/796577, поданная 1 марта 2001 года, также описывает трехмерные ИПП, которые предоставляют разработчику уникальные алгоритмические элементы для использования с процедурными средствами затенения посредством механизма, который находится концептуально ниже или внутри программного интерфейса и разрешает разработчику загружать команды в процедурные средства затенения и центральный процессорный блок. Например, такой трехмерный ИПП разрешает загружать операции в микросхему трехмерной графики для улучшения характеристик качества. Эти трехмерные ИПП получают преимущество от новейших микросхем трехмерной графики, которые начали обрабатывать такие программируемые функциональные возможности путем включения гибкой встроенной обработки и ограниченной встроенной памяти, чтобы удалять заказной графический код из обработки главного процессора и помещать такие программируемые и загружаемые функциональные возможности в микросхему графики. Такие ИПП обеспечивают то, что программирующие или алгоритмические элементы, написанные разработчиком, могут загружаться в микросхему, тем самым программируя эту микросхему на выполнение этих алгоритмов на повышенных уровнях эффективности. Сюда же относится и то, что разработчик может написать подпрограмму, загружаемую в микросхему трехмерной графики, а также имеется набор(ы) алгоритмических элементов, которые предусматриваются в связи с трехмерным ИПП (подпрограммы, которые не пишутся разработчиком, но которые уже запрограммированы для разработчика). Аналогично, разработчик может загружать эти предварительно упакованные алгоритмы ИПП в программируемую микросхему трехмерной графики для повышение эффективности обработки. Способность загружать трехмерные алгоритмические элементы обеспечивает повышение эффективности, расширение возможностей управления, а также простоту разработки.
Таким образом, введение программируемых операций на повершинной и попиксельной основе более широко распространяется в современном графическом аппаратном обеспечении. Эта общая программируемость обеспечивает огромный потенциал для усложненных алгоритмов создания на повышенных уровнях эффективности. Однако имеется ряд ограничений того, что может быть достигнуто. Как правило, при нынешних визуализирующих конвейерах в средствах затенения вершин и пикселов, как иллюстрируется на фиг.2А, поток геометрических данных ПГД (SGD) вводится в средство 200 затенения вершин для выполнения некоторой операции для вершин, после чего растеризатор 210 растеризирует геометрические данные в пиксельные данные, выводя поток пиксельных данных ППД1 (SPD1). Средство 200 затенения вершин может принимать команды, которые программируют это средство 200 затенения вершин выполнять специализированные функции, но имеются пределы на размер и сложность команд программы затенения вершин. Аналогично, средство 220 пиксельного затенения может дополнительно выполнять одно или более преобразований данных, выведенных потоком пиксельных данных ППД2. Средство 220 пиксельного затенения может также принимать команды, которые программируют средство 220 пиксельного затенения для выполнения специализированных функций, но имеются ограничения на размер и сложность команд средства пиксельного затенения. Таким образом, одно ограничение для современных ИПП и соответствующего аппаратного обеспечения состоит в том, что большая часть аппаратного обеспечения имеет очень ограниченный счет команд. Этот ограниченный счет команд препятствует реализации некоторых из наиболее усложненных алгоритмов разработчиком с помощью ИПП. Кроме того, современное программируемое аппаратное обеспечение имеет весьма ограниченные механизмы для обмена данными между отдельными программами, т.е. первая программа пиксельного затенения не может повторно использовать вывод данных из второй программы пиксельного затенения.
В дополнение к этому, как иллюстрируется на фиг.2А, пиксел обыкновенно представляется как точка в двумерной сетке пространства изображения, имеющая значение шкалы серого или связанные с ним цветные значения; однако современная графика рассматривает пиксел в конвейере обработки пикселов как любую совокупность данных, связанных с точкой в любом двумерном массиве данных, относится ли он к отображаемому изображению или нет. Например, хотя фиг.2А иллюстрирует пиксел, имеющий участок памяти для красного, участок памяти для зеленого и участок памяти для синего, это вовсе не обязательно, и любое число участков памяти и соответствующих значений может быть пикселом. Таким образом, имеется значительная гибкость в генерировании двумерного массива пиксельных данных, который может включать в себя значения параметров для эффектов освещения, веса, информации буфера глубины (z-буфера) и т.п. Проблема, свойственная современному графическому конвейеру, как иллюстрируется на фиг.2С, относится к гибкости, с которой могут выводиться раздельные наборы пикселов. Хотя пиксельный процессор 230 способен выводить любой вид пиксельных данных, т.е. пикселы Р1, Р2, Р3, Р4 ... PN, выводимые в потоке, могут отличаться значительной гибкостью, что касается вида или числа участков памяти, определяющих эти пикселы, тем не менее, все Р1, Р2, Р3, Р4 ... PN имеют одни и те же участки памяти. Таким образом, если Р1 включает в себя данные R, G, B, то же самое относится и к Р2, Р3, Р4 ... PN, тем самым отсутствует гибкость, которая обеспечивала бы определение разных наборов выходных пиксельных данных, часть которых может использоваться для освещения, а другие - непосредственно для цвета. Кроме того, в настоящее время разрешение для визуализированных объектов определяется заранее в соответствии с процессом растеризации, т.е. процесс визуализации управляет количеством выборок, которые можно помещать в визуализируемый объект, и тем самым было бы желательно иметь переменное управление разрешением визуализируемого объекта, т.е. количество выборок, которые могут храниться в связи с визуализируемым объектом.
Поэтому было бы желательно реализовать системы и способы, которые преодолевают недостатки современных возможностей программирования в связи с существующими архитектурами графических конвейеров, ИПП и аппаратного обеспечения вследствие ограничений на счет команд, ограничений на форму вывода и отсутствие совместного использования данных среди программ.
Сущность изобретения
Исходя из вышеизложенного, настоящее изобретение предлагает системы и способы обеспечения промежуточного адресата(ов) в связи с компьютерной графикой в компьютерной системе. В различных вариантах осуществления изобретение обеспечивает и использует промежуточные буферы памяти в видеопамяти, чтобы позволить преобразованным в последовательную форму программам из графических ИПП поддерживать алгоритмы, которые превышают командные ограничения процедурных средств затенения для одиночных программ. Промежуточные буферы могут также обеспечить совместное пользование данными среди программ и для других целей и доступны как неделимое целое. Размер этих буферов, т.е. величина данных, хранящихся в промежуточных буферах, может устанавливаться переменным образом для изменяемой величины разрешения по отношению к графическим данным. В этой связи единичная программа генерирует промежуточные данные, которые затем могут использоваться и повторно использоваться путем расширения той же самой программы и/или любого числа других программ любое число раз, как желательно, обеспечивая значительную гибкость и сложность программ затенения, сохраняя скорость современных микросхем графики.
Другие признаки и варианты осуществления настоящего изобретения описаны ниже.
Краткое описание чертежей
Система и способы обеспечения промежуточных адресатов памяти в соответствии с настоящим изобретением описаны ниже со ссылками на чертежи, на которых представлено следующее: фиг.1 - схематическое представление процесса графического конвейера в компьютерной графической системе;
фиг.2А-2С - иллюстрация различных ограничений и проблем существующих графических конвейеров;
фиг.3А - блок-схема, представляющая пример сетевой среды, имеющей множество вычислительных устройств, в которой может быть реализовано настоящее изобретение;
фиг.3В - блок-схема, представляющая пример неограничивающего вычислительного устройства, в котором может быть реализовано настоящее изобретение;
фиг.4 - иллюстрация примера использования промежуточных адресатов памяти согласно изобретению для обхода аппаратурного предела счета команд;
фиг.5 - блок-схема алгоритма, иллюстрирующая использование ИПП в соответствии с настоящим изобретением;
фиг.6 - диаграмма, иллюстрирующая примерные аспекты промежуточных адресатов памяти согласно изобретению, и
фиг.7 - иллюстрация примерного использования промежуточных адресатов памяти для достижения комплексных функциональных возможностей с несколькими прогонами программ аппаратными средствами в соответствии с изобретением.
Подробное описание изобретения
Обзор
Как описано выше, настоящее изобретение позволяет использовать множество вычислений промежуточных адресатов в языках затенения, таких как языки затенения низкого уровня, что позволяет разработчику программировать функциональные возможности процедурных средств затенения. Графические платформы, которые не имеют рециркуляции промежуточных адресатов в соответствии с изобретением, ограничены в размерах и сложности программ, которые работают на попиксельном или повершинном уровне. Системы и способы, соответствующие изобретению, обеспечивают создание языка высокого уровня для абстрактного и упрощенного использования возможностей программирования в связи с эволюцией программируемого в общем виде графического конвейера. Изобретение может также использоваться для создания программ с виртуально неограниченной длиной, которые обеспечивают визуализацию не в реальном времени с помощью аппаратного ускорения. Размер буферов, т.е. количество данных, хранящихся в промежуточных адресатах, может быть переменным набором для изменяющейся величины разрешения по отношению к графическим данным. Доступность неограниченной рециркуляции с аппаратным ускорением для приложений визуализации не в реальном времени в соответствии с изобретением увеличивает тем самым скорость и эффективность графической платформы.
Примерные сетевые и распределенные среды
Специалисту должно быть понятно, что компьютер или иное клиентское или серверное устройство может применяться как часть компьютерной сети либо в распределенной вычислительной сети. С этой точки зрения настоящее изобретение подходит к любой компьютерной системе с любым числом блоков памяти или хранения и любым числом приложений и процессов, происходящих в любом числе блоков или объемов памяти, которые могут использоваться в связи с промежуточными адресатами памяти по изобретению. Настоящее изобретение может применяться к среде с серверными компьютерами и клиентскими компьютерами, развернутыми в сетевой среде или распределенной вычислительной среде, имеющей удаленную или локальную память. Настоящее изобретение может быть также применено к автономным вычислительным устройствам с функциональными возможностями языков программирования, средствами интерпретации и выполнения для генерирования, приема и передачи информации в связи с удаленными или локальными услугами.
Распределенное вычисление облегчает совместное использование компьютерных ресурсов и услуг путем прямого обмена между вычислительными устройствами и системами. Эти ресурсы и услуги включают в себя обмен информацией, сверхоперативную память и дисковую память для файлов. Распределенное вычисление имеет преимущество сетевой связности, позволяющей клиентам выгодно использовать их совместную производительность для получения выигрыша для всего предприятия. В этом отношении множество устройств могут иметь приложения, объекты и ресурсы, которые могут использовать промежуточные адресаты памяти согласно изобретению.
На фиг.3А показано схематичное представление примерной сетевой или распределенной вычислительной среды. Эта распределенная вычислительная среда содержит вычислительные объекты 10а, 10b и т.д. и вычислительные объекты или устройства 110а, 110b, 110с и т.д. Эти объекты могут содержать программы, способы, банки данных, программируемую логику и т.п. Эти объекты могут содержать части одних и тех же или различных устройств, таких как персональные цифровые ассистенты (ПАА) (PDA), телевизоры, звуковые проигрыватели МР3, персональные компьютеры и т.п. Каждый объект может осуществлять связь с другим объектом с помощью сети 14 связи. Эта сеть сама может содержать другие объекты и вычислительные устройства, которые обеспечивают услуги для системы по фиг.2А. В соответствии с одним из аспектов данного изобретения каждый объект 10а, 10b и т.д. или 110а, 110b, 110с и т.д. может содержать приложение, которое может использовать ИПП или иной объект, чтобы запрашивать использование промежуточных адресатов памяти по изобретению.
В распределенной вычислительной архитектуре компьютеры, которые могут традиционно использоваться только как клиенты, осуществляют связь непосредственно между собой и могут действовать и как клиенты, и как серверы, принимая на себя ту роль, которая наиболее эффективна для сети. Это снижает нагрузку на серверы и позволяет всем клиентам обращаться к ресурсам, доступным на других клиентах, благодаря чему увеличивается пропускная способность и эффективность всей сети. Услуги, которые используют промежуточные адресаты памяти в соответствии с настоящим изобретением, могут, таким образом, распределяться среди клиентов и серверов, действующих тем способом, который эффективен для всей сети.
Распределенное вычисление может помочь коммерческим предприятием предоставлять услуги и возможности более эффективно через разные географические границы. Кроме того, распределенное вычисление может перемещать данные ближе к тому пункту, где данные потребляются, действуя как сетевой механизм сверхоперативной памяти. Распределенное вычисление также позволяет вычислительным сетям динамически взаимодействовать с использованием интеллектуальных агентов. Агенты постоянно находятся на одноранговых компьютерах и передают различные виды информации туда и обратно. Агенты могут также инициировать задачи от имени других одноранговых систем. К примеру, интеллектуальные агенты могут использоваться, чтобы устанавливать приоритеты задач в сети, изменять поток трафика, искать файлы на месте или определять аномальное поведение, такое как вирусы, и останавливать его, прежде чем оно окажет воздействие на работу. Могут подразумеваться также все типы других услуг. Поскольку графический объект(ы), текстурные карты, данные затенения и т.п. могут на практике физически располагаться в одном или более местоположений, способность распределять услуги, которые используют промежуточные адресаты памяти, описанные здесь, является очень полезной в такой системе.
Можно также отметить, что объект, такой как 110с, может управляться с другого вычислительного устройства 10а, 10b и т.д. или 110а, 110b и т.д. Тем самым, хотя изображенная физическая среда может показывать соединенные устройства как компьютеры, такая иллюстрация является просто примером, а физическая среда может быть альтернативно изображена или описана как содержащая различные цифровые устройства, такие как ПАА, телевизоры, проигрыватели МР3 и т.п., программные объекты, такие как интерфейсы, объекты СОМ и т.п.
Имеется множество систем, компонентов и сетевых конфигураций, которые поддерживают распределенную вычислительную среду. Например, вычислительные системы могут соединяться вместе проводными или беспроводными системами, локальными сетями или глобальными сетями. В настоящее время многие из этих сетей связаны с Интернетом, который обеспечивает инфраструктуру для широко распределенного вычисления и охватывает множество разных сетей.
В домашних сетевых средах имеется, по меньшей мере, четыре в корне отличных носителя сетевого переноса, каждый из которых может поддерживать уникальный протокол, такой как сеть питания, данные (как беспроводные, так и проводные), речь (например, телефон) и медийные средства развлекательного типа. Большая часть домашних управляющих устройств, таких как выключатели света и бытовые приборы, могут использовать для соединения сеть питания. Услуги данных могут вводиться в дом как широкополосные (например, либо цифровая абонентская линия (DSL), либо кабельный модем) и быть доступны в доме с помощью беспроводного (например, HomeRF или 802.11b), либо проводного (например, домашнего PNA, Cat 5, линия питания) соединения. Речевой трафик может вводиться в дом либо как проводной (например, Cat 3), так и беспроводный (например, сотовые телефоны) и может распределяться внутри дома с помощью проводки Cat 3. Медийные средства развлекательного типа или другие графические данные могут вводиться в дом либо через спутник, либо по кабелю и обычно распределяются в доме с помощью коаксиального кабеля. Аппаратура стандартов IEEE 1394 и DVI также может быть реализована в виде цифровых межсоединений для кластеров медиа-устройств. Все эти сетевые среды и другие, реализуемые в качестве стандартов протоколов, могут соединяться между собой, чтобы образовать внутреннюю сеть (интранет), которая может соединяться с внешним миром посредством Интернета. Короче говоря, существует множество отличающихся источников для хранения и передачи данных, а следовательно, в перспективе вычислительные устройства потребуют способов совместного использования данных, таких как данные, к которым обращаются или которые используют в связи с программными объектами, которые используют промежуточные результаты промежуточных адресатов в соответствии с настоящим изобретением.
Интернет обычно называют собранием сетей и шлюзов, которые используют комплект проколов TCP/IP, которые общеизвестны в области компьютерных сетей. TCP/IP является акронимом для слов "Протокол управления переносом/Интерфейсная программа". Интернет может быть описан как система географически распределенных удаленных компьютерных сетей, соединенных между собой компьютерами, исполняющими сетевые протоколы, которые позволяют пользователям взаимодействовать и совместно пользоваться информацией по сетям. Из-за такого широко распространенного совместного пользования информацией удаленные сети, такие как Интернет, тем самым в большинстве случаев вовлекаются в открытую систему, для которой разработчики могут конструировать программные приложения для выполнения специализированных операций или услуг практически без ограничений.
Таким образом, сетевая инфраструктура создает возможность главного компьютера сетевых топологий, таких как клиент-сервер, одноранговых или гибридных архитектур. "Клиент" является членом класса или группы, которая использует услуги другого класса или группы, к которой он не относится. Тем самым в вычислениях клиент является процессом, т.е., грубо говоря, набором команд или задач, который запрашивает услугу, предоставляемую другой программой. Клиентский процесс использует запрошенную услугу без "знания" каких-либо подробностей работы о самой этой другой программе или услуге. В архитектуре клиент-сервер, в частности в сетевой системе, клиент обычно представляет собой компьютер, который обращается к совместно используемым сетевым ресурсам, предоставленным другим компьютером, например сервером. В примере по фиг.3А компьютеры 110а, 110b и т.д. могут считаться клиентами, компьютер 10а, 10b и т.д. может считаться сервером, где сервер 10а, 10b и т.д. поддерживает данные, которые затем копируются в клиентских компьютерах 110а, 110b и т.д.
Сервер обычно является удаленной компьютерной системой, доступной по удаленной сети, такой как Интернет. Клиентский процесс может активироваться в первой компьютерной системе, а серверный процесс может активироваться во второй компьютерной системе, и они могут осуществлять связь друг с другом по среде передачи данных, тем самым обеспечивая распределенные функциональные возможности и позволяя множеству клиентов получать выгоды от способностей сервера собирать информацию.
Клиент и сервер осуществляют связь друг с другом, используя функциональные возможности, предоставляемые уровнем протокола. К примеру, гипертекстовый транспортный протокол (ГТТП) (НТТР) является общим протоколом, который используется в связи со всемирной паутиной (WWW). Как правило, компьютерный сетевой адрес, такой как унифицированный указатель ресурсов (УУР) (URL), или адрес межсетевого протокола (IP) используется, чтобы идентифицировать серверный или клиентский компьютеры друг для друга. Сетевой адрес можно называть адресом УУР. Например, связь может обеспечиваться по среде передачи данных. В частности, клиент и сервер могут соединяться друг с другом через соединения TCP/IP для связи с высокой пропускной способностью.
Таким образом, фиг.3А иллюстрирует примерную сетевую или распределенную среду с сервером, осуществляющим связь с клиентскими компьютерами через сеть/шину. В этой среде может применяться настоящее изобретение. Более подробно ряд серверов 10а, 10b и т.д. соединяются друг с другом через сеть/шину 14, которая может быть локальной сетью, глобальной сетью, корпоративной сетью, Интернетом и т.п. с несколькими клиентскими или удаленными вычислительными устройствами 110, 110b, 110c, 110d, 110е и т.д., такими как портативный компьютер, карманный компьютер, тонкий (простой) клиент, сетевое приложение, или иным устройством, таким как видеомагнитофон (VCR), телевизор, печь, светильник, нагреватель и т.п. в соответствии с настоящим изобретением. Тем самым подразумевается, что настоящее изобретение можно применить к любому вычислительному устройству, в связи с которым желательно обрабатывать графический объект(ы).