RU2459260C2 - Текстурная дискретизация - Google Patents

Текстурная дискретизация Download PDF

Info

Publication number
RU2459260C2
RU2459260C2 RU2010126453/08A RU2010126453A RU2459260C2 RU 2459260 C2 RU2459260 C2 RU 2459260C2 RU 2010126453/08 A RU2010126453/08 A RU 2010126453/08A RU 2010126453 A RU2010126453 A RU 2010126453A RU 2459260 C2 RU2459260 C2 RU 2459260C2
Authority
RU
Russia
Prior art keywords
shadow
builder
texture
sampler
language
Prior art date
Application number
RU2010126453/08A
Other languages
English (en)
Other versions
RU2010126453A (ru
Inventor
Уци САРЕЛЬ (IL)
Уци САРЕЛЬ
Пётр РОЗЕНФЕЛЬД (PL)
Пётр РОЗЕНФЕЛЬД
Original Assignee
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн filed Critical Интел Корпорейшн
Publication of RU2010126453A publication Critical patent/RU2010126453A/ru
Application granted granted Critical
Publication of RU2459260C2 publication Critical patent/RU2459260C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

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

Description

Уровень техники
Текстура в общем относится к изображениям, содержащим повторяющиеся узоры, которые можно использовать для обертывания графических образов. Текстурные данные можно дискретизировать с помощью методов текстурной дискретизации на основе критерия Найквиста. Методы текстурной дискретизации могут включать в себя точечную дискретизацию, билинейную фильтрацию, трилинейную фильтрацию, анизотропную фильтрацию, подавление помех наложения и другие аналогичные методы. Текстурная дискретизация используется во все возрастающей степени, например, вершинным построителем теней, геометрическим построителем теней и пиксельным построителем теней.
Кроме того, сложность и использование таких методов текстурной дискретизации увеличивается, и при этом сложность аппаратного обеспечения, используемого для выполнения текстурной дискретизации, постоянно возрастает. Имеется по меньшей мере несколько приложений, которые могут требовать использования методов текстурной дискретизации, которым может быть не нужен прямой доступ к аппаратному устройству или которые не имеют прямого доступа к аппаратному устройству. Кроме того, существующие аппаратные устройства могут не полностью поддерживать сложные операции текстурной дискретизации, либо существующие аппаратные устройства могут не выполнять сложные операции текстурной дискретизации эффективно.
Краткое описание чертежей
Описанное здесь изобретение иллюстрируется посредством примера, а не ограничения в приложенных чертежах. Для простоты и ясности иллюстрации элементы, показанные на чертежах, не обязательно изображены в масштабе. Например, размеры некоторых элементов могут быть для ясности преувеличены по отношению к прочим элементам. Далее, когда это представляется пригодным, ссылочные позиции повторяются на чертежах для указания соответствующих или аналогичных элементов.
Фиг.1 иллюстрирует метод графической обработки, который использует текстурный дискретизатор, реализованный с помощью языка построителя теней в соответствии с одним вариантом осуществления.
Фиг.2 иллюстрирует состояния трехмерной магистрали метода графической обработки, использующего текстурные дискретизаторы, реализованные с помощью языка построителя теней в соответствии с одним вариантом осуществления.
Фиг.3 представляет собой блок-схему алгоритма, которая иллюстрирует текстурный дискретизатор, реализованный с помощью языка построителя теней в соответствии с одним вариантом осуществления.
Фиг.4 иллюстрирует диаграмму переходов, показывающую процесс текстурной дискретизации, использующий язык построителя теней в соответствии с одним вариантом осуществления.
Фиг.5 иллюстрирует компьютерную систему 500, в которой может быть воплощена текстурная дискретизация с помощью языка построителя теней в соответствии с одним вариантом осуществления.
Подробное описание изобретения
Нижеследующее описание описывает методы выполнения текстурной дискретизации с помощью текстурного дискретизатора, воплощенного с помощью языка построителя теней. В нижеследующем описании изложены многочисленные конкретные подробности, такие как логические воплощения, разделение ресурсов, либо совместное использование, либо дублирование воплощений, типов и взаимосвязей системных компонентов, и логическое разделение или интеграция выборов, чтобы обеспечить более тщательное понимание настоящего изобретения. Специалисты, однако, оценят, что изобретение можно осуществлять и без таких конкретных подробностей. В иных случаях управляющие структуры, схемы на вентильном уровне и полные последовательности программных команд не показаны подробно, чтобы не затемнять изобретение. Специалисты будут способны воплотить соответствующие функциональные возможности с помощью включенных здесь описаний без ненужного экспериментирования.
Ссылки в описании на «один вариант осуществления», «вариант осуществления», «примерный вариант осуществления» указывают, что описанный вариант осуществления может включать в себя конкретный признак, структуру или характеристику, но каждый вариант осуществления может не обязательно включать в себя эти конкретные признак, структуру или характеристику. Кроме того, такие фразы не обязательно относятся к одному и тому же варианту осуществления. Далее, когда конкретный признак, структура или характеристика описываются в связи с вариантом осуществления, представляется, что они относятся к знаниям специалиста действия с такими признаком, структурой или характеристикой в связи с другими вариантами осуществления, описаны ли они явным образом или нет.
Варианты осуществления изобретения могут воплощаться аппаратно, посредством встроенных программ, программно или любой их комбинацией. Варианты осуществления изобретения могут также воплощаться как команды, хранящиеся на машиночитаемом носителе, которые можно считывать и исполнять одним или несколькими процессорами. Машиночитаемый носитель данных может включать в себя любой механизм для хранения или передачи информации в виде, пригодном для считывания машиной (к примеру, вычислительным устройством).
Например, машиночитаемый носитель данных может включать в себя постоянно запоминающее устройство (ПЗУ) (ROM), оперативное запоминающее устройство (ОЗУ) (RAM), носитель данных на магнитном диске, оптический носитель данных, устройства флэш-памяти, электрические и оптические формы сигналов. Далее, встроенные программы, программы, подпрограммы и команды могут описываться здесь как выполняющие определенные действия. Однако следует понимать, что такие описания даны просто для удобства и что такие действия фактически являются результатом работы вычислительных устройств, процессоров, контроллеров и прочих устройств, исполняющих эти встроенные программы, программы, подпрограммы и команды.
Вариант осуществления соотношения «многие ко многим», разделяемого между множеством построителей теней и текстурных дискретизаторов, иллюстрируется на фиг.1. В одном варианте осуществления диаграмма этого соотношения может содержать М построителей с 110-A по 110-M теней, и K текстурных дискретизаторов с 120-A по 120-K могут поддерживать различные операции дискретизации (например, N операций дискретизации) с различными состояниями дискретизаторов (например, p состояний дискретизаторов). В одном варианте осуществления текстурный дискретизатор 120 может быть выполнен с состоянием дискретизатора и может принимать подлежащую выполнению операцию дискретизации на основании этого состояния дискретизации. В одном варианте осуществления построитель 110-A теней может извлекать текстурные выборки из текстурных дискретизаторов с 120-A по 120-K. В другом варианте осуществления построитель 110-A теней может извлекать текстурные выборки, например, из текстурных дискретизаторов 120-B, 120-D, 120-G и 120-J. В одном варианте осуществления построители с 110-A по 110-M теней могут представлять, например, вершинные, геометрические, оболочечные, доменные, пиксельные или вычислительные построители теней. В одном варианте осуществления построитель 110-A теней может включать в себя множество состояний дискретизатора (SS), которые можно использовать для дискретизации, а построитель 110-A теней, например, может выполнять множество операций дискретизации с помощью конкретного состояния дискретизатора. В одном варианте осуществления состояние дискретизатора может иметь отдельную логику для операций дискретизации. Во время компиляции это состояние дискретизатора можно добавлять к состоянию дискретизатора (SS), чтобы получить оптимальный код для конкретного состояния дискретизатора и операции дискретизации. В одном варианте осуществления текстурные дискретизаторы с 120-A по 120-K могут представлять операции текстурных дискретизаторов, которые могут воплощать поднабор поддерживающих текстурный дискретизатор операций дискретизации и состояний дискретизатора.
В одном варианте каждый построитель 110 теней может извлекать текстурные выборки, генерируемые одним или несколькими текстурными дискретизаторами 120. В одном варианте осуществления текстурные дискретизаторы с 120-A по 120-K могут быть воплощены автономно с помощью языка построителя теней, такого как ассемблер, Cg, GLSL, HLSL и прочие языки построителя теней. В одном варианте осуществления текстурные дискретизаторы 120 могут компилироваться во время создания построителей 110 теней, либо во время создания объекта ортогонального состояния дискретизатора, либо по запросу в более поздний момент времени после фазы создания. В одном варианте осуществления бинарный дискретизатор (SS-BIN) может быть создан и может использоваться построителями 110 теней, когда построителям 110 теней требуются текстурные выборки.
В одном варианте осуществления построители 110 теней и текстурные дискретизаторы 120 могут использоваться, например, в программируемой магистрали трехмерной графики. В одном варианте осуществления трехмерная графическая программируемая магистраль может содержать Direct3D10 (D3D10), Direct3D11 (D3D11) или иные ступени такой магистрали прикладного программного интерфейса (API) Direct, доступного от Microsoft® Corporation, или ступени магистрали OpenGL межплатформенного API, доступного от Silicon Graphics Inc. Однако текстурные дискретизаторы 120 могут использоваться также любым построителем теней в иных средах.
Вариант осуществления трехмерной графической программируемой магистрали, которая может использовать текстурный дискретизатор, воплощенный с помощью высокоуровневого языка построителя теней, иллюстрируется на фиг.2. В одном варианте осуществления трехмерная графическая программируемая магистраль 200 может содержать такие ступени, как блок 210 обработки входных данных, множество построителей теней, таких как вершинный построитель 220 теней, каркасный построитель 230 теней, доменный построитель 250 теней, геометрический построитель 260 теней и пиксельный построитель 270 теней, построитель 235 мозаики, блок 265 растеризации, миксер 275, текстурные дискретизаторы с 280-A до 280-K и память 290.
В одном варианте осуществления ступни программируемой магистрали могут генерировать графические данные для приложений реального времени, таких, например, как игры. В одном варианте осуществления ступень 200 магистрали может представлять ступень D3D11 прикладного программного интерфейса (API) DirectX, доступного от Microsoft® Corporation.
В одном варианте осуществления блок 210 обработки входных данных может генерировать блоки данных с помощью индексных данных и вершинных данных, хранящихся, соответственно, в буферах 290-A и 290-B памяти 290. В одном варианте осуществления вершинные данные могут представлять вершины треугольников, точки, линии и другие аналогичные данные. В одном варианте осуществления блок 210 обработки входных данных может подавать блоки данных в вершинный построитель 220 теней. В одном варианте осуществления блок 210 обработки входных данных может составлять геометрические данные, используя вершинные и индексные данные, хранящиеся в буферах 290-A и 290-B, перед подачей этих геометрических данных в вершинный построитель 220 теней и геометрический построитель 260 теней.
В одном варианте осуществления вершинный построитель 220 теней может обрабатывать вершины, которые принимаются из блока 210 обработки входных данных, с помощью текстурных выборок, генерируемых текстурными дискретизаторами с 280-A по 280-K. В одном варианте осуществления вершинный построитель 220 теней может использовать текстурные выборки, генерируемые одним или некоторыми или всеми текстурными дискретизаторами с 280-A по 280-K. В одном варианте осуществления вершинный построитель 220 теней может генерировать единственную выходную вершину, которую можно обрабатывать с помощью текстурных выборок после приема единственной входной вершины. В одном варианте осуществления вершинный построитель 220 теней может выполнять преобразования для получения специальных эффектов, таких как освещение и вуалирование, для входной вершины. В одном варианте осуществления вершинный построитель 220 теней может выполнять математические операции для изменения цвета, текстуры или положения входной вершины. В одном варианте осуществления вершинный построитель 220 теней может быть воплощен с помощью языков построителя теней, таких как язык ассемблера, язык С для графики (Cg), язык построителя теней OpenGL (GLSL) или высокоуровневый язык построителя теней (HLSL), либо любых иных языков построителя теней.
В одном варианте осуществления каркасный построитель 230 теней может принимать точки управления пятнами и может подготавливать эти точки управления пятнами для построителя 235 мозаики фиксированной функции. В одном варианте осуществления каркасный построитель 230 теней может принимать текстурные выборки из одного или нескольких текстурных дискретизаторов с 280-A по 280-K. В одном варианте осуществления каркасный построитель 230 теней может принимать текстурные выборки из текстурных дискретизаторов 280-A и 280-B. В одном варианте осуществления каркасный построитель 230 теней может быть воплощен с помощью языков построителя теней. В одном варианте осуществления построитель 230 мозаики может подразделять пятно на основе управляемых входов из каркасного построителя 230 теней и может пропускать результаты построения мозаики в доменный построитель 250 теней. В одном варианте осуществления доменный построитель 250 теней может манипулировать генерированными вершинами для согласования вершин с формой или выполнять отображение смещения с помощью входов из блока 235 построителя мозаики и текстурных выборок из одного или нескольких текстурных дискретизаторов с 280-A по 280-K. В одном варианте осуществления доменный построитель 250 теней может использовать текстурные выборки, поданные текстурным дискретизатором 280-B. В одном варианте осуществления доменный построитель 250 теней может подавать результаты в геометрический построитель 260 теней или блок 265 растеризации. В одном варианте осуществления доменный построитель 250 теней может быть воплощен с помощью высокоуровневых языков построителя теней.
В одном варианте осуществления геометрический построитель 260 теней может генерировать затененные примитивы в ответ на прием полных примитивов из вершинного построителя 220 теней или доменного построителя 250 теней и текстурных выборок, генерируемых одним или несколькими текстурными дискретизаторами с 280-A по 280-K. В одном варианте осуществления геометрический построитель 260 теней может принимать текстурные выборки, генерируемые текстурными дискретизаторами 280-A и 280-K. В одном варианте осуществления полные примитивы могут содержать множество вершин. В одном варианте осуществления геометрический построитель 260 теней может создавать ноль или более затененных примитивов в ответ на прием множества вершин и текстурных выборок в качестве входов.
В одном варианте осуществления множество вершин может содержать три вершины треугольника или две вершины линии, или единственная вершина точки вместе с информацией соседства в качестве входов и могут генерировать ноль или более затененных вершин в качестве выходов. В одном варианте осуществления геометрический построитель 260 теней может выполнять такие операции, как генерирование точечных полосок, построение геометрической мозаики и выдавливание теневого объема для генерирования затененных примитивов. В одном варианте осуществления геометрический построитель 260 теней может компилировать один или несколько текстурных дискретизаторов 280, а затем вызывать текстурные дискретизаторы с 280-A по 280-K для получения текстурных выборок из значений текстурных данных, хранящихся, например, в буфере 290-D. В одном варианте осуществления геометрический построитель 260 теней может программироваться с помощью языков ассемблера, Cg, HLSL и GLSL.
В одном варианте осуществления блок 265 растеризации может принимать вершины (векторную графическую информацию) из вершинного построителя 220 теней и геометрического построителя 260 теней и генерировать растровое изображение, которое может включать в себя пикселы или точки, которые можно отображать на дисплейном устройстве. В одном варианте осуществления блок 265 растеризации может выполнять такие методы растеризации, как трансформации, отсечение, сканирующее преобразование, отбраковка, текстурная фильтрация и другие методы. В одном варианте осуществления блок 265 растеризации может подавать пикселы в пиксельный построитель 270 теней для обработки растрового изображения.
В одном варианте осуществления пиксельный построитель 270 теней может выполнять обширные методы оттенения на растровом изображении для генерирования попиксельных выходов. В одном варианте осуществления пиксельный построитель 270 теней может выполнять такие методы, как попиксельное освещение и связанные с ним эффекты, такие как отображение шероховатости, цветовое тонирование, тени, отражающие высвечивания и прозрачность для получения живых и более реалистичных изображений. В одном варианте осуществления пиксельный построитель 270 теней может быть запрограммирован с помощью языков ассемблера, Cg, HLSL и GLSL, либо других подобных языков. В одном варианте осуществления пиксельный построитель 270 теней может принимать пиксельные данные из блока 265 растеризации и текстурные выборки из одного или нескольких текстурных дискретизаторов с 280-A по 280-K перед генерированием эффектов затенения. В одном варианте осуществления пиксельный построитель 270 теней может принимать текстурные выборки из текстурных дискретизаторов с 280-A по 280-K. В одном варианте осуществления пиксельный построитель 270 теней может принимать значения текстурных данных непосредственно также из буфера 290-F. В одном варианте осуществления выход пиксельного построителя 270 теней может подаваться в миксер 275 для дальнейшей обработки.
В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут дискретизировать значения текстурных данных, хранящиеся в текстурных буферах 290-С, 290-D и 290-F и других буферах. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут быть воплощены с помощью языка построителя теней, использованного для воплощения построителей 220, 230, 250, 260 и 270 теней. Такой подход может обеспечить воплощение сложной функции дискретизации текстуры как части программного кода, что может согласовываться с состоянием дискретизатора. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут быть реализованы с помощью высокоуровневых языков построителя теней во время автономной фазы. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут компилироваться с помощью компилятора построителей теней во время подготовительной фазы для генерирования двоичного файла дискретизатора, реализованного с помощью языка построителя теней. В одном варианте осуществления один или несколько двоичных файлов текстурных дискретизаторов могут быть вызваны построителями 220, 230, 250, 260 и 270 теней, когда задействуются построители 220-270 теней. В одном варианте осуществления один или несколько текстурных дискретизаторов с 280-A по 280-K могут компилироваться во время создания построителей 220, 230, 250, 260 и 270 теней, во время создания ортогонального объекта состояния дискретизатора или по запросу в более поздний момент времени после фазы создания.
В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут выполнять операции, такие как разделение уровней детализации (LOD), нахождение выборок, разделение тексельных адресов, вызов выборок и поглощение выборок. В одном варианте осуществления операции текстурных дискретизаторов с 280-A по 280-K могут быть воплощены с помощью языка построителя теней. В одном варианте осуществления разделение уровней детализации может определять MIP-отображения, которые идентифицируют область, из которой должны выбираться выборки. В одном варианте осуществления разделение тексельных адресов может определять местоположение, из которого должны вызываться выборки. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут поддерживать методы дискретизации, такие как точечная дискретизация, билинейная дискретизация, трилинейная дискретизация и анизотропная фильтрация. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K, воплощенные с помощью языка построителя теней для согласования с состоянием дискретизатора в построителях 220-270 теней, могут улучшать скорость работы текстурной дискретизации по сравнению с текстурным дискретизатором, воплощенным с помощью многофункционального программного обеспечения на основе метода текстурной дискретизации.
В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут использоваться для подачи текстурных выборок в вершинный построитель 220 теней, каркасный построитель 230 теней, доменный построитель 250 теней, геометрический построитель 260 теней и пиксельный построитель 270 теней. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K, воплощенные с помощью языка построителя теней, могут компилироваться во время создания вершинного построителя 220 теней или во время создания объекта состояния дискретизатора. В одном варианте осуществления текстурные дискретизаторы 280-A, 280-B и 280-K могут вызываться вершинным построителем 220 теней, когда задействуется вершинный построитель 220 теней. В одном варианте осуществления текстурные дискретизаторы 280-A и 280-B могут вызываться каркасным построителем 230 теней, когда задействуется каркасный построитель 230 теней. В одном варианте осуществления текстурный дискретизатор 280-B может вызываться доменным построителем 250 теней, когда задействуется доменный построитель 250 теней. В одном варианте осуществления текстурные дискретизаторы 280-B и 280-K могут вызываться геометрическим построителем 260 теней, когда задействуется геометрический построитель 260 теней, и текстурные дискретизаторы 280-B и 280-K могут вызываться пиксельным построителем 270 теней, когда задействуется пиксельный построитель 270 теней.
Такой подход может обеспечить воплощение сложной функции дискретизации текстуры как части программного кода, что может согласовываться с состоянием построителей 220, 230, 250, 260 и 270 теней, или согласовываться с ортогональным состоянием дискретизатора. В одном варианте осуществления текстурные дискретизаторы 280, воплощенные с помощью языка построителя теней для согласования с состоянием дискретизатора построителей 220, 230, 250, 260 и (или) 270 теней, могут улучшать скорость операции в коэффициент N раз по сравнению с текстурным дискретизатором, воплощенным с помощью многофункционального программного обеспечения на основе метода текстурной дискретизации. В одном варианте осуществления текстурные дискретизаторы 280, воплощенные с помощью языка построителя теней, могут улучшать производительность в N=KX раз по сравнению с производительностью многофункционального программного обеспечения на основе метода текстурной дискретизации, причем Х и K имеют положительное целое значение.
Блок-схема 300 алгоритма, показывающая текстурные дискретизаторы 280, реализованные с помощью высокоуровневого языка построителя теней, иллюстрируется на фиг.3. В блоке 310 текстурные дискретизаторы с 280-A по 280-K могут генерироваться с помощью языка построителя теней. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут разрабатываться с помощью языков построителя теней, таких как ассемблер, Cg, HLSL и GLSL. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут генерироваться автономно, например, при разработке модуля драйвера.
В блоке 320 построители теней-дискретизаторы, использованные для генерирования текстурных дискретизаторов с 280-A по 280-K, могут компилироваться во время создания объекта состояния дискретизатора. В другом варианте осуществления построители теней-дискретизаторы могут создаваться по запросу. В одном варианте осуществления конкретная операция дискретизации может создаваться по запросу, если эта операция дискретизации может потребоваться, например, для выведения команды.
В блоке 330 текстурные дискретизаторы с 280-A по 280-K могут компилироваться в целевой машинный код с помощью высокоуровневого компилятора построителя теней. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут компилироваться в целевой машинный код с помощью целевого машинного компилятора. В одном варианте осуществления текстурные дискретизаторы 280-A, 280-B и 280-K могут компилироваться в целевой машинный код с помощью высокоуровневого компилятора построителя теней. Аналогично, один или несколько текстурных дискретизаторов с 280-A по 280-K могут компилироваться в целевой машинный код с помощью высокоуровневых компиляторов построителя теней для построителей 230-270 теней.
В блоке 340 могут вызываться построители 220-270 теней. В одном варианте осуществления могут вызываться такие построители теней, как вершинный построитель 220 теней, каркасный построитель 230 теней, доменный построитель 250 теней, геометрический построитель 260 теней и пиксельный построитель 270 теней.
В блоке 360 один или несколько текстурных дискретизаторов с 280-A по 280-K могут вызываться построителем теней. В одном варианте осуществления текстурные дискретизаторы 280-A, 280-B и 280-K в ответ на вызов от вершинного построителя 220 теней могут выполнять операцию дискретизации и могут генерировать текстурные выборки. В одном варианте осуществления каркасный построитель 230 теней может вызывать текстурные дискретизаторы 280-A и 280-B, доменный построитель 250 теней может вызывать текстурный дискретизатор 280-B, геометрический построитель 260 теней может вызывать текстурные дискретизаторы 280-A и 280-K, а пиксельный построитель 270 теней может вызывать текстурные дискретизаторы 280-B и 280-K.
В блоке 380 текстурные дискретизаторы с 280-A по 280-K могут генерировать текстурные выборки с помощью текстурных данных, хранящихся в текстурных буферах в памяти 190. В одном варианте осуществления текстурный дискретизатор 280-A может выполнять операцию дискретизации для генерирования текстурных выборок с помощью текстурных данных, хранящихся в одном или нескольких текстурных буферах, например, с 290-С по 290-F. В одном варианте осуществления текстурный дискретизатор 280-B может выполнять операцию дискретизации для генерирования текстурных выборок с помощью текстурных данных, хранящихся в текстурном буфере 290-D, и может подавать эти текстурные выборки в пиксельный построитель 270 теней.
В блоке 390 текстурные выборки, генерируемые текстурными дискретизаторами с 280-A по 280-K, могут использоваться построителями 220-270 теней для создания теневого эффекта на графических элементах. В одном варианте осуществления вершинный построитель 220 теней принимает единственное вершинное значение и создает теневой эффект на вершине. В одном варианте осуществления геометрический построитель 260 теней может принимать полные примитивы и может создавать теневой эффект на полных примитивах. В одном варианте осуществления пиксельный построитель 270 теней может генерировать теневой эффект на пикселах или точках (или растровом изображении).
Вариант осуществления блок-схемы 400 алгоритма, показывающего генерирование и использование текстурных выборок, воплощенных с помощью высокоуровневого языка построителя теней, иллюстрируется на фиг.4. В одном варианте осуществления блок-схема 400 алгоритма показывает три стадии: стадию 401, стадию 411 и стадию 481. В одном варианте осуществления стадия 401 может представлять автономную фазу, стадия 411 может представлять подготовительную фазу, а стадия 481 может представлять фазу отображения.
В одном варианте осуществления стадия 401 может содержать блок 410 генерирования текстурных дискретизаторов. В одном варианте осуществления блок 410 генерирования текстурных дискретизаторов может относиться к генерированию таких текстурных дискретизаторов, как текстурные дискретизаторы с 280-A по 280-K, которые можно генерировать автономно и с помощью высокоуровневого языка построителя теней, такого как Cg, HLSL или GLSL, как описано в блоке 310.
В одном варианте осуществления стадия 411 может содержать блок 415 состояния дискретизаторов, блок 420 создания дискретизаторов, блок 445 компилятора построителей теней, блок 450 компилирования дискретизаторов и блок 470 двоичного файла дискретизаторов-построителей теней (SS-BIN). В одном варианте осуществления блок 415 состояния дискретизаторов может представлять значения входных данных. В одном варианте осуществления значения входных данных блока 415 могут определять операцию дискретизации, выполняемую текстурным дискретизатором блока 410. Блок 420 показывает блок создания текстурного дискретизатора, который создает такой текстурный дискретизатор, как с 280-А по 280-K в ответ на прием кода текстурного дискретизатора из блока 410 и значений входных данных из блока 415.
Блок 445 показывает блок компилятора построителей теней, который может извлекать язык построителя теней текстурного дискретизатора на абстрактном уровне и компилировать код текстурного дискретизатора в другой уровень абстракции. В одном варианте осуществления блок 445 компилятора построителей теней может извлекать код текстурного дискретизатора из блока 420 создания текстурных дискретизаторов и может задавать компиляцию кода текстурных дискретизаторов, как показано в блоке 450 компилирования дискретизаторов-построителей теней.
В одном варианте осуществления в блоке 420 код текстурного дискретизатора может создаваться с помощью высокоуровневого языка построителя теней, и блок 450 компилирования дискретизаторов-построителей теней может компилировать код текстурного дискретизатора и генерировать промежуточный код, такой как код языка ассемблера. В одном варианте осуществления блок 450 компилирования дискретизаторов-построителей теней может далее содержать машинно-ориентированный компилятор построителей теней, такой как графический компилятор построителей теней или компилятор построителей теней центрального процессора (CPU), который может компилировать промежуточный код на языке ассемблера в машинно-ориентированный код. В одном варианте осуществления блок графической обработки или центральный процессор могут поддерживать исполнение этого машинно-ориентированного кода.
Блок 470 показывает двоичный файл дискретизаторов-построителей теней (SS-BIN), который можно создать в результате компилирования, выполняемого блоком 450. В одном варианте осуществления двоичный файл дискретизаторов-построителей теней (SS-BIN) может использоваться построителями теней в фазе отображения.
В дном варианте осуществления стадия 481 может представлять фазу отображения, в которой графические элементы, такие как вершины и полные примитивы, отображаются на дисплейных устройствах после того, как построители теней обеспечивают эффект затенения для графических элементов. В одном варианте осуществления стадия 481 может содержать блок 485 задействования построителей теней, блок 490 исполнения построителей теней и блок 495 вызова SS-BIN. В одном варианте осуществления блок 485 задействования построителей теней может задействовать построители теней, такие как вершинный построитель 220 теней, каркасный построитель 230 теней, доменный построитель 250 теней, геометрический построитель 260 теней и пиксельный построитель 270 теней, как показано а блоке 340.
В одном варианте осуществления блок 490 исполнения построителей теней может заставлять исполняться двоичные файлы построителей 220-270 теней. В одном варианте осуществления блок графической обработки может поддерживать исполнение двоичных файлов построителей 220-270 теней. В одном варианте осуществления блок 495 вызова SS-BIN может вызывать двоичные файлы одного или нескольких текстурных дискретизаторов с 280-A по 280-K. В одном варианте осуществления, если блок 490 может исполнять вершинный построитель 220 теней, блок 495 может вызывать SS-BIN текстурных дискретизаторов 280-A, 280-B и 280-K. В одном варианте осуществления, если блок 490 может исполнять каркасный построитель 230 теней, блок 495 может вызывать SS-BIN текстурных дискретизаторов 280-A и 280-B. В одном варианте осуществления, если блок 490 может исполнять доменный построитель 250 теней, блок 495 может вызывать SS-BIN текстурного дискретизатора 280-B. В одном варианте осуществления, если блок 490 может исполнять геометрический построитель 260 теней, блок 495 может вызывать SS-BIN текстурных дискретизаторов 280-A и 280-K. В одном варианте осуществления, если блок 490 может исполнять пиксельный построитель 270 теней, блок 495 может вызывать SS-BIN текстурных дискретизаторов 280-B и 280-K.
В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K в ответ на прием вызова от построителей 220-270 теней могут выполнять операцию текстурной дискретизации на текстурных данных и могут генерировать текстурные выборки. В одном варианте осуществления эти текстурные выборки могут использоваться построителями теней для создания эффекта затенения на графических элементах.
На фиг.5 компьютерная система 500 может включать в себя универсальный процессор 502, включающий в себя процессор с одним потоком команд и множеством потоков данных (SIMD) и графический процессор (GPU) 505. Процессор 502 в одном варианте осуществления может выполнять операции расширения в дополнение к выполнению разнообразных других задач или хранить последовательность команд для обеспечения операций расширения в машиночитаемом носителе 525 данных. Однако эту последовательность команд можно также хранить в памяти 520 или на другом подходящем носителе данных. В одном варианте осуществления графический прикладной программный интерфейс (GPI) 510 может поддерживаться процессором 502 или GPU 505.
Хотя на фиг.5 показан отдельный графический процессор (GPU) 505, в некоторых вариантах осуществления, в качестве другого примера, для выполнения операций расширения может использоваться процессор 502. Процессор 502, который осуществляет работу компьютерной системы 500, может представлять собой одно или несколько процессорных ядер, связанных с логикой 530. Логика 530 может быть связана с одним или несколькими устройствами 560 ввода-вывода, которые могут обеспечивать интерфейс компьютерной системе 500. Логика 530, например, может быть в одном варианте осуществления логикой набора микросхем. Логика 530 связана с памятью, которая может быть любым видом памяти, в том числе оптической, магнитной или полупроводниковой памятью. Графический процессор 505 связан через кадровый буфер с дисплеем 540.
В одном варианте осуществления графический прикладной программный интерфейс (GPI) 510 может предусматриваться в процессоре 502. Однако в других вариантах осуществления графический прикладной программный интерфейс (GPI) 510 может предусматриваться (показан пунктирной линией) в GPU 505. В одном варианте осуществления GPI 510 может поддерживать трехмерную магистраль и может реализовывать текстурные выборки с помощью высокоуровневого языка построителя теней. В одном варианте осуществления GPI 510 может реализовывать текстурные дискретизаторы с 280-A по 280-K автономно и с помощью высокоуровневых языков построителя теней, и реализованные таким образом текстурные дискретизаторы с 280-A по 280-K могут компилироваться на основе целевой машины. В одном варианте осуществления текстурные дискретизаторы с 280-A по 280-K могут вызываться одним или несколькими построителями 220-270 теней для получения текстурных выборок. В одном варианте осуществления построители 220-270 теней могут использовать текстурные выборки,
Описанные здесь методы графической обработки могут быть воплощены в различных аппаратных архитектурах. Например, графические функции могут быть встроены в набор микросхем. Альтернативно, можно использовать отдельный графический процессор. В качестве еще одного варианта осуществления графические функции могут быть воплощены универсальным процессором, включая многоядерный процессор, или как набор программных команд, хранящихся на машиночитаемом носителе.

Claims (26)

1. Способ выполнения текстурной дискретизации, содержащий этапы, на которых: реализуют текстурный дискретизатор с помощью языка построителя теней; генерируют двоичный код текстурного дискретизатора путем компилирования текстурной выборки для целевой машины на основе входных значений, поданных текстурным дискретизатором; вызывают двоичный код текстурного дискретизатора из по меньшей мере одного построителя теней из множества построителей теней, когда задействуется первый построитель теней; и генерируют эффекты затенения на графических элементах с помощью первого набора выборок, генерируемых текстурным дискретизатором, когда этот текстурный дискретизатор вызывается первым построителем теней и вторым построителем теней, при этом графические элементы содержат вершины линии и треугольника.
2. Способ по п.1, содержащий далее этапы, на которых: вызывают двоичный код текстурного дискретизатора из по меньшей мере второго построителя теней из множества построителей теней, когда задействуется второй построитель теней; и генерируют эффекты затенения на графических элементах с помощью второго набора выборок, генерируемых текстурным дискретизатором, когда этот текстурный дискретизатор вызывается вторым построителем теней.
3. Способ по п.1, в котором реализацию текстурного дискретизатора с помощью языка построителя теней выполняют в автономной фазе перед подготовительной фазой.
4. Способ по п.3, содержащий далее этап, на котором создают текстурный дискретизатор на основе кода текстурного дискретизатора, реализованного автономно, и входных значений состояния дискретизатора в подготовительной фазе, при этом входные значения состояния дискретизатора определяют операции дискретизации, выполняемые текстурным дискретизатором.
5. Способ по п.4, в котором компилирование текстурного дискретизатора для целевой машины содержит этапы, на которых:
генерируют код промежуточного языка из текстурного дискретизатора, реализованного на языке построителя теней с помощью компилятора построителя теней; и генерируют код машинного уровня из промежуточного языка с помощью машинно-ориентированного компилятора построителя теней.
6. Способ по п.5, в котором язык построителя теней является высокоуровневым языком, а промежуточный язык является языком уровня ассемблера.
7. Способ по п.1, содержащий далее этап, на котором вызывают двоичный код текстурного дискретизатора из первого построителя теней, когда первый построитель теней исполняется в фазе отображения.
8. Способ по п.1, содержащий далее этап, на котором вызывают двоичный код текстурного дискретизатора из второго построителя теней, когда второй построитель теней исполняется в фазе отображения.
9. Способ по п.1, содержащий далее этап, на котором связывают первый текстурный дискретизатор с первым построителем теней и вторым построителем теней, при этом первый текстурный дискретизатор служит для генерирования выборок для первого построителя теней и второго построителя теней.
10. Машиночитаемый носитель данных, содержащий множество команд, которые в ответ на исполнение в процессоре приводят к этапам, на которых: реализуют текстурный дискретизатор с помощью языка построителя теней; генерируют двоичный код текстурного дискретизатора путем компилирования текстурной выборки для целевой машины на основе состояния дискретизатора и операции дискретизатора; вызывают двоичный код текстурного дискретизатора из по меньшей мере одного построителя теней из множества построителей теней, когда задействуется первый построитель теней; и генерируют эффекты затенения на графических элементах с помощью первого набора выборок, генерируемых текстурным дискретизатором, когда этот текстурный дискретизатор вызывается первым построителем теней, при этом графические элементы содержат вершины линии и треугольника.
11. Машиночитаемый носитель данных по п.10, содержащий далее этапы, на которых: вызывают двоичный код текстурного дискретизатора из по меньшей мере второго построителя теней из множества построителей теней, когда задействуется второй построитель теней; и генерируют эффекты затенения на графических элементах с помощью второго набора выборок, генерируемых текстурным дискретизатором, когда этот текстурный дискретизатор вызывается вторым построителем теней.
12. Машиночитаемый носитель данных по п.11, в котором реализацию текстурного дискретизатора с помощью языка построителя теней выполняют в автономной фазе перед подготовительной фазой.
13. Машиночитаемый носитель данных по п.12, содержащий далее этап, на котором создают текстурный дискретизатор на основе кода текстурного дискретизатора, реализованного автономно, и входных значений состояния дискретизатора в подготовительной фазе, при этом входные значения состояния дискретизатора определяют операции дискретизации, выполняемые текстурным дискретизатором.
14. Машиночитаемый носитель данных по п.13, в котором компилирование текстурного дискретизатора для целевой машины содержит этапы, на которых:
генерируют код промежуточного языка из текстурного дискретизатора, реализованного на языке построителя теней с помощью компилятора построителя теней; и генерируют код машинного уровня из промежуточного языка с помощью машинно-ориентированного компилятора построителя теней.
15. Машиночитаемый носитель данных по п.14, в котором язык построителя теней является высокоуровневым языком, а промежуточный язык является языком уровня ассемблера.
16. Машиночитаемый носитель данных по п.10, содержащий далее этап, на котором вызывают двоичный код текстурного дискретизатора из первого построителя теней, когда первый построитель теней исполняется в фазе отображения.
17. Машиночитаемый носитель данных по п.10, содержащий далее этап, на котором вызывают двоичный код текстурного дискретизатора из второго построителя теней, когда второй построитель теней исполняется в фазе отображения.
18. Машиночитаемый носитель данных по п.10, содержащий далее этап, на котором связывают первый текстурный дискретизатор с первым построителем теней и вторым построителем теней, при этом первый текстурный дискретизатор служит для генерирования выборок для первого построителя теней и второго построителя теней.
19. Система выполнения структурной дискретизации, содержащая:
процессор, причем процессор служит для поддержания множества графических приложений и одного или нескольких графических прикладных программных интерфейсов; графический процессор; и память, связанную с процессором и графическим процессором; при этом графический прикладной программный интерфейс служит для содержания одного или нескольких текстурных дискретизаторов, реализованных с помощью языка построителя теней;
двоичный код текстурного дискретизатора генерируется путем компилирования текстурного дискретизатора для целевой машины на основе состояния дискретизатора и операции дискретизатора; двоичный код текстурного дискретизатора вызывается из первого построителя теней, когда задействуется первый построитель теней; и эффекты затенения генерируются на графических элементах с помощью первого набора выборок, генерируемых текстурным дискретизатором, когда текстурный дискретизатор вызывается первым построителем теней, причем графические элементы содержат вершины линии и треугольника.
20. Система по п.19, в которой память содержит один или несколько буферов для хранения текстурных данных, при этом один или несколько текстурных дискретизаторов извлекают значения данных из одного или нескольких буферов и генерируют текстурные выборки.
21. Система по п.19, в которой текстурный дискретизатор, реализованный с помощью языка построителя теней, выполняется в автономной фазе перед подготовительной фазой.
22. Система по п.21, в которой текстурный дискретизатор создается на основе кода текстурного дискретизатора, реализованного автономно, и входных значений состояния дискретизатора в подготовительной фазе, причем входные значения состояния дискретизатора определяют операции дискретизации, выполняемые текстурным дискретизатором.
23. Система по п.22, в которой компилирование текстурного дискретизатора для целевой машины содержит этапы, на которых:
генерируют код промежуточного языка из текстурного дискретизатора, реализованного на языке построителя теней с помощью компилятора построителя теней; и генерируют код машинного уровня из промежуточного языка с помощью машинно-ориентированного компилятора построителя теней; при этом язык построителя теней является высокоуровневым языком, а промежуточный язык является языком уровня ассемблера.
24. Система по п.18, содержащая далее: вызов двоичного кода текстурного дискретизатора из первого построителя теней, когда первый построитель теней исполняется в фазе отображения; и вызов двоичного кода текстурного дискретизатора из второго построителя теней, когда второй построитель теней исполняется в фазе отображения.
25. Система по п.19, содержащая далее связывание: первого текстурного дискретизатора и третьего текстурного дискретизатора со вторым построителем теней, при этом первый текстурный дискретизатор служит для генерирования выборок для первого построителя теней и второго построителя теней, второй текстурный дискретизатор служит для генерирования выборок для первого построителя теней, а третий текстурный дискретизатор служит для генерирования выборок для второго построителя теней.
26. Система по п.19, в которой графический процессор служит для поддержания графического прикладного программного интерфейса; при этом графический прикладной программный интерфейс служит для содержания графической программируемой магистрали, а графическая программируемая магистраль содержит далее множество построителей теней и один или несколько текстурных дискретизаторов, реализованных с помощью языка построителя теней; двоичный код текстурного дискретизатора вызывается из одного или нескольких текстурных дискретизаторов, генерируемых путем компилирования одного или нескольких текстурных дискретизаторов для целевой машины на основе входных значений, поданных в один или несколько текстурных дискретизаторов; двоичный код текстурного дискретизатора вызывается из по меньшей мере одного из множества построителей теней, когда задействуется по меньшей мере один из множества построителей теней; и один или несколько текстурных дискретизаторов служат для генерирования текстурных выборок, когда один или несколько текстурных дискретизаторов вызываются по меньшей мере одним из множества построителей теней, причем по меньшей мере один из множества текстурных дискретизаторов служит для использования текстурных выборок для генерирования эффектов затенения на графических элементах, а графические элементы содержат вершины линии и треугольника и точки.
RU2010126453/08A 2009-06-29 2010-06-28 Текстурная дискретизация RU2459260C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/493,900 2009-06-29
US12/493,900 US8289341B2 (en) 2009-06-29 2009-06-29 Texture sampling

Publications (2)

Publication Number Publication Date
RU2010126453A RU2010126453A (ru) 2012-01-10
RU2459260C2 true RU2459260C2 (ru) 2012-08-20

Family

ID=42334694

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010126453/08A RU2459260C2 (ru) 2009-06-29 2010-06-28 Текстурная дискретизация

Country Status (6)

Country Link
US (1) US8289341B2 (ru)
CN (2) CN103489213B (ru)
DE (1) DE102010025310A1 (ru)
GB (1) GB2471926B (ru)
RU (1) RU2459260C2 (ru)
TW (1) TWI443599B (ru)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8289341B2 (en) * 2009-06-29 2012-10-16 Intel Corporation Texture sampling
US8633928B2 (en) * 2009-08-13 2014-01-21 Intel Corporation Reducing the bandwidth of sampler loads in shaders
US8917271B2 (en) * 2009-10-05 2014-12-23 Nvidia Corporation Redistribution of generated geometric primitives
US9619918B2 (en) * 2011-04-28 2017-04-11 Digital Media Professionals Inc. Heterogenious 3D graphics processor and configuration method thereof
US10559123B2 (en) * 2012-04-04 2020-02-11 Qualcomm Incorporated Patched shading in graphics processing
US9235926B2 (en) * 2012-12-24 2016-01-12 Intel Corporation Techniques for improving MSAA rendering efficiency
US9569883B2 (en) 2013-12-12 2017-02-14 Intel Corporation Decoupled shading pipeline
US20170178278A1 (en) * 2014-07-10 2017-06-22 Intel Corporation Method and apparatus for updating a shader program based on current state
US10089775B2 (en) * 2015-06-04 2018-10-02 Samsung Electronics Co., Ltd. Automated graphics and compute tile interleave
US10235778B2 (en) 2016-03-25 2019-03-19 Microsoft Technology Licensing, Llc GPU-accelerated pencil ink effect rendering
US10559056B2 (en) * 2017-06-12 2020-02-11 Arm Limited Graphics processing
CN108010095B (zh) * 2017-11-14 2021-06-04 创新先进技术有限公司 一种纹理合成的方法、装置及设备
CN108648252A (zh) * 2018-05-17 2018-10-12 成都明镜视觉科技有限公司 一种骨骼动画兼容处理方法
US11037356B2 (en) 2018-09-24 2021-06-15 Zignal Labs, Inc. System and method for executing non-graphical algorithms on a GPU (graphics processing unit)
CN109785417B (zh) * 2018-11-29 2023-06-09 武汉凌久微电子有限公司 一种实现OpenGL累积操作的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2324978C2 (ru) * 2002-06-20 2008-05-20 Майкрософт Корпорейшн Системы и способы для обеспечения управляемой дискретизации текстуры
RU2337402C2 (ru) * 2002-07-16 2008-10-27 Майкрософт Корпорейшн Системы и способы обеспечения промежуточных адресатов в графической системе

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6130674A (en) * 1997-03-31 2000-10-10 Cirrus Logic, Inc. Dynamically selectable texture filter for computer graphics
US7733347B2 (en) * 2004-11-05 2010-06-08 Microsoft Corporation Automated construction of shader programs
US7800620B2 (en) * 2004-11-05 2010-09-21 Microsoft Corporation Optimizing automated shader program construction
US7782334B1 (en) * 2005-09-13 2010-08-24 Nvidia Corporation Pixel shader-based data array resizing
CN1928918B (zh) * 2005-10-14 2012-10-10 威盛电子股份有限公司 图形处理装置及于图形处理装置中执行着色操作的方法
US20070091088A1 (en) * 2005-10-14 2007-04-26 Via Technologies, Inc. System and method for managing the computation of graphics shading operations
US20080024510A1 (en) * 2006-07-27 2008-01-31 Via Technologies, Inc. Texture engine, graphics processing unit and video processing method thereof
US7859548B1 (en) * 2006-10-19 2010-12-28 Nvidia Corporation Offloading cube map calculations to a shader
US20080094408A1 (en) * 2006-10-24 2008-04-24 Xiaoqin Yin System and Method for Geometry Graphics Processing
US7623136B1 (en) 2006-12-05 2009-11-24 Nvidia Corporation Method and system for processing texture samples with programmable filter weights
US8355021B2 (en) 2007-05-17 2013-01-15 Siemens Aktiengesellschaft Fused volume rendering
US8495602B2 (en) * 2007-09-28 2013-07-23 Qualcomm Incorporated Shader compile system and method
US8174534B2 (en) * 2007-12-06 2012-05-08 Via Technologies, Inc. Shader processing systems and methods
US8289341B2 (en) 2009-06-29 2012-10-16 Intel Corporation Texture sampling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2324978C2 (ru) * 2002-06-20 2008-05-20 Майкрософт Корпорейшн Системы и способы для обеспечения управляемой дискретизации текстуры
RU2337402C2 (ru) * 2002-07-16 2008-10-27 Майкрософт Корпорейшн Системы и способы обеспечения промежуточных адресатов в графической системе

Also Published As

Publication number Publication date
TW201126450A (en) 2011-08-01
US8289341B2 (en) 2012-10-16
CN101937556A (zh) 2011-01-05
GB201007971D0 (en) 2010-06-30
RU2010126453A (ru) 2012-01-10
GB2471926B (en) 2011-12-28
US20100328309A1 (en) 2010-12-30
CN103489213A (zh) 2014-01-01
CN101937556B (zh) 2013-09-18
TWI443599B (zh) 2014-07-01
CN103489213B (zh) 2016-08-17
GB2471926A (en) 2011-01-19
DE102010025310A1 (de) 2011-02-03

Similar Documents

Publication Publication Date Title
RU2459260C2 (ru) Текстурная дискретизация
US9978115B2 (en) Sprite graphics rendering system
US7750913B1 (en) System and method for implementing graphics processing unit shader programs using snippets
US9495722B2 (en) Developer controlled layout
JP6918919B2 (ja) 自動的にコンパイルされたコンピュートシェーダを用いるプリミティブカリング
KR102617106B1 (ko) 데이터 처리 시스템
CN109564694B (zh) 用于基于入库的图形处理的顶点着色器
TWI632524B (zh) 以邊緣爲基礎之覆蓋遮罩壓縮技術
KR20210095914A (ko) 가변 레이트 셰이딩과 슈퍼 샘플 셰이딩의 통합
US8907979B2 (en) Fast rendering of knockout groups using a depth buffer of a graphics processing unit
US7852341B1 (en) Method and system for patching instructions in a shader for a 3-D graphics pipeline
KR20210002753A (ko) 그래픽 파이프라인의 메모리 사용 감소를 위한 컴파일러 지원 기술
Angel et al. An interactive introduction to WEBGL and three. JS
CN113838180A (zh) 一种渲染指令处理方法及其相关设备
TW201724010A (zh) 對於具有較寬單指令多資料(simd)執行寬度之3d管線增加執行緒酬載的技術
CN116863052A (zh) 基于分布式操作系统绘制地图的方法及装置
US11107264B2 (en) Graphics processing systems for determining blending operations
US10062140B2 (en) Graphics processing systems
CN118761898A (zh) 图形系统和相应地图形处理方法
Angel et al. Getting started with webGL and three. js
US20240104685A1 (en) Device and method of implementing subpass interleaving of tiled image rendering
Kuo et al. The design of LLVM-based shader compiler for embedded architecture
US9218691B1 (en) System and method for enabling scene program functionality
KR100696198B1 (ko) 프로그래밍 가능한 쉐이더 기반의 그래픽 연산을 지원하는임베디드 시스템
Brumme The OpenGL Shading Language

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20180629