Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Трехмерные миры в WEB форматы.docx
Скачиваний:
5
Добавлен:
19.11.2018
Размер:
289.67 Кб
Скачать

Архитектура

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

Зеленым отмечены основные компоненты O3D:

  • Само JavaScript O3D приложение.

  • JavaScript утилиты, содержащие часто используемые элементы кода, помогающие вам в разработке.

  • API графической сцены, это JavaScript API состоящее из классов и функций, используемых вашим приложением.

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

Как показывает архитектурная схема, O3D взаимодействует с аппаратной составляющей компьютера (имеется ввиду видео процессор GPU) с помощью библиотек OpenGL или Direct3D.

Отказ от разработки

В 2010 году компания Google Inc. приняла решение, что развивать технологию в том виде, в котором она разрабатывается, не имеет смысла и объявила, что применение O3D нежелательно, а большая часть разработок переносится в WebGL, хотя поначалу компания собиралась развивать технологии параллельно, не будучи уверенной в успехе WebGL

Пример

В этой главе мы рассмотрим процесс создания текстур и их наложения на формы. Текстуру можно представить как изображение(двумерный массив пикселей с определенными атрибутами) которое накладывается на поверхность трехмерной формы. Изображение может быть TGA, JPEG, PNG, или DDS формата. Используя texture sampler, вы определяете ряд положений, согласно которым текстура накладывается на поверхность.

Наше приложение Hello Cube Текстуры будет создавать вращающийся куб и накладывать на каждую грань по текстуре. Причем пользователь может подгружать свою текстуру с определенного URL адреса.

О текстурах

В O3D координаты положения текстур обозначены следующим образом: u - координата по горизонтали, v - координата по вертикали. Нижнему левому углу соответствуют координаты (0.0, 0.0) (в формате (u, v)), а верхнему правому (1.0, 1.0).

Так же в O3D текстура может быть представлена в форме 3D куба. Такая текстура называется cube texture и содержит 6 изображений, по одному на каждой грани, а навигация осуществляется с помощью трех координат (u, v, и w). Эффект наложения такой текстуры можно представить примерно как обертывание формы поверхностями куба.

Текстурные самплеры

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

  • addressModeU(WRAP)

  • addressModeV (WRAP)

  • minFilter (LINEAR)

  • magFilter (LINEAR)

  • mipFilter (POINT)

  • borderColor (Float4(0,0,0,0)

  • maxAnisotropy (1)

Режимы адресации

Атрибуты addressModeU и addressModeV регулируют ситуации возникающие когда координаты текстуры заданы в размерности выходящей за рамки диапазона (0.0 ; 1.0). В примере, приведенном ниже в этой главе, координаты u и v изменяются от 0.0 до 2.0. Последствия применения различных значений этих атрибутов приведены в таблице:

Значение

Описание

WRAP

Повторение текстуры по все области (default)

MIRROR

Повторение текстуры, инвертируя ее при пересечении крайних точек системы координат(0.0 или 1.0 до приведения)

CLAMP

Последняя строка пикселей в текстуре повторяется пока полностью не покроет поверхность

BORDER

Цвет границы текстуры присваивается пикселям на которые текстуры не хватило.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]