системы и способы для обеспечения управляемой дискретизации текстуры

Классы МПК:G06T11/40 заполнение плоской поверхности, те добавление цвета или текстуры
Автор(ы):,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2003-04-11
публикация патента:

Изобретение относится к системам и способам обеспечения дискретизации текстуры применительно к компьютерной графике. Технический результат заключается в обеспечении собственно управляемой дискретизации структуры. Согласно различным вариантам осуществления, предусмотрены усовершенствованные механизмы управления дискретизацией текстуры, которые позволяют аппаратному ускорителю трехмерной графики значительно повысить уровень реализма при визуализации, в том числе усовершенствованные механизмы для (1) размывания движущихся объектов; (2) генерации анизотропных отражений от поверхности; (3) генерации самозатенения поверхности; (4) объемной дискретизации с отсечением лучей; (5) объемной визуализации с самозатенением и (6) объемного отсечения лучей с самозатенением. В отличие от существующих способов дискретизации текстуры, параметры дискретизации текстуры можно заменять и/или модифицировать. 6 н. и 65 з.п. ф-лы, 10 ил. системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978

системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978

Формула изобретения

1. Способ обеспечения управляемой дискретизации текстуры, содержащий этапы, на которых

задают по меньшей мере один параметр, определяющий область дискретизации, для применения на этапе текстурной дискретизации текстурной карты, и

осуществляют текстурную дискретизацию текстурной карты в соответствии с заданными параметрами, определяющими область дискретизации.

2. Способ по п.1, отличающийся тем, что на этапе задания выполняют, по меньшей мере, одну из операций:

(1) модифицируют по меньшей мере один стандартный параметр, посредством задания по меньшей мере одного значения смещения для упомянутого по меньшей мере одного стандартного параметра и (2) заменяют по меньшей мере один стандартный параметр по меньшей мере одним параметром замены.

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

4. Способ по п.1, отличающийся тем, что область дискретизации получают посредством по меньшей мере одного из: процесса точечной дискретизации, процесса билинейной фильтрации, процесса MIP-отображения, процесса анизотропной фильтрации и процесса устранения ступенчатости.

5. Способ по п.1, отличающийся тем, что этап задания включает в себя задание упомянутого по меньшей мере одного параметра на по меньшей мере одной из повершинной и попиксельной основе применительно к текстурной дискретизации.

6. Способ по п.5, отличающийся тем, что этап текстурной дискретизации применяют итерационно.

7. Способ по п.1, отличающийся тем, что на этапе задания задают по меньшей мере одно из длины шага и ориентации области дискретизации.

8. Способ по п.5, отличающийся тем, что на этапе задания выполняют по меньшей мере одну из операций: задают промежуток du между выборками в направлении u, и задают промежуток dv между выборками в направлении v.

9. Способ по п.5, отличающийся тем, что на этапе задания задают 3-х мерную дискретизацию вектора направления, имеющего ориентацию и длину шага, определенные по меньшей мере одним из значений системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u, системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 w.

10. Способ по п.1, отличающийся тем, что на этапе задания задают одно из значений системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 a и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 b, используемых при расчете билинейной фильтрации.

11. Способ по п.1, отличающийся тем, что область дискретизации является областью дискретизации, полученной посредством анизотропной фильтрации.

12. Способ по п.11, отличающийся тем, что по меньшей мере один параметр включает в себя по меньшей мере одно из направления и шага выборок ядра анизотропного фильтра.

13. Способ по п.1, отличающийся тем, что текстурная дискретизация текстурной карты в соответствии с заданными параметрами изменяет по меньшей мере один визуальный эффект пиксельного пространства, полученный в результате дискретизации текстуры, и упомянутый по меньшей мере один визуальный эффект включает в себя по меньшей мере один из эффектов: размывание, блочность, плавание текстуры, выпадение пикселей, временную ступенчатость, мерцание текстуры, неоднородность текстуры и полошение.

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

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

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

17. Способ по п.1, отличающийся тем, что этап задания по меньшей мере одного параметра, определяющего область дискретизации, включает в себя задание по меньшей мере одного параметра, определяющего область дискретизации, который обеспечивает применение самозатенения поверхности, и дополнительно включает в себя применение попиксельного задания направления дискретизации области дискретизации.

18. Способ по п.17, отличающийся тем, что на этапе задания дополнительно задают управляющие параметры для расчетов производных согласно отображения горизонта по методу Нельсона Макса.

19. Способ по п.1, отличающийся тем, что этап задания по меньшей мере одного параметра, определяющего область дискретизации, включает в себя задание по меньшей мере одного параметра, определяющего область дискретизации, который обеспечивает применение объемной дискретизации с отсечением лучей, при которой объемная дискретизация с отсечением лучей включает в себя разделение объема на многоугольники, взаимно перпендикулярные к направлению наблюдения, и на этапе задания дополнительно задают направление дискретизации области дискретизации, и на этапе текстурной дискретизации итерационно применяют заданное направление дискретизации.

20. Способ по п.19, отличающийся тем, что дополнительно обнаруживают, когда луч отсечения пересекает текущий z-буфер.

21. Способ по п.1, отличающийся тем, что этап задания по меньшей мере одного параметра, определяющего область дискретизации, включает в себя задание по меньшей мере одного параметра, определяющего область дискретизации, который обеспечивает применение объемной визуализации с самозатенением совместно с традиционной объемной визуализацией с использованием отсечения или решетчатого типа, и на этапе задания дополнительно применяют повершинное задание направления дискретизации области дискретизации.

22. Способ по п.1, отличающийся тем, что на этапе задания задают вектор направления области дискретизации посредством компонента интерфейса прикладного программирования (API).

23. Сигнал, модулированный данными несущей волны, которая переносит исполняемые компьютером команды для осуществления способа по п.1.

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

задают по меньшей мере один параметр, определяющий область дискретизации, для применения на этапе текстурной дискретизации текстурной карты, и

инициируют текстурную дискретизацию текстурной карты в соответствии с заданными параметрами, определяющими упомянутую область дискретизации.

25. Считываемый компьютером носитель по п.24, отличающийся тем, что на этапе задания выполняют по меньшей мере одну операцию из: (1) модифицируют по меньшей мере один стандартный параметр, задавая по меньшей мере одно значение смещения для упомянутого по меньшей мере одного стандартного параметра и (2) заменяют по меньшей мере один стандартный параметр по меньшей мере одним параметром замены.

26. Считываемый компьютером носитель по п.25, отличающийся тем, что на этапе модификации выполняют по меньшей мере одну из операций: суммируют значение смещения со стандартным параметром, перемножают значение смещения со стандартным параметром, применяют одно из значения смещения и стандартного параметра в качестве показателя степени, вычитают значение смещения из стандартного параметра или осуществляют заданную математическую функцию на основании стандартного параметра и значения смещения.

27. Считываемый компьютером носитель по п.24, отличающийся тем, что область дискретизации является областью дискретизации, полученной посредством по меньшей мере одного из: процесса точечной дискретизации, процесса билинейной фильтрации, процесса MIP-отображения, процесса анизотропной фильтрации и процесса устранения ступенчатости.

28. Считываемый компьютером носитель по п.24, отличающийся тем, что этап задания включает в себя задание упомянутого по меньшей мере одного параметра для применения на этапе текстурной дискретизации на по меньшей мере одном из: повершинной и попиксельной основе.

29. Считываемый компьютером носитель по п.28, отличающийся тем, что этап текстурной дискретизации применяют итерационным образом.

30. Считываемый компьютером носитель по п.24, отличающийся тем, что на этапе задания задают по меньшей мере одно из размера шага и ориентации области дискретизации.

31. Считываемый компьютером носитель по п.28, отличающийся тем, что на этапе задания выполняют по меньшей мере одно из: задают интервал du между выборками в направлении u, и задают интервал dv между выборками в направлении v.

32. Считываемый компьютером носитель по п.28, отличающийся тем, что на этапе задания задают 3-х мерную дискретизацию вектора направления, имеющего ориентацию и длину шага, определенные по меньшей мере одним из значений системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u, системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 w.

33. Считываемый компьютером носитель по п.24, отличающийся тем, что на этапе задания задают одно из значений системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 а и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 b, используемых при расчете билинейной фильтрации.

34. Считываемый компьютером носитель по п.24, отличающийся тем, что область дискретизации является областью дискретизации типа анизотропной фильтрации.

35. Считываемый компьютером носитель по п.34, отличающийся тем, что упомянутый по меньшей мере один параметр включает в себя по меньшей мере одно из направления и интервала выборок ядра анизотропного фильтра.

36. Считываемый компьютером носитель по п.24, отличающийся тем, что дискретизация текстуры, инициированная на этапе инициирования текстурной дискретизации упомянутой текстурной карты в соответствии с заданными параметрами, изменяет по меньшей мере один визуальный эффект пиксельного пространства, полученный в результате текстурной дискретизации, и упомянутый по меньшей мере один визуальный эффект включает в себя по меньшей мере один из эффектов: размывание, блочность, эффект плавающей текстуры, выпадение пикселей, временную ступенчатость, мерцание текстуры, неоднородность текстуры и полошение.

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

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

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

40. Считываемый компьютером носитель по п.24, отличающийся тем, что на этапе задания задают по меньшей мере один параметр, определяющий область дискретизации, который обеспечивает применение самозатенения поверхности, и дополнительно применяют попиксельное задание направления дискретизации области дискретизации.

41. Считываемый компьютером носитель по п.40, отличающийся тем, что на этапе задания дополнительно задают управляющие параметры для расчетов производных согласно отображению горизонта по методу Нельсона Макса.

42. Считываемый компьютером носитель по п.24, отличающийся тем, что на этапе задания задают по меньшей мере один параметр, определяющий область дискретизации, который обеспечивает объемную дискретизацию с отсечением лучей, при этом объемная дискретизация с отсечением лучей включает в себя разделение объема на многоугольники, взаимно-перпендикулярные к направлению наблюдения, и на этапе задания дополнительно задают направление дискретизации области дискретизации, и на этапе текстурной дискретизации, инициированной текстурной дискретизацией, итерационно применяют упомянутое заданное направление дискретизации.

43. Считываемый компьютером носитель по п.42, отличающийся тем, что дополнительно обнаруживают, когда луч отсечения пересекает текущий z-буфер.

44. Считываемый компьютером носитель по п.24, отличающийся тем, что на этапе задания задают по меньшей мере один параметр области дискретизации, который обеспечивает объемную визуализацию с самозатенением совместно с традиционной объемной визуализацией с использованием рассечения или решетчатого типа, и на этапе задания дополнительно применяют повершинное задание направления дискретизации области дискретизации.

45. Считываемый компьютером носитель по п.24, отличающийся тем, что на этапе задания задают вектор направления области дискретизации посредством компонента интерфейса прикладного программирования (API).

46. Считываемый компьютером носитель по п.24, отличающийся тем, что упомянутые модули включены по меньшей мере в одно из: интерфейс прикладного программирования (API), программу-драйвер, операционную систему или приложение.

47. Сопроцессор для выполнения команд управляемой дискретизации текстуры, содержащий

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

блок дискретизации текстуры для осуществления текстурной дискретизации текстурной карты в соответствии с упомянутыми заданными параметрами, определяющими область дискретизации.

48. Сопроцессор по п.47, отличающийся тем, что входной блок содержит по меньшей мере одно из: (1) первый входной блок, который принимает команды для модификации по меньшей мере одного стандартного параметра путем приема задания по меньшей мере одного значения смещения для по меньшей мере одного стандартного параметра, и (2) второй входной блок, который принимает команды для замены по меньшей мере одного стандартного параметра по меньшей мере одним параметром замены.

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

50. Сопроцессор по п.47, отличающийся тем, что область дискретизации получается в результате по меньшей мере одного из: процесса точечной дискретизации, процесса билинейной фильтрации, процесса MIP-отображения, процесса анизотропной фильтрации и процесса устранения ступенчатости.

51. Сопроцессор по п.47, отличающийся тем, что входной блок, который принимает команды для задания, включает в себя блок, который принимает команды для задания по меньшей мере одного параметра на по меньшей мере одной из повершинной и попиксельной основе, совместно с блоком дискретизации текстуры.

52. Сопроцессор по п.51, отличающийся тем, что блок дискретизации текстуры итерационно осуществляет дискретизацию текстуры.

53. Сопроцессор по п.47, отличающийся тем, что входной блок, который принимает команды для задания, включает в себя блок, который принимает команды для задания по меньшей мере одного из величины шага и ориентации области дискретизации.

54. Сопроцессор по п.51, отличающийся тем, что входной блок, который принимает команды для задания, включает в себя по меньшей мере одно из: первый входной блок, который принимает команды для задания интервала du между выборками в направлении u, и второй входной блок, который принимает команды для задания интервала dv между выборками в направлении v.

55. Сопроцессор по п.51, отличающийся тем, что входной блок, который принимает команды для задания, включает в себя блок, который принимает команды для задания 3-х мерной дискретизации вектора направления, имеющего ориентацию и длину шага, определенные по меньшей мере одним из значений системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u, системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 w.

56. Сопроцессор по п.47, отличающийся тем, что входной блок, который принимает команды для задания, включает в себя блок, который принимает команды для задания одного из значений системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 а и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 b, используемых при расчете билинейной фильтрации.

57. Сопроцессор по п.47, отличающийся тем, что область дискретизации является областью дискретизации типа анизотропной фильтрации.

58. Сопроцессор по п.57, отличающийся тем, что по меньшей мере один параметр включает в себя по меньшей мере одно из направления и интервала выборок ядра анизотропного фильтра.

59. Сопроцессор по п.47, отличающийся тем, что текстурная дискретизация текстурной карты посредством блока дискретизации текстуры в соответствии с заданными параметрами изменяет по меньшей мере один визуальный эффект пиксельного пространства, полученный в результате текстурной дискретизации, и по меньшей мере один визуальный эффект включает в себя по меньшей мере один из эффектов, а именно: размывание, блочность, плавающую текстуру, выпадение пикселей, временную ступенчатость, мерцание текстуры, неоднородность текстуры и полошение.

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

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

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

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

64. Сопроцессор по п.63, отличающийся тем, что входной блок, который принимает команды для задания, дополнительно включает в себя блок, который принимает команды для задания управляющих параметров для расчетов производных согласно отображению горизонта по методу Нельсона Макса.

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

66. Сопроцессор по п.65, отличающийся тем, что дополнительно содержит компонент обнаружения, который обнаруживает, когда луч отсечения пересекает текущий z-буфер.

67. Сопроцессор по п.47, отличающийся тем, что входной блок, который принимает команды для задания по меньшей мере одного параметра, содержит первый входной блок, который принимает команды для задания по меньшей мере одного параметра, определяющего область дискретизации, который обеспечивает применение объемной визуализации с самозатенением совместно с традиционной объемной визуализацией с использованием рассечения или объемной визуализацией решетчатого типа, и упомянутый входной блок, который принимает команды для задания, дополнительно содержит второй входной блок, который принимает команды для применения повершинного задания направления дискретизации области дискретизации.

68. Сопроцессор по п.47, отличающийся тем, что входной блок, который принимает команды для задания, содержит блок, который принимает команды для задания вектора направления области дискретизации посредством из по меньшей мере одного из: интерфейса прикладного программирования (API), программы драйвера, операционной системы и приложения.

69. Сопроцессор по п.47, отличающийся тем, что содержит по меньшей мере один графический интерфейс пользователя (ГИП).

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

средство для задания по меньшей мере одного параметра, определяющего область дискретизации, применяемого при текстурной дискретизации текстурной карты, и

средство для инициирования текстурной дискретизации текстурной карты в соответствии с заданными параметрами, определяющими область дискретизации.

71. Сопроцессор для выполнения команд управляемой дискретизации текстуры, содержащий

средство для приема задания по меньшей мере одного параметра, определяющего область дискретизации, применяемого при текстурной дискретизации текстурной карты, и

средство для текстурной дискретизации текстурной карты в соответствии с заданными параметрами области дискретизации.

Описание изобретения к патенту

Уведомление об авторском праве и разрешение

Часть описания изобретения этого патентного документа может содержать материал, подлежащий защите авторских прав. Владелец авторских прав не имеет возражений против факсимильного воспроизведения кем-либо патентного документа или описания изобретения к патенту в том виде, в каком он выглядит в патентных фондах или реестрах Ведомства по патентам и товарным знакам, но в других отношениях, охраняет все авторские права. К этому документу должно прилагаться следующее уведомление: копирайт © 2001, Корпорация Майкрософт.

Область применения изобретения

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

Предшествующий уровень техники

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

На фиг.1 показан общий вид процесса наложения текстуры. Имея в своем распоряжении текстурную карту 200, содержащую тексели 202, наложение текстуры накладывает сигнал текстурной карты 200 на треугольники 210 сетки, в соответствии с некоторой геометрической конфигурацией треугольника, и/или применяет некоторое дополнительное преобразование, например затенение, подсвечивание и т.д., которое отображает тексели 202 в пиксели 222.

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

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

В результате текстурная карта может либо не быть способной эффективно отображать нужную деталь изображения в определенную область пикселей, либо, напротив, малая область пикселей может не быть способной использовать всю деталь текстуры из более обширной/ богатой текстурной карты.

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

Чтобы проиллюстрировать проблему(ы), которая(ые) может/могут возникать, рассмотрим случай, когда количество текселей превышает количество пикселей. Пусть имеется поверхность квадратной доски объявлений в трехмерной (3-D) сцене, содержащая два равнобедренных треугольника, причем размер квадрата составляет 100х100 пикселей. В случае наложения текстурной карты, содержащей 200 красных и синих горизонтальных полосок, поверх квадратной области 100х100 пикселей, все 200 полосок текстуры, одновременно наложенных на доску объявлений, нельзя будет различить, поскольку текстура имеет больше точек выборки, чем область пикселей, на которую она накладывается. Некоторые промежуточные данные текстуры не будут использоваться в отображении и будут, по существу, проигнорированы.

По мере перемещения 3-D точки зрения по доске объявлений, например, при навигации в игре возникают феномены, именуемые выпадением пикселей, в результате чего полоски текстуры входят и выходят из «выравнивания» с пикселями доски объявлений. Это происходит, когда частота дискретизации текстуры недостаточна для описания деталей сцены. Приведен пример одного типа артефактов, которые могут иметь место, тогда как в результате недостаточной дискретизации текстуры могут возникать и другие типы артефактов.

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

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

Самым распространенным способом наложения текстур на поверхность является точечная дискретизация, в которой используется метод выборки «ближайшего соседа». Когда визуализатор выбирает фрагмент текстуры, он выхватывает из текстурной карты выборочную точку текстуры с координатами (u, v), которые отображаются ближе всего к координатам пикселя (центру пикселя), и накладывает ее на пиксель. Этот подход проиллюстрирован на фиг.2А, где соответствующая позиция отображения пиксельного пространства в тексельное пространство расположена в позиции Р1. В данном случае, поскольку ближайшим текселем является Т1, выбирают Т1. Хотя этот подход требует наименьшей величины пропускной способности памяти, в смысле количества текселей, которые необходимо считывать из памяти текстур, т.е. по одному на пиксель, результат часто приводит к артефактам, что обсуждалось выше, по причине недостаточного количества точек выборки, т.е. экранных пикселей, для описания текстуры. Но даже аппаратура трехмерной графики первого поколения для персональных компьютеров (ПК) имела функциональные возможности, позволяющие до некоторой степени устранять или, по крайней мере, скрывать эти проблемы дискретизации, а именно, с помощью билинейной фильтрации.

Метод билинейной фильтрации позволяет не просто выхватывать "ближайшего соседа" в текстуре, но считывать четыре точки выборки, ближайшие к центру пикселя, и использует взвешенное среднее этих цветовых значений в качестве конечного цветового значения текстуры. Таким образом, как показано на фиг.2В, вычисляют средневзвешенное значение Т1, Т2, Т3 и Т4, в котором весовые коэффициенты определяются расстояниями от центра пикселя до четырех центров текселей. Примеры уравнений билинейной фильтрации, известные специалистам по обработке графики, выглядят следующим образом:

ca = pi,j .системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 +(pi,j+1).(1-системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 a)

cb = pi+1,j .системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 +(pi+1,j).(1-системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 a)

F = lrp(c a,cb).системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 b,

где lrp - функция линейной интерполяции, которую без труда понимают современные графические процессоры (ГП). Этот метод позволяет, при визуализации графического объекта, избавиться от большого количества текстурных артефактов, видимых при точечной дискретизации, но, поскольку этот метод предусматривает лишь четырехотводный фильтр, работающий с одной текстурной картой, эффективность билинейной фильтрации ограничена.

Другой подход к повышению качества текстуры представляет собой способ, именуемый MIP-отображением, при котором визуализатор делает несколько копий исходной текстуры, и каждая последующая MIP-карта имеет точно вдвое меньшее разрешение по сравнению с предыдущей. Это, по существу, обеспечивает своего рода трехмерную текстуру, в которой, помимо двух стандартных координат (u,v), имеется также третья координата, d, позволяющая измерить, какую/ие MIP-карту/ы следует выбрать, исходя из того, какое разрешения карты наиболее точно соответствует области пикселей, на которую отображается текстура. В случае, когда плоскость бойца близка к камере наблюдения, выбирают очень подробную текстурную карту, но по мере удаления плоскости используются все меньшие и менее подробные карты.

По мере возрастания координаты d используются все меньшие и меньшие MIP-карты. Процесс нахождения координаты d, в общем случае, достаточно сложен и зависит от реализации, но, в целом, сводится к вычислению, какое увеличение или уменьшение текстуры следует применять, исходя из конкретного выбора MIP-карты на основании покрываемой области пикселей. Таким образом, этот метод позволяет выбирать MIP-карту с минимальной степенью увеличения и уменьшения текстуры. Согласно фиг.2С, задача MIP-отображения сводится к выбору, какую текстуру 200а, 200b, 200с и т.д. лучше всего использовать для представления количества пикселей в пиксельной визуализации 220.

Приложения могут использовать MIP-карты несколькими разными способами, которые часто зависят от аппаратной поддержки графики. В некоторых случаях приложение может предпочитать (А) выбирать одну карту, которая лучше всех соответствует области пикселей, в которую она отображается, (В) подвергать тексели этой карты билинейной фильтрации, а затем (С) накладывать полученные усредненные тексели на соответствующие им пиксели. Однако при перемещении по сцене билинейное MIP-отображение может приводить к проблемам визуализации на границах карты. Например, если в игре отображается езда по дороге, в текстуре дороги могут появляться видимые разрывы. Это, по-видимому, обусловлено переходами между MIP-картами.

Широко используется метод более качественного отображения, т.н. трилинейное MIP-отображение, которое позволяет смягчить вышеупомянутую проблему границ MIP-карты. Согласно этому методу фильтрации, из двух ближайших к пикселю MIP-карт берут две билинейные выборки, для каждой из которых используют четыре выборочных текселя, причем одна текстурная карта должна иметь немного большее разрешение, а другая - немного меньшее разрешение, чем отображаемая область пикселей. Затем трилинейный алгоритм использует взвешенное среднее для объединения двух билинейно фильтрованных текселей в конечный текстурированный пиксель, при этом карта, которая ближе по разрешению к области пикселей, получает больший весовой коэффициент.

Некоторые недостатки есть и у трилинейного MIP-отображения, но они, главным образом, относятся к смещению уровня детализации (УД). Каждая MIP-карта имеет соответствующий уровень детализации, и смещение относится к весовому коэффициенту, фигурирующему в среднем значении двух билинейно фильтрованных выборок, взятых из двух разных карт. Слишком «подняв» смещение УД, придав карте с меньшим разрешением большой весовой коэффициент во взвешенном среднем, можно получить размывание текстуры. Слишком «опустив» смещение УД, придав более крупной MIP-карте больший весовой коэффициент во взвешенном среднем, можно получить ступенчатость и временную ступенчатость, например, мерцание/неоднородность текстуры. Таким образом, смещение УД изменяет значение d, приводя к использованию более мелких или более крупных карт, хотя значение d заранее задается в процессе разработки. Основной проблемой этих методов является изотропный характер билинейной или трилинейной фильтрации. Увеличение/уменьшение по одной оси в текстуре может значительно отличаться от увеличения/уменьшения по другой оси, что может приводить к ступенчатости по одной оси и размыванию по другой оси.

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

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

Этот вид анизотропной дискретизации, при которой неоднократно осуществляется билинейная фильтрация, проиллюстрирован на фиг.2D для точки Р1а, которая подлежит анизотропной фильтрации под углом системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 , заданным отношением системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v/системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u, и длины шага s между точками P1a, P1b, P1c и т.д., заданной величиной системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u, в соответствии с некоторым заранее определенным геометрическим аспектом визуализируемого треугольника. Эллиптическая форма под углом системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 задает местонахождение P1b и Р1с. Затем осуществляют билинейную фильтрацию для каждой точки P1a, P1b и Р1с, которые, в данном примере, во взвешенном виде смешиваются с соответствующими группами из четырех: (А) Т14, Т11, Т15 и Т12, (В) Т11, Т12, Т6 и Т5 и (С) Т7, Т6, Т8 и Т1, соответственно.

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

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

Преимущество, достигаемое за счет использования параллельных конвейеров, способных манипулировать множественными текселями в расчете на пиксель, состоит в том, что операции множественного текстурирования часто можно осуществлять в течение одного тактового периода, что избавляет от необходимости в многопроходной визуализации, когда каждый пиксель на сцене рисуют несколько раз. Из-за дополнительных проходов, которые микросхеме приходится делать, чтобы визуализировать сцену, содержащую многотекстурные эффекты, ее эффективная скорость заполнения пикселей делится на количество проходов, которые необходимо осуществлять. Поэтому, если микросхема со скоростью заполнения 500 Мпиксель/с должна делать два прохода, чтобы визуализировать сцену, на которой присутствуют многотекстурные эффекты, то эффективная скорость заполнения микросхемы снижается в два раза и оказывается равной 250 Мпиксель/с. Если она делает четыре прохода, то скорость заполнения падает до 125 Мпиксель/с. Таким образом, параллельные конвейеры также значительно увеличивают эффективность визуализации графики.

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

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

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

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

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

Но, безотносительно к методу, туман зависит от того, как далеко находится объект, что обычно определяется его значением z, расстоянием от камеры наблюдения. Коэффициент тумана, подчиняющийся линейному или экспоненциальному закону, вычисляют и применяют к пикселю с использованием операции смешивания, чтобы объединить величину (цвет) тумана и цвет подсвеченного/затененного/текстурированного пикселя. Если туман накладывается повершинно, то операции затуманивания становятся частью вычисления подсвечивания и интерполируются по каждому треугольнику с использованием затенения по Гуро.

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

Существуют также методы придания прозрачности и полупрозрачности. В отличие от непрозрачных объектов, прозрачные объекты следует, в общем случае, сортировать по глубине в порядке от заднего плана к переднему плану, чтобы гарантировать, что нижележащие цвета, которые смешиваются с прозрачными объектами, доступны при осуществлении операции смешивания. Имеется несколько формул, используемых для вычисления полупрозрачности объекта, но обычная формула такова:

сo = системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 .cs+(1-системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 ).cd,

где со - конечный цвет пикселя;

системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 - значение альфа (от 0 до 1);

сs - цвет прозрачного пикселя (именуемого исходным пунктом) и

сd - цвет загороженного пикселя (именуемого пунктом назначения).

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

Таким образом, существует масса способов, которые можно применять в сочетании с компьютерной графикой на основе дискретизации текстуры; однако до сих пор разработчик делал фиксированный выбор какого-либо из многочисленных способов на этапе разработки, не обеспечивая особой гибкости. Поскольку в определенных графических обстоятельствах полезны строго определенные переменные и эвристика, результат конечного качества может представлять собой нечто неоднородное, даже при возрастании вычислительной мощности. Соответственно, желательно увеличить объем интеллектуальных возможностей, применяемый к алгоритмам дискретизации текстуры на начальной стадии процесса. Ввиду все большего распространения гибко функционирующих ГП, желательно предоставлять разработчикам управляемую дискретизацию текстуры для применения к режиму полета, динамический интеллект, чтобы работать в разных обстоятельствах наиболее эффективным образом. Чем больше развиваются алгоритмы программируемого попиксельного затенения и подсвечивания, которые учитывают свойства материалов, искривленные поверхности, объемные текстуры и которые обеспечивают значительно более сложное однопроходное смешивание текстуры, тем более желательно, чтобы разработчики могли управлять процессом дискретизации текстуры. Также желательно управляемым образом вводить в визуализируемое изображение такие артефакты, как размывание, "полошение" или мерцание. Соответственно, желательно снабдить одно или несколько из следующих программных средств: операционную систему, программу драйвера, программный интерфейс приложений, комплект инструментов и/или функции в самом графическом конвейере, включающем в себя ГП или другой сопроцессор, механизмом, который обеспечивает возможности управляемой дискретизации текстуры.

Сущность изобретения

Ввиду вышесказанного, настоящее изобретение предусматривает системы и способы обеспечения управляемой дискретизации текстуры применительно к компьютерной графике в компьютерной системе. Согласно различным вариантам осуществления предусмотрены усовершенствованные механизмы управления дискретизацией текстуры, которые позволяют аппаратному ускорителю трехмерной графики значительно повысить уровень реализма при визуализации, в том числе усовершенствованные механизмы для (1) размывания движущихся объектов; (2) генерации анизотропных отражений от поверхности; (3) генерации самозатенения поверхности; (4) объемной дискретизации с отсечением лучей; (5) объемной визуализации с самозатенением и (6) объемного отсечения лучей с самозатенением. В отличие от существующих способов дискретизации текстуры, параметры дискретизации текстуры можно заменять и/или модифицировать.

Различные варианты осуществления предусматривают способы, устройства, компьютерно-считываемые носители и сопроцессоры, обеспечивающие управляемую дискретизацию текстуры, включая задание параметра(ов) области дискретизации, используемого в связи с текстурной дискретизацией текстурной карты, и текстурную дискретизацию текстурной карты в соответствии с заданными параметрами области дискретизации.

Другие признаки и варианты осуществления настоящего изобретения описаны ниже.

Краткое описание чертежей

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

фиг.1 - общий вид процесса дискретизации текстуры в системе компьютерной графики;

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

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

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

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

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

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

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

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

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

Подробное описание изобретения

Обзор

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

Иллюстративные сетевая и распределенная среды

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

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

На фиг.3А представлена схема иллюстративной сетевой или распределенной вычислительной среды. Распределенная вычислительная среда содержит вычислительные объекты 10а, 10b и т.д. и вычислительные объекты или устройства 110а, 110b, 100c и т.д. Эти объекты могут содержать программы, методы, средства хранения данных, программируемую логику и т.д. Объекты могут содержать фрагменты одного или разных устройств, например ПЦС (персональный цифровой секретарь), телевизоров, МР3-проигрываетей, персональных компьютеров и т.д. Каждый объект может сообщаться с другим объектом посредством сети связи 14. Эта сеть сама может содержать другие вычислительные объекты и вычислительные устройства, которые предоставляют услуги системе, изображенной на фиг.3А. Согласно аспекту изобретения, каждый объект 10а, 10b, и т.д. или 110а, 110b, 110c и т.д. может содержать приложение, которое может требовать услуг дискретизации текстуры.

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

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

Очевидно также, что объект, например 110с, может размещаться на другом вычислительном устройстве 10а, 10b и т.д. или 110а, 110b и т.д. Таким образом, хотя в изображенной физической среде подключенные устройства показаны в виде компьютеров, это является всего лишь примером, и физическую среду можно альтернативно изображать или описывать как содержащую различные цифровые устройства, например ПЦС, телевизоры, МР3-проигрыватели и т.д., программные объекты, например интерфейсы, объекты COM и т.п.

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

В домашних сетевых средах имеется, по меньшей мере, четыре различных сетевых транспортных среды, каждая из которых может поддерживать уникальный протокол, например линия электроснабжения, линия передачи данных (проводная и беспроводная), линия голосовой связи (например, телефонная линия) и развлекательные среды. Для связи с большинством домашних управляющих устройств, например выключателями и регуляторами освещения, могут использовать линию питания. Для подключения дома к услугам передачи данных можно использовать широкополосную линию связи (например, ЦАЛ (цифровую абонентскую линию) или кабельный модем), а для доступа к ним в переделах дома можно использовать беспроводное (например, HomeRF или 802.11b) или проводное (например, Home PNA, Cat 5, даже линия электроснабжения) подключение. Голосовой трафик может поступать в дом либо по проводной линии связи (например, Cat 3), либо по беспроводной линии связи (например, с помощью сотового телефона) и может распространяться в доме с использованием проводного соединения Cat 3. Развлекательные среды или другие графические данные можно принимать в доме через спутниковую антенну или кабель, а в пределах дома они обычно распространяются с использованием коаксиального кабеля. IEEE 1394 и DVI (интерактивное цифровое видео) также рассматриваются как цифровые соединения для групп медиаустройств. Все эти и другие сетевые среды, подчиняющиеся тем или иным стандартным протоколам, можно соединить между собой с образованием интернет, который может быть подключен к внешнему миру посредством сети Интернет. Короче говоря, существуют различные источники разной природы для сохранения и передачи данных и, следовательно, в перспективе, вычислительным устройствам потребуются способы совместного использования данных, например, доступных или используемых данных, присущих текстурной дискретизации графического(их) объекта(ов) и текстурным картам в соответствии с настоящим изобретением.

Под сетью Интернет обычно подразумевают совокупность сетей и шлюзов, которые применяют комплект протоколов TCP/IP, которые хорошо известны в области компьютерных сетей. TCP/IP это аббревиатура для "Transport Control Protocol/Interface Program" (Протокол управления передачей/Программа интерфейса). Интернет можно описать как систему географически распределенных удаленных компьютерных сетей, соединенных между собой компьютерами, выполняющими сетевые протоколы, которые позволяют пользователям взаимодействовать и совместно использовать информацию в сетях. Ввиду совместного использования такой широко распределенной информации, удаленные сети, например Интернет, давно превратились в открытую систему, в рамках которой разработчики могут создавать прикладные программы для осуществления специализированных операций или услуг, по существу, без ограничений.

Таким образом, инфраструктура сети обеспечивает ряд сетевых топологий, например клиент-сервер, равноправных узлов или смешанные архитектуры. «Клиент» - это элемент класса или группы, который пользуется услугами другого класса или группы, к которому(ой) не относится. Таким образом, в отношении вычисления, клиент - это процесс, т.е., грубо говоря, набор команд или задач, который запрашивает услугу, предоставляемую другой программой. Чтобы воспользоваться запрашиваемой услугой, процессу-клиенту не нужно «знать» никаких подробностей о работе другой программы или услуги. В архитектуре клиент/сервер, в частности, в сетевой системе клиент обычно представляет собой компьютер, который обращается к сетевым ресурсам общего пользования, обеспечиваемым другим компьютером, например сервером. В примере, приведенном на фиг.3А, компьютеры 110а, 110b и т.д. можно считать клиентами, а компьютеры 10а, 10b и т.д. можно считать серверами, и серверы 10а, 10b и т.д. поддерживают данные, которые затем дублируются на компьютерах-клиентах 110а, 110b и т.д.

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

Клиент и сервер сообщаются друг с другом с использованием функций, обеспечиваемых уровнем протокола. Например, протокол передачи гипертекстовых файлов (HTTP) является общепринятым протоколом, который используется в Мировой паутине. Для идентификации серверных или клиентских компьютеров друг для друга обычно используется адрес компьютерной сети, например универсальный указатель ресурса (URL), или адрес Интернет-протокола (IP). Сетевой адрес можно рассматривать как адрес URL. Например, связь можно обеспечивать посредством среды связи. В частности, клиент и сервер можно подключать друг к другу посредством соединений TCP/IP, создавая соединения с высокой пропускной способностью. Таким образом, на фиг.3А показан пример сетевой или распределенной среды, в которой сервер связан с компьютерами-клиентами через сеть/шину, в которой можно применять настоящее изобретение. В частности, несколько серверов 10а, 10b и т.д. соединены посредством сети/шины связи 14, которая может представлять собой ЛС, ГС, интранет, Интернет и т.д., с несколькими клиентскими или удаленными вычислительными устройствами 110а, 110b, 110c, 110d, 110e и т.д., например портативным компьютером, карманным компьютером, тонким клиентом, сетевым бытовым прибором или другим устройством, например видеомагнитофоном, телевизором, печкой, осветительным прибором, нагревателем и т.п., в соответствии с настоящим изобретением. Таким образом, предполагается, что настоящее изобретение можно применять к любому вычислительному устройству, посредством которого желательно обрабатывать графический(е) объект(ы).

В сетевой среде, где в качестве сети/шины связи 14 выступает, например, Интернет, серверы 10а, 10b и т.д. могут представлять собой веб-серверы, с которыми клиенты 110а, 110b, 110c, 110d, 110е и т.д. связываются посредством любого известного протокола, например HTTP. Серверы 10а, 10b и т.д. могут также выступать в роли клиентов 110а, 110b, 110c, 110d, 110е и т.д., что может служить характеристикой распределенной вычислительной среды. Связь может быть проводной или беспроводной, в зависимости от обстоятельств. Клиентские устройства 110а, 110b, 110c, 110d, 110е и т.д. могут осуществлять или не осуществлять связь через сеть/шину связи 14 и могут располагать независимыми средствами связи. Например, в случае телевизора или видеомагнитофона, может присутствовать или отсутствовать сетевой аспект управления ими. Каждый компьютер-клиент 110а, 110b, 110c, 110d, 110е и т.д. и компьютер-сервер 10а, 10b и т.д. может располагать различными прикладными программными модулями или объектами 135 и соединениями или доступом к различным типам элементов или объектов памяти, в которых можно хранить файлы или в которые можно загружать или перемещать часть(и) файлов. Любой компьютер 10а, 10b, 110а, 110b и т.д. может отвечать за поддержку и обновление базы данных 20 или иного элемента памяти в соответствии с настоящим изобретением, например базы данных или памяти 20 для хранения графического(их) объекта(ов), обрабатываемого(ых) согласно изобретению. Таким образом, настоящее изобретение можно применять в компьютерной сетевой среде, содержащей компьютеры-клиенты 110а, 110b и т.д., которые могут иметь доступ к компьютерной сети/шине 14 и компьютерам-серверам 10а, 10b и т.д. и взаимодействовать с ними, которые, в свою очередь, могут взаимодействовать с компьютерами-клиентами 110а, 110b и т.д. и другими подобными устройствами и базами данных 20.

Иллюстративное вычислительное устройство

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

Хотя это и не обязательно, изобретение можно реализовать посредством операционной системы, чтобы разработчик мог пользоваться услугами для устройства или объекта, и/или включить в прикладную программу, которая осуществляет управляемую дискретизацию текстуры, отвечающую изобретению. Программное обеспечение можно описать в общем контексте компьютерно-исполняемых команд, например, программных модулей, выполняющихся на одном или нескольких компьютерах, например, на клиентских рабочих станциях, серверах или других устройствах. В целом, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., выполняющие отдельные задачи или реализующие отдельные абстрактные типы данных. Обычно функции программных модулей объединяются или распределяются, в зависимости от варианта осуществления. Кроме того, специалистам в данной области очевидно, что изобретение можно применить на практике к другим конфигурациям компьютерных систем. Другие общеизвестные вычислительные системы, среды и/или конфигурации, в которых можно применять изобретение, включают в себя, но не только, персональные компьютеры (ПК), автоответчики, компьютеры-серверы, переносные устройства, многопроцессорные системы, системы на основе микропроцессора, программируемую бытовую электронику, сетевые ПК, бытовые приборы, осветительные приборы, элементы контроля среды, миникомпьютеры, универсальные компьютеры и т.п. Изобретение также применимо в распределенных вычислительных средах, где задачи выполняются удаленными процессорами, связанными посредством сети/шины связи или другой среды передачи данных. В распределенной вычислительной среде программные модули могут размещаться как на локальных, так и на удаленных компьютерных носителях информации, включая запоминающие устройства, и клиентские узлы могут, в свою очередь, вести себя как серверные узлы.

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

Согласно фиг.3В, иллюстративная система для реализации изобретения содержит вычислительное устройство общего назначения в виде компьютера 110. В число компонентов компьютера 110 могут входить, но не ограничиваются ими, процессор 120, системная память 130 и системная шина 121, которая соединяет различные системные компоненты, в том числе системную память с процессором 120. Системная шина может относиться к любому из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, в которых используется любая шинная архитектура. Для примера, но не в порядке ограничения, такие архитектуры включают в себя шину Промышленного стандарта архитектуры (ISA), шину микроканальной архитектуры (МСА), шину усовершенствованного ISA (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA) и шину подключения периферийных компонентов (PCI) (которая также называется шиной расширения).

Компьютер 110 обычно включает в себя разнообразные компьютерно-считываемые носители. Компьютерно-считываемые носители могут представлять собой любые имеющиеся носители, к которым может обращаться компьютер 110, в том числе энергозависимые и энергонезависимые носители, сменные и стационарные носители. Например, но не исключительно, компьютерно-считываемые носители могут включать в себя компьютерные носители для хранения данных и среды передачи данных. Компьютерные носители для хранения данных включают в себя энергозависимые и энергонезависимые, сменные и стационарные носители, реализованные в соответствии с любым методом или технологией хранения информации, например компьютерно-считываемых команд, структур данных, программных модулей или иных данных. Компьютерные носители для хранения данных включают в себя, помимо прочего, ОЗУ, ПЗУ, ЭППЗУ, флэш-память и другие запоминающие устройства, CD-ROM, цифровые универсальные диски (DVD) или иной оптический дисковый носитель данных, магнитные кассеты, магнитную ленту, магнитный дисковый носитель данных или иные магнитные запоминающие устройства или любой иной носитель, который можно использовать для хранения полезной информации и к которому может обращаться компьютер 110. Среды передачи данных обычно реализуют компьютерно-считываемые команды, структуры данных, программные модули или иные данные в виде сигнала, модулируемого данными, например, несущей волны или иного транспортного механизма, и включают в себя любые среды доставки информации. Термин «сигнал, модулируемый данными» означает сигнал, одну или несколько характеристик которого задают или изменяют определенным образом, чтобы кодировать в нем информацию. Среды передачи данных могут, например, помимо прочего, включать в себя проводные среды, например проводную сеть или прямое проводное соединение, и беспроводные среды, например акустические, РЧ (радиочастотные), инфракрасные и другие беспроводные среды. Понятие компьютерно-считываемого носителя охватывает также любые комбинации вышеперечисленных носителей.

Системная память 130 включает в себя компьютерные носители для хранения данных в виде энергозависимой и энергонезависимой памяти, например, постоянного запоминающего устройства (ПЗУ) 131 и оперативного запоминающего устройства (ОЗУ) 132. Базовая система ввода/вывода (BIOS) 133, содержащая базовые процедуры, обеспечивающие перенос информации между элементами компьютера 110, например, при запуске, обычно хранится в ПЗУ 131. В ОЗУ 132 обычно хранятся данные и программные модули, подлежащие быстрому доступу со стороны процессора 120 или обрабатываемые им в данный момент. Для примера, но не для ограничения общности, на фиг.2 показаны операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 может также содержать другие сменные/стационарные, энергозависимые/энергонезависимые компьютерные носители для хранения данных. Исключительно для примера, на фиг.3В показан жесткий диск 141, который позволяет считывать информацию со стационарного энергонезависимого магнитного носителя и записывать информацию на него, дисковод 151 для дискет, который считывает информацию со сменного энергонезависимого магнитного диска 152 или записывает информацию на него, и дисковод 155 для оптических дисков, который считывает информацию со сменного энергонезависимого оптического диска 156, например CD-ROMa или иного оптического носителя, или записывает информацию на него. В иллюстративной операционной среде можно также использовать другие сменные/стационарные, энергозависимые/энергонезависимые компьютерные носители для хранения данных, например кассеты с магнитной лентой, карты флэш-памяти, цифровые универсальные диски, ленту для цифровой видеозаписи, ОЗУ на кристаллах, ПЗУ на кристаллах и т.д. Жесткий диск 141, как правило, подключен к системной шине 121 через интерфейс запоминающего устройства со стационарным носителем, например интерфейс 140, а дисковод 151 для дискет и дисковод 155 для оптических дисков, как правило, подключены к системной шине 121 через интерфейс запоминающего устройства со сменным носителем, например интерфейс 150.

Вышеупомянутые и изображенные на фиг.3В приводы и соответствующие компьютерные носители для хранения данных обеспечивают хранение компьютерно-считываемых команд, структур данных, программных модулей и других данных для компьютера 110. Например, согласно фиг.3В, на жестком диске 141 хранятся операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут быть идентичны операционной системе 134, прикладным программам 135, другим программным модулям 136 и программным данным 137 или отличны от них. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 обозначены другими позициями, чтобы показать, что они представляют собой, как минимум, разные копии. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, например клавиатуру 162 и указательное устройство 161, в качестве которого может выступать мышь, шаровой манипулятор или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой пульт, спутниковую антенну, сканнер и т.д. Эти и другие устройства ввода обычно подключаются к процессору 120 через интерфейс 160 пользовательского ввода, подключенный к системной шине 121, но могут подключаться посредством других интерфейсов и шинных структур, например параллельного порта, игрового порта или универсальной последовательной шины (USB). К системной шине 121 также можно подключать графический интерфейс 182, например, северный мост. Северный мост - это набор микросхем, который поддерживает связь с ЦП или главным процессором 120 и предусмотрен для связи через AGP (ускоренный/усовершенствованный графический порт). С графическим интерфейсом 182 может/могут поддерживать связь один или несколько графических процессоров 184 (ГП). В этой связи, ГП 184 обычно содержат внутрикристалльную память, например, регистровую память, и ГП 184 осуществляют связь с видеопамятью 186. Однако ГП является всего лишь примером сопроцессора, и, таким образом, в состав компьютера 110 могут входить разнообразные сопроцессоры. Монитор 191 или другое устройство отображения также подключено к системной шине 121 посредством интерфейса, например, видеоинтерфейса 190, который, в свою очередь, поддерживает связь с видеопамятью 186. Помимо монитора 191 компьютеры могут также содержать другие периферийные устройства вывода, например громкоговорители 197 или принтер 196, которые могут подключаться через интерфейс 195 периферийных устройств вывода.

Компьютер 110 может работать в сетевой или распределенной среде, используя логические линии связи с одним или несколькими удаленными компьютерами, например удаленным компьютером 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой ПК, равноправное устройство или другой общий узел сети и обычно содержит многие или все элементы, описанные выше в отношении компьютера 110, хотя на фиг.3В изображено только запоминающее устройство 181. Логические линии связи, обозначенные на фиг.3В, включают в себя локальную вычислительную сеть (ЛС) 171 и глобальную сеть (ГС) 173, а также, возможно, и другие сети/шины. Такие сетевые среды широко распространены в жилых домах, учреждениях, учрежденческих компьютерных сетях, интранетах и в Интернете.

При использовании сетевой среды ЛС компьютер 110 подключают к ЛС 171 посредством сетевого интерфейса или адаптера 170. При использовании сетевой среды ГС компьютер 110 обычно снабжают модемом 172 или другим средством установления связи через ГС 173, например Интернет. Модем 172, который может быть внутренним или внешним, можно подключать к системной шине 121 через интерфейс 160 пользовательского ввода или посредством другого подходящего механизма. В сетевой среде программные модули, указанные применительно к компьютеру 110, или их фрагменты могут храниться в удаленном запоминающем устройстве. В порядке примера, но не в целях ограничения, на фиг.3В показано, что удаленные прикладные программы 185 хранятся в запоминающем устройстве 181. Следует понимать, что помимо сетевых линий связи, показанных в качестве примера, для установления соединения между компьютерами можно использовать другие средства.

Иллюстративные структуры или архитектуры распределенного вычисления

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

Например, платформа.Net фирмы MICROSOFT® включает в себя серверы, услуги компоновки из стандартных блоков, например хранение данных на базе Интернет и загружаемое программное обеспечение устройства. В целом, платформа.Net обеспечивает (1) возможность заставить целый ряд вычислительных устройств работать совместно и автоматически обновлять и синхронизировать пользовательскую информацию на всех устройствах, (2) повышенную интерактивную способность веб-сайтов за счет более широкого использования XML вместо HTML, (3) онлайновые услуги, отличающиеся настраиваемыми доступом к продуктам и услугам и их доставкой пользователю из центрального начального пункта для управления различными приложениями, например электронной почтой, или программным обеспечением, например Office.Net, (4) централизованное хранение данных, которое повышает эффективность и простоту доступа к информации, а также синхронизацию информации между пользователями и устройствами, (5) способность интегрировать различные средства связи, например электронную почту, факсы и телефоны, (6) для разработчиков, возможность создавать модули многоразового использования, что повышает производительность и снижает количество ошибок программирования и (7) многие другие особенности межплатформенной интеграции.

Хотя иллюстративные варианты осуществления описаны здесь применительно к программному обеспечению, размещенному на вычислительном устройстве, одну или несколько частей изобретения можно также реализовать посредством операционной системы, программного интерфейса приложений (API) или объекта-посредника между сопроцессором и запрашивающим объектом, в результате чего услуги управляемой дискретизации текстуры можно осуществлять или запрашивать посредством всех языков и услуг.NET, поддерживать в них, а также в других распределенных вычислительных структурах.

Управляемая дискретизация текстуры

Согласно вышеописанному, имеется несколько разных способов, которые можно применять для осуществления дискретизации текстуры с помощью компьютерной графики, в зависимости от используемого приложения. Между тем, проблема состоит в том, что однажды выбранный способ применяется и далее без особой гибкости, так что, если возникают уникальные обстоятельства, не подходящие к выбранному способу дискретизации текстуры, или, если разработчик желает, чтобы конечное изображение содержало определенные артефакты, например размывание, то его возможности невелики. Соответственно, изобретение делает алгоритмы дискретизации текстуры более интеллектуальными, предоставляя разработчику больше свободы в интерфейсной части, что обеспечивает более динамическую дискретизацию текстуры в серверной части приложения. Таким образом, способы, отвечающие изобретению, используют преимущества гибко функционирующих ГП, предоставляя разработчикам управляемую дискретизацию текстуры для применения «на лету» и динамический интеллект для обработки различных обстоятельств различными путями. Соответственно, в различных вариантах осуществления изобретение предусматривает для операционной системы и/или программы драйвера, API, комплект инструментов и/или функций в самом графическом конвейере, включая ГП или другой сопроцессор, механизм, который обеспечивает возможности управляемой дискретизации текстуры.

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

Что касается замены вручную, изобретение можно использовать для замены размера и ориентации отпечатка путем замены обычно применяемых системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v для вычисления отпечатка значениями системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 uнов и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 vнов. На фиг.4А показано, что системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 uнов и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 vнов задают новую ориентацию системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 нов и задают новую длину шага s нов. Таким образом, задавая значения замены системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 uнов и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 vнов посредством API, операционной системы, комплекта инструментов, драйверов и т.д., можно управлять процессом дискретизации. В этой связи, современные гибко функционирующие ГП могут принимать маркеры, которые представляют функции для достижения этого, назначая и/или переназначая определенные регистры для достижения такой обработки. Возможности такой обработки можно также заранее закладывать в ГП в процессе изготовления. Замену в некоторых обстоятельствах можно осуществлять быстрее, чем используемые в настоящее время методы, поскольку в ходе замены микросхема уже не задействуется в вычислении параметров, задаваемых приложением.

Что касается модификации имеющейся области, применяемой в связи с анизотропными методами, модификацию размера и ориентации области согласно изобретению можно осуществлять, модифицируя системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v, обычно применяемые для расчета области, значениями смещения системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 uсм и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 vсм. На фиг.4В показано, что системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u+системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 uсм и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v+системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 vсм задают модифицированную ориентацию системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 см, а также задают модифицированную длину шага sсм. Таким образом, задавая значения смещения системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 uсм и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 vсм посредством API, операционной системы, комплекта инструментов, драйверов и т.д., можно управлять процессом дискретизации. Аналогично случаю замены современные гибко функционирующие ГП могут принимать маркеры, которые представляют функции для достижения этого, или их можно заранее изготавливать для достижения тех же результатов. Описанная здесь модификация предусматривает любую функцию системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 uсм или системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 vсм, а не только сложение, т.е. для решения конкретной задачи фильтрации можно использовать имеющиеся функции умножения, вычисления экспоненты, квадратного корня или любую другую математическую функцию F(системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 uсм) или F(системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 vсм).

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

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

c a = pi,j .системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 +(pi,j+1).(1-системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 a)

cb = pi+1,j .системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 +(pi+1,j).(1-системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 a)

F = lrp(c a,cb).системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 b

В другом(их) варианте(ах) осуществления изобретение позволяет разработчикам заменять или модифицировать системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 a и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 b, используемые при вычислении билинейной фильтрации, для обеспечения дополнительного уровня управления процессом дискретизации текстуры.

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

Ниже приведены примеры использования изобретения и соответствующий иллюстративный псевдокод.

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

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

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

На фиг.5 показан основной принцип затенения и проиллюстрированы другие варианты осуществления изобретения. На фиг.5 показан произвольный рельеф или поверхность Т, подлежащая затенению или подсвечиванию из точечного источника ps, где затененная область математически представляет области поверхности, открытые лучам, идущим из точечного источника ps. В этой связи, рельеф Т задают как совокупность точек, которые, помимо значений u и v, имеют также значение w, которое соответствует высоте точки рельефа Т. Таким образом, направление дискретизации для затенения или подсвечивания в трехмерной графике обычно предусматривает задание трехмерной дискретизации вектора направления, ориентация и длина шага которого определяется значениями системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u, системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 w. При этом изобретение позволяет заменять или модифицировать значения системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u, системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 w, применяя вышеописанные способы не только к значениям системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 u и системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 v, но и к значению системы и способы для обеспечения управляемой дискретизации текстуры, патент № 2324978 w.

Что касается объемной дискретизации с отсечением лучей, современные способы объемной визуализации требуют нарезки объема на многоугольники, перпендикулярные направлению наблюдения. Это порождает артефакты полосатости по краям и углам таких объемов. Способ(ы), отвечающий(е) изобретению, позволяют управляемо избегать этих артефактов и также повышать производительность. Таким образом, изобретение позволяет задавать или модифицировать трехмерный вектор, определяющий направление дискретизации, которое затем линейно повторяют от вершин. Затем дискретизацию можно осуществлять посредством ряда многоячейковых, например 8-ячейковых, трилинейных выборок или посредством билинейных выборок.

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

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

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

Программируемые значения, используемые в современной би/трилинейной дискретизации, включают в себя u-ширину и v-ширину четырехточечного ядра. Дополнительные значения для программируемой анизотропной дискретизации в соответствии с изобретением включают в себя расстояние du между выборками по u и расстояние dv между выборками по v. В этой связи, изобретение позволяет задавать или модифицировать эти параметры не только повершинно, но и попиксельно, с последующей итерацией. Например, таких способов было бы достаточно для анизотропного размывания карт окружения.

Неограничительный иллюстративный псевдокод

Иллюстративный псевдокод для базового анизотропного затенителя выглядит следующим образом:

цикл по пикселям

{

ComputeBaseUV(&u,&v)

ComputeDuDv(на основании станд. ур. площади)

sum = 0.0;

цикл по выборкам

{

u = u + du;

v = v + dv;

sum += GetBilinearSample(u,v);

}

sum = sum/nsamples(1,2,4,8)

}

Иллюстративный псевдокод для затенителя с размыванием при движении, например затенителя с анизотропным размыванием для моделирования начищенного металла с помощью карт окружающей среды, который работает на двухмерных повершинных данных, выглядит следующим образом:

цикл по пикселям

{

ComputeBaseUV(&u,&v)

ReadDuDv из текстуры или итераций, если по многоуг.

sum = 0.0;

цикл по колич. выборок (предпочтительно, степеней 2){

u = u + du;

v = v + dv;

sum += GetBilinearSample(u,v);

}

sum = sum/nsamples(1,2,4,8,16);

return sum;

}

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

du, dv, dw //шаги в направлении к источнику света

//(итерация от вершин)

цикл по пикселям

{

ComputeBaseUV(&u,&v)

w = SampleH(u,v); //начать луч в этом пикселе

sum = 0.0;

for i=0; i<кол_выборок (степ. 2 не треб.)

{

u = u + du; //итерация по направлению к свету

v = v + dv;

w = w + dw;

h = sampleH(u,v); //получить высоту

if (h>w) //если высота выше луча return 0.5; //то пиксель в тени

}

return 1.0; //иначе он полностью освещен

}

Иллюстративный псевдокод для затенителя поверхности с нечеткими тенями, который вычисляет дробное значение тени, распределяя тень к ближайшей(им) преграде(ам), выглядит следующим образом:

du, dv, dw //шаги в направлении к источнику света

//(итерация от вершин)

цикл по пикселям

{

ComputeBaseUV(&u,&v)

w = SampleH(u,v); //начать луч в этом пикселе

sum = 0.0;

for i=0; i<кол_выборок (степ. 2 не треб.)

{

u = u + du; //итерация по направлению к свету

v = v + dv;

w = w + dw;

h = sampleH(u,v); //получить высоту

del = h - w; //высота над лучом

if(del>max) max = del; //найти наибольшее значение

}

mapMaxtoShadow()

}

Другие примеры использования изобретения включают в себя обеспечение программируемого затенителя c объемным отсечением лучей, который накапливает и интегрирует значения трилинейных выборок. Подобный затенитель может вести себя по-разному, в зависимости от того, насколько надежны (неизменны) данные в конвейерной среде. В этой связи, изобретение можно применять совместно с z-буфером, чтобы интегрировать непрозрачные объекты. В этом случае, можно осуществлять одно считывание z-буфера, и z-буфер можно сравнивать для каждой выборки. Кроме того, такой способ позволяет полагать, что лучи всегда идут от глаза, что позволяет оканчивать интеграцию в соответствии с результатом операции сравнения глубины.

Другие примеры использования изобретения включают в себя обеспечение программируемого затенителя объемного тумана/налета с самозатенением, который применяет современный способ визуализации решетчатого типа для объемных данных, но использует способ(ы), описанные выше, для вычисления теневых лучей.

Существует несколько путей реализации настоящего изобретения. Один путь состоит в том, чтобы обеспечить реализацию, в которой сопроцессор(ы), например, ГП предварительно изготовлены, чтобы осуществлять функции изобретения, и принимают команды, пригодные для описанной здесь управляемой дискретизации текстуры. Другая реализация изобретения включает в себя ручное или автоматическое программирование сопроцессора(ов) для обеспечения функций изобретения, за счет чего надлежащий API, комплект инструментов, программа-драйвер, операционная система, автономный или загружаемый программный объект и т.д. позволяют использовать изобретение в отношениях между приложением и сопроцессором. Еще одна реализация включает в себя изменение параметров, передаваемых сопроцессору(ам) приложением, чтобы сделать модификацию/изменение параметров области для процесса дискретизации текстуры прозрачной/ым для сопроцессора(ов). Таким образом, изобретение предусматривает реализацию описанной здесь программируемой дискретизации текстуры полностью аппаратными средствами, частично аппаратными и частично программными, а также программную реализацию.

В иллюстративном варианте осуществления изобретения предусмотрен компонент API, который позволяет задавать параметр(ы) в выражении для дискретизации, которое идентифицирует вектор направления, в котором должна осуществляться дискретизация. Все вариации, описанные выше в отношении многомерных векторов дискретизации, также предусмотрены. Например, третий компонент, используемый для наклона подъема, можно использовать для отбрасывания теней, объемной визуализации и т.д. Пример такого компонента API для работы на аппаратных регистрах выглядит в формате псевдокода следующим образом:

LD# r0, t0, v0

выбрать текстуру, установленную на стадии #

поместить результат в r0

выбрать на координате текстуры t0

с осью отпечатка v0

и режим счетчика дискретизации/смешивания, заданный в описании стадии # выглядит следующим образом:

stg# wrapmode=off,

tilemode=wrap,

filtermode=programmable,

samplecount=16

width=1

filterop=replace(значения, заданные приложением)

Иллюстративная аппаратная часть, которая позволяет управлять вектором направления/шаг для автоматического затенения вышеописанными средствами, задаваемыми API, включает в себя следующие функциональные блоки: (А) задание по Умолчанию, (В) Замена, (С) Сложение и (D) Модуляция.

В этой связи, блок задания по Умолчанию задает традиционную, не управляемую приложением дискретизацию, в которой шаг и направление вычисляются на основании стандартного алгоритма анизотропной фильтрации. Функциональный блок Замена заменяет значения, заданные блоком по Умолчанию, значениями, задаваемыми приложением. Функциональный блок Сложение суммирует значения, задаваемые приложением, со значениями, вычисленными микросхемой, определяя, таким образом, конечное направление дискретизации. Функциональный блок Модуляция умножает вектор направления, задаваемый приложением, на вектор, вычисленный микросхемой, для определения конечного направления дискретизации.

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

Другие варианты использования изобретения включают в себя использование производных отображения горизонта по методу Нельсона Макса для получения самозатеняющихся текстур путем регулировки применяемых к ним параметров.

Изобретение в его различных соответствующих вариантах осуществления также поддерживает (1) обнаружение, (2) «опережающий вывод» или (3) возврат нуля(ей), когда луч отсечения пересекает текущий z-буфер или, когда наступает насыщение.

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

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

Описанные здесь различные способы можно реализовать аппаратными или программными средствами, а также, при необходимости, в комбинации. Таким образом, способы и устройства, отвечающие настоящему изобретению или определенным его аспектам или частям, могут принимать вид программного кода (т.е. команд), воплощенного на материальных носителях, например дискетах, CD-ROMax, жестких дисках или любом другом машинно-считываемом носителе информации, в котором, когда программный код загружается в машину, например компьютер, и выполняется ею, машина становится устройством для практического осуществления изобретения. В случае выполнения программного кода на программируемых компьютерах, вычислительное устройство обычно содержит процессор, носитель данных, считываемый процессором (включая энергозависимую и энергонезависимую память и/или элементы памяти), по меньшей мере, одно устройство ввода и, по меньшей мере, одно устройство вывода. Одна или несколько программ, которые могут пользоваться услугами обработки сигнала, отвечающими настоящему изобретению, например, с использованием API обработки данных и т.п., предпочтительно, реализуются на процедурно- или объектно-ориентированном языке программирования высокого уровня для взаимодействия с компьютерной системой. Однако программа(ы), при желании, можно реализовать на ассемблере или машинном языке. В любом случае, язык может быть компилируемым или интерпретируемым языком и сочетаться с аппаратными реализациями.

Способы и устройства, согласно настоящему изобретению, можно также осуществлять на практике посредством каналов связи, воплощенных в виде программного кода, передаваемого по некоторой среде передачи данных, например по электрическим проводам или кабелям, по оптическим волокнам или посредством любого другого вида передачи, причем при приеме и загрузке программного кода и выполнении его машиной, например, ЭППЗУ, вентильной матрицей, программируемым логическим устройством (ПЛУ), компьютером-клиентом, видеомагнитофоном и т.п. принимающая машина, имеющая средства драйвера, описанные выше в иллюстративных вариантах осуществления, становится устройством для практического осуществления изобретения. При реализации на процессоре общего назначения программный код объединяется с процессором для обеспечения уникального устройства, которое задействует функции, согласно настоящему изобретению. Дополнительно, любые средства хранения, используемые в связи с настоящим изобретением, могут неизменно являться объединением аппаратного и программного обеспечения.

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

Класс G06T11/40 заполнение плоской поверхности, те добавление цвета или текстуры

Наверх