[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Web - программирование / VRML /

Шаг 8 - Параметры виртуального мира

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

Узел WorldInfo имеет следующее описание:

WorldInfo { 
  field MFString info  []
  field SFString title ""
}

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

WorldInfo { 
  info  ["HEHEHE !!! FIRST STEPS - Forever !!!"]
  title "VRML WorldInfo node example"
}

В отличии от WorldInfo, узел Background более полезен. Описание его такое:

Background { 
  eventIn      SFBool   set_bind
  exposedField MFFloat  groundAngle  []
  exposedField MFColor  groundColor  []
  exposedField MFString backUrl      []
  exposedField MFString bottomUrl    []
  exposedField MFString frontUrl     []
  exposedField MFString leftUrl      []
  exposedField MFString rightUrl     []
  exposedField MFString topUrl       []
  exposedField MFFloat  skyAngle     []
  exposedField MFColor  skyColor     0 0 0
  eventOut     SFBool   isBound
}

Как видите оно даже громадное :)) Поэтому обо всем по порядку. С помощью данного узла можно устанавливать два типа фона: из цветов и изображений.

Все фоновое пространство виртуального мира поделено на сферу неба (sky) и полусферу земли (ground). Цвета, в которые будет окрашиваться небо задаются с помошью параметров skyColor и skyAngle. Если Вы заметили, то эти параметры являются массивами. Для чего это надо ? Для того, чтобы окрашивать небосвод в более чем один цвет, к примеру во время заката небо окрашено разными цветами. Действует эта схема следующим образом: сначала вы разбиваете сферу на участки с помощью массива углов skyAngle, которые задаются в радианах. Первой точкой разбиения является верхняя точка небесной сферы равная 0 радиан, ее не надо указывать потому, что она является "точкой отсчета" углов. Далее может идти неограниченное количество углов в порядке возрастания. Последним углом будет нижняя точка сферы, равная числу Pi=3.1415, т.е. 180 градусам. Эта точка является максимальным значением угла и также не указывается. Таким образом, чтобы разбить, к примеру, небесную сферу на две разноцветных половинки надо в массив углов занести значение угла делящего отрезок [0 .. Pi] пополам.

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

#VRML V2.0 utf8

Background {
#	          синий   красный  зеленый  желтый
	skyColor [0 0 1,    1 0 0,   0 1 0, 1 1 0]
	skyAngle [0.9, 1.65, 2.2]
}

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

Заметьте, что между соседними цветами браузер делает плавный переход между цветами - градиент, чтобы не было четких границ. Если вы будете использовать только одно значение цвета:

#VRML V2.0 utf8

Background {
#	     синий
	skyColor 0 0 1
}

То небесная сфера будет окрашена в один цвет.

Кроме небесной сферы есть еще полусфера земли. За ее окраску отвечают параметры groundColor и groundAngle. Углы лежат в диапазоне от 0 до 90 градусов, т.е. [0 .. Pi/2]:

#VRML V2.0 utf8

Background {
	groundColor [ 1 1 0,1 0.5 0, 0 1 0]
	groundAngle [0.6, 1.2]
}

Вот как будет закрашиваться земля:

Кроме обычной окраски фона, Вы можете задавать фоновые изображения, создавая таким образом фоновую панораму мира. Физически это представляет собой куб с "бесконечно большими" гранями, на которые наложены текстуры указанные в параметрах topUrl, frontUrl, leftUrl, rightUrl, backUrl, bottomUrl :

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

Внутри этого куба как раз и "бродит" пользователь :) Таким вот образом вы можете создать небеса, горы, моря и все что душе угодно.




Комментарии

rbxhwfzj
25-07-2011   
uwl3xe <a href="http://serfgkkmagdj.com/">serfgkkmagdj</a>

Mena
25-07-2011   
And I was just wodnering about that too!

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Web - программирование / VRML /

Шаг 19 - Трехмерный текст, узел Text
17-09-2009   

Узел Text описывается следующим образом... подробнее

Кол. просмотров: общее - 3216 сегодня - 3

Шаг 18 - Стиль шрифта, узел FontStyle
17-09-2009   

Узел FontStyle задает стиль шрифта для использования его в трехмерном тексте. Определен данный узел следующим образом... подробнее

Кол. просмотров: общее - 3194 сегодня - 2

Шаг 17 - Экструзии или вытягивание контуров, узел Extrusion
17-09-2009   

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

Кол. просмотров: общее - 3013 сегодня - 1

Шаг 16 - Массив трехмерных линий, узел IndexedLineSet
17-09-2009   

Прежде чем рассматривать основной узел давайте познакомимся с узлом Color... подробнее

Кол. просмотров: общее - 3120 сегодня - 0

Шаг 15 - Созданние сложных тел, узел IndexedFaceSet
17-09-2009   

Прежде чем разбираться с узлом IndexedFaceSet нам надо разобраться с узлом Coordinate. Определяется он следующим образом... подробнее

Кол. просмотров: общее - 3232 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects