Научная статья на тему 'Адаптивное текстурирование твердых тел для веб-приложений'

Адаптивное текстурирование твердых тел для веб-приложений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
67
13
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Яковлев Д.С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ADAPTIVE SOLID TEXTURING FOR WEB APPLICATIONS

Solid texturing is a well-known computer graphics technology, but rather a time consuming one, every pixel is calculated on the fly or has a very high memory requirement if all of the pixels are stored in the beginning. Although some methods have been proposed, almost all of them need the support of specific hardware accelerators. Hence, these methods could not be applied to all kinds of machines, especially the low-cost ones available over the Internet. In this paper the author presents a new method for procedural solid texturing. The presented approach could almost render an object with solid texturing in real-time using only a software solution.

Текст научной работы на тему «Адаптивное текстурирование твердых тел для веб-приложений»

Информационные системы и технологии

УДК 004.932

Д. С. Яковлев

Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Россия, Красноярск

АДАПТИВНОЕ ТЕКСТУРИРОВАНИЕ ТВЕРДЫХ ТЕЛ ДЛЯ ВЕБ-ПРИЛОЖЕНИЙ

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

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

Текстурирование твердых тел с помощью процедурных алгоритмов - техника, дающая достаточно реалистичные изображения [1; 2], так как она использует 3Б-координаты в качестве параметров для представления модели. Но текстуры - это только 2Б-изображения, спроецированные на поверхность, и расчет соответствующих данных текстуры «на лету» требует много времени, так как функция тексту-рирования может иметь высокую вычислительную сложность. Существует идея создавать 3Б-модели заранее и использовать их как библиотеки в нужный момент [3]. Однако если разрешение 3Б-изображения низкое, то появляются дополнительные проблемы ступенчатости, требующие применения методов сглаживания. Если же мы увеличим разрешение изображения, возникает проблема хранения больших объемов данных, а для веб-приложений, работающих в Интернете, появляются проблемы доступа и быстрого получения этих данных.

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

Поскольку необходимые текстурные данные рассчитывается по требованию, нет необходимости генерировать кэш-куб до процесса визуализации. Даже если куб будет создан заранее и иметь малую размерность, к примеру, 128*128x128 пикселей, то его объем составит около 8 Мб, что достаточно много, особенно для интернет-канала с низкой пропускной способностью. Но при визуализации 3Б-объектов видимая площадь объекта составляет лишь малую часть всей модели, и, следовательно, существует относи-

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

После определения текстур с различной детализацией с помощью подхода MIP-Mapping определяются LOD (от англ. Level оf Detail - уровень детализации) как параметры системы, поэтому наиболее подходящие уровни кэш-куба для каждого пикселя на экране определяются этими уровнями. Более того, поскольку предоставляется механизм, использующий уровни детализации, могут использоваться множественные кэш-кубы с текстурами различного разрешения.

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

Библиографические ссылки

1. Заргарян Ю. А., Заргарян Е. В. Компьютерная графика в практических приложениях. Таганрог : Изд-во технол. ин-та ЮФУ, 2009.

2. Chen B.-Y., Nishita T. jGL and its applications as a Web3d platform // Proc. of Web3D Conf. Paderborn, 2001. P. 85-92.

3. Texturing and modeling: a procedural approach / D. S. Ebert et al. 2nd ed. AP Professional, 2002.

4. Goldstone W. Unity Game Development Essentials. Packt Publishing Ltd, 2009.

Решетневскце чтения

D. S. Yakovlev

Siberian State Aerospace University named after academician M. F. Reshetnev, Russia, Krasnoyarsk ADAPTIVE SOLID TEXTURING FOR WEB APPLICATIONS

Solid texturing is a well-known computer graphics technology, but rather a time consuming one, every pixel is calculated on the fly or has a very high memory requirement if all of the pixels are stored in the beginning. Although some methods have been proposed, almost all of them need the support of specific hardware accelerators. Hence, these methods could not be applied to all kinds of machines, especially the low-cost ones available over the Internet. In this paper the author presents a new method for procedural solid texturing. The presented approach could almost render an object with solid texturing in real-time using only a software solution.

© Яковлев Д. С., 2011

i Надоели баннеры? Вы всегда можете отключить рекламу.