Использование тороидального копирования для пошаговых обновлений текстуры

Программная модель алгоритма растрирования и структуры данных объектов реализована на языке высокого уровня С++. Этот язык хорошо подходит для реализации объектной модели описываемой системы, так как является объектно-ориентированным.

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

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

Основные области применения результатов работы - это интерактивные графические системы визуализации функционально заданных объектов, CAD-системы ^-моделирования, SD-веб-визуа-лизация и т.д. В известных пакетах SD-модели-рования стали применяться функциональные примитивы, например, метасферы (Meta Balls) в Strata Studio Pro. Важной прикладной задачей может стать применение предлагаемого функционального задания объектов для SD-веб-визуализации, например, функционально базируемое расширение 3D (X3D), а также VRML (Virtual Reality Modeling Language). Функционально заданные объекты могут использоваться совместно со стандартными моделями X3D и VRML. Для этого необходимо разработать функциональные узлы на базе разработанных примитивов и методов их визуализации с целью уменьшения количества передаваемых данных.

Литература

1. Pasko A.A., Adzhiev V.D., Sourin, A.I. et al. Function representation in geometric modeling: concepts, implementation and applications // The Visual Computer. 1995. № 11 (6), pp. 429-446.

2. Bloomenthal J., Shoemake K. Convolution surfaces, SIGGRAPH'91, Computer Graphics, 1991. Vol. 25. № 4, pp. 251256.

3. Muraki S. Volumetric shape description of range data using «blobby model». Computer Graphics. July 1991. № 25 (4), pp. 227-235.

4. Wyvill G., McPheeters C. and Wyvill B. Data structure for soft objects. The Visual Computer. 1986. № 2 (4), pp. 227-234.

5. Алгоритм визуализации трехмерных данных, заданных поверхностями свободных форм / С.И. Вяткин [и др.] // Программные продукты и системы. 1999. № 3. С. 16-21.

ИСПОЛЬЗОВАНИЕ ТОРОИДАЛЬНОГО КОПИРОВАНИЯ ДЛЯ ПОШАГОВЫХ ОБНОВЛЕНИЙ ТЕКСТУРЫ

Д.А. Шустиков

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

Ключевые слова: тороидальное копирование, визуализация, ландшафт.

В алгоритмах визуализации рельефа местности (например, алгоритм вложенных регулярных сеток [1, 2]) используется технология изменения триангулированной сетки путем выборки из текстуры высот на вершинном процессоре видеокарты. Компания Nvidia такую технологию называет

VTF [3]. Обычно в видеопамять нельзя поместить всю текстуру с высотами, ее сначала загружают с жесткого диска в кэш в оперативной памяти, и по мере продвижения наблюдателя по ландшафту происходят пошаговые обновления текстуры из этого кэша (рис. 1). При помощи тороидального

матрица высот в оперативной памяти

ч у\ 0 1 2 3 4 5 6 7 3

0 0 1 2 3 4 5 6 7 3

1 11 12 13 14 15 16 17 13 19

2 22 23 24 25 26 27 23 29 30 до сдвига

3 33 34 35 36 37 33 39 40 41 после сдвига

4 44 45 46 47 43] 49 50 51 52

5 55 56 57 53 59 60 61 62 63

6 66 67 68 69 70 71 72 73 74

7 77 73 79 30 31 32 33 34 35

3 38 39 90 91 92 93 94 95 96

Рис. 1. Перемещение по матрице высот

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

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

Основной принцип тороидального копирования основан на использовании свойств текстурной адресации на графическом аппаратном обеспечении.

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

т

и ——-—- И

У =

п—1

У_ п—1

В свою очередь, элементы текстуры хранятся в виде матрицы и распределены по интервалам вдоль ширины и высоты, длина интервала по оси х

(/х) и оси у (/ ) определяется как 1К= —

•Л

где И - ширина и высота текстуры соответственно. Текстурный элемент с координатами х, е[0,\у). у(е[0,Ь) будет принадлежать вершине, если и^[х,*/х,(х^+1)*/х) и (У,+1)Ч) (рис. 2).

Текстура в видеопамяти

0.25 0.50 0.75 1.0

0.2 0. 0 0 75

1 2 3 4

5 е 7 8

9 10 11 12

13 14 15 16

Триангулированная Результат наложения сетка текстуры на сетку

0.0 0.25 0.50 0.75

1 2 3 4

5 е 7 8

9 10 11 12

13 14 15 16

Рис. 2. Текстурная адресация

Если текстурные координаты выходят за пределы [0,...,1), текстура будет накладываться в зависимости от режима намотки. Одним из таких режимов является повторение, то есть когда текстурные координаты выходят за данный диапазон, текстура начинает повторяться. Например, если текстурные координаты вершины равны {1.0, 0.75}, то вершине будет присвоен текстурный элемент, находящийся в интервалах {[0, 0.25), [0.75, 1.0)]} (рис. 3).

Текстура в видеопамяти

Триангулированная Результат наложения текстуры на сетку

0.25 0.50 0.75 10

0.25 0.50 0 75

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

сетка 0.25 0.50 0.75 1.0

0.0 0.25 0.50 0.75

и

4 1 2 3

8 5 6 7

12 9 10 11

16 13 14 15

Рис. 3. Режим повторения текстуры

Тороидальное копирование

Рассмотрим, как с помощью текстурной адресации происходит тороидальное копирование. Предположим, что осуществляется перемещение по матрице высот в оперативной памяти (рис. 1). Будем считать, что положение 1 на рисунке 4 является начальным, тогда текстурные координаты и и у вложенной сетки рассчитываются по формулам (1) и (2), а текстура из оперативной памяти была скопирована полностью (рис. 4).

Текстура в видеопамяти

Триангулированная сетка

Результат наложения текстуры на сетку

>24 25 26 271

35 36 37 33|

146 47 48 491

157 58 59 601

0.0 0.25 0.50 0.75

0.0 0.25 0.50

0.75

И

24 25 26 27

35 36 37 38

46 47 48 49

57 58 59 60

Рис. 4. Наложение текстуры до тороидального копирования

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

хс=

УС=

матрица высот в оперативной памяти

0

1 2

3

4

5

0 1 2 3 4 5 6 7 3

0 1 2 3 4 5 6 7 8

11 12 13 14 15 16 17 13 19

22 23 24 25 26 27 23 29 30

33 34 35 36 37 38 39 40 41

44 45 46 47 49 50 51 52

55 56 57 58 59 60 61 62 63

66 67 63 69 70 71 72 73 74

77 73 79 30 31 32 33 34 35

38 39 90 91 92 93 94 95 96

Рис. 5. Тороидальное копирование

Изменим на графическом процессоре текстурные координаты триангулированной сетки по формулам: и=и+/х, у=у+/,. После чего текстура на сетке отобразится со сдвигом (рис. 6).

Соответственно, при сдвиге еще на один шаг в этом же направлении новые столбец и строка ско-пируются на позицию {1, 1} и циклически сдвинутся на 2 позиции, когда позиция хс='^, по формуле (3) она обнулится, то же произойдет и с ус=^, то есть это копирование циклически будет повторяться бесконечно.

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

Текстура в видеопамяти

Триангулированная сетка

Результат наложения текстуры на сетку

72 69 70 71

39 36 37 38

50 47 43 49

61 58 59 60

0.25 0.50 0.75 1.0

0.0 0.25 0.50 0.75

И

36 37 38 39

47 48 49 50

58 59 60 61

69 70 71 72

Рис. б. Напожение текстуры после тороидапъного копирования

матрицы высот в текстуру полностью будет перемещено п2=65025 элементов, а с помощью тороидального копирования п-2=65025 элементов, что в 127,5 раза меньше.

Литература

1. Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids Frank Losasso Hugues Hoppe. URL: http://re-search.microsoft.com/en-us/um/people/hoppe/geomclipmap. pdf (дата обращения: 19.07.2009).

2. GPU based clipmaps Implementation of Geometry Clip-maps for terrain with non-planar basis Anton Fruhstuck. URL: http://www.cg.tuwien.ac.at/research/publications/2008/fruehstueck-2008-gpu/fruehstueck-2008-gpu-paper.pdf (дата обращения: 19.07.2009).

3. Arul Asirvatham and Hugues Hoppe. Terrain rendering using GPU-based geometry clipmaps. In M. Pharr and R. Fernando, editors. URL: http://research.microsoft.com/en-us/um/people/hop-pe/gpugcm.pdf (дата обращения: 19.07.2009).

4. Interactive Terrain Rendering: Towards Realism with Procedural Models and Graphics Hardware Dipl.-Inf. Carsten Dachsbacher Erlangen-2006. URL: http://www.vis.uni-stutt-gart.de/~dachsbcn/publications.html (дата обращения: 19.07. 2009).

5. URL: http://www.nvidia.com/page/technologies.html (дата обращения: 19.07.2009).

МОДЕЛЬ КОНСТРУКТИВНО-УНИВЕРСАЛЬНОГО АВТОМАТА

В.В. Дрождин, к.т.н.; М.В. Жуков

(Пензенский государственный педагогический университет им. В.Г. Белинского,

йтогНсИпфрри-репга. ги)

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

Ключевые слова: клеточный автомат, универсальный автомат, конструктивно-универсальный автомат, описание автомата, конструирование автомата.

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

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

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

Рецепторы (входы) - элементы автомата, которые способны воспринимать сигналы из внешней среды или от эффекторов.