Vrml’97 источники освещения


Содержание

The Virtual Reality Modeling Language

International Standard ISO/IEC 14772-1:1997

Copyright © 1997 The VRML Consortium Incorporated.

This document is part 1 of ISO/IEC 14772-1:1997, the Virtual Reality Modeling Language (VRML), also referred to as «VRML97». The full title of this part of the International Standard is: Information technology — Computer graphics and image processing — The Virtual Reality Modeling Language (VRML) — Part 1: Functional specification and UTF-8 encoding .

Background Clauses Annexes
Foreword 1 Scope A Grammar
Introduction 2 Normative references B Java platform
3 Definitions C ECMAScript
4 Concepts D Examples
5 Field and event reference E Bibliography
6 Node reference F Extensions
7 Conformance

The Foreword provides background on the standards process for VRML. The Introduction describes the purpose, design criteria, and characteristics of VRML. The following clauses define part 1 of ISO/IEC 14772:

  1. Scope defines the problem area that VRML addresses.
  2. Normative references lists the normative standards referenced in this part of ISO/IEC 14772.
  3. Definitions contains the glossary of terminology used in this part of ISO/IEC 14772.
  4. Concepts describes various fundamentals of VRML.
  5. Field and event reference specifies the datatypes used by nodes.
  6. Node reference defines the syntax and semantics of VRML nodes.
  7. Conformance and minimum support requirements describes the conformance requirements for VRML implementations.

There are several annexes included in the specification:

  1. Grammar definition presents the grammar for the VRML file format.
  2. Java platform scripting reference describes how VRML scripting integrates with the Java platform.
  3. ECMAScript scripting reference describes how VRML scripting integrates with ECMAScript.
  4. Examples includes a variety of VRML example files.
  5. Bibliography lists the informative, non-standard topics referenced in this part of ISO/IEC 14772.
  6. Recommendations for non-normative extensions lists informative recommendations for extensions to VRML.

Сверхвысокая цветопередача светильников FireLED

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

Мы производим светодиодные светильники с максимально возможной на сегодняшний день цветопередачей (CRI) более 97. Индекс цветопередачи увеличился по сравнению с предыдущей моделью с 90 на 97 Ra.

Идеальным считается CRI = 100. Приближение этого параметра к 100 Ra свидетельствует о том, что от прибора исходит свет, максимально приближенный к естественному, за счет чего улучшается внешний вид освещаемого объекта. Высокий уровень цветопередачи улучшает качество видимого света и позволяет использовать данные светодиоды для освещения музеев и других помещений, где требуется максимально точно передать гамму красок. Нами освоена промышленная технология серийного производства светодиодных светльников с фантастическим индексом цветопередачи (CRI), более 97 и максимально приближенным к естественному солнечному свету, что превосходит лучшие зарубежные аналоги. Максимальный индекс цветопередачи светильников позволяет человеческому глазу видеть вещи такими, какие они есть, что особенно важно людям, чьи профессии связаны с правильным цветовосприятием (художники, дизайнеры, др.). Помимо этого, высокий индекс цветопередачи позволяет лучше различать цвета без лишней нагрузки на зрение в темное время суток.

Светодиодные светильники российского производства FireLED со сверхвысокой цветопередачей Super High CRI (Ra 97)

Запуск серийного производства светодиодных ламп с индексом цветопередачи – свыше 97

Прошла пресс-конференция ЗАО «Светлана-Оптоэлектроника», посвященная запуску серийного производства светодиодных ламп с высочайшими показателями индекса цветопередачи – свыше 97

Освоение новой технологии

На пресс-конференции, проведенной компанией ЗАО «Светлана-Оптоэлектроника», обсудили освоение новой технологии промышленного производства ламп, обладающих сверхвысоким индексом цветопередачи (CRI) – свыше 97.

На мероприятии присутствовали эксперты в данном вопросе – руководство ЗАО «Светлана-Оптоэлектроника»: гендиректор А. Мохнаткин, замгендиректора в сфере технического развития В.Молодцов, замгендиректора в области научной работы и проектов Д. Бауман, главный технолог предприятия Е.Маслова, замдиректора А.Богданов и начальник отдела, занимающегося разработкой светодиодов, Д. Николаев.

Темы обсуждений

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

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

Также эксперты рассказали о наиболее популярных сферах применения новых ламп и о их безопасности для глаз.

Демонстрация работы светодиодной лампы с CRI 97

Для наглядной демонстрации разницы в восприятии объектов при обычном и высоком индексе цветопередачи сотрудниками лаборатории измерений был проведен сравнительный эксперимент с использованием одинаковых наборов предметов, которые были освещены новой лампой SvetaLED® 11 Вт и люминесцентной лампой.

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

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

Vrml’97 источники освещения

ГОСТ Р 55840-2013

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ИСТОЧНИКИ СВЕТА И ПРИБОРЫ ОСВЕТИТЕЛЬНЫЕ

Представление данных для расчета освещения

Light sources and lighting fittings. Presentation of data for calculation of lighting

Дата введения 2015-01-01

1 РАЗРАБОТАН Обществом с ограниченной ответственностью «Всероссийский научно-исследовательский, проектно-конструкторский светотехнический институт им.С.И.Вавилова» (ООО «ВНИСИ»)

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 332 «Светотехнические изделия»

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 22 ноября 2013 г. N 1779-ст

4 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)

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

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

Настоящий стандарт устанавливает требования к представлению данных источников света (ИС) и осветительных приборов (ОП), используемых для расчета освещения при проектировании, реконструкции и эксплуатации осветительных установок.

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты:

ГОСТ Р 55392-2012 Приборы осветительные и комплексы. Термины и определения

ГОСТ Р МЭК 60598-1-2011 Светильники. Часть 1. Общие требования и методы испытаний

ГОСТ 14254-96 (МЭК 529-89) Степени защиты, обеспечиваемые оболочками (код IP)

ГОСТ 15150-69 Машины, приборы и другие технические изделия. Исполнения для различных климатических районов. Категории, условия эксплуатации, хранения и транспортирования в части воздействия климатических факторов внешней среды

Примечание — При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя «Национальные стандарты» за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящего стандарта в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется применять в части, не затрагивающей эту ссылку.

3 Термины и определения

В настоящем стандарте применены термины по ГОСТ Р 55392, а также следующие термины с соответствующими определениями:

3.1 маркировка источника света или осветительного прибора: Комбинация цифр и букв, используемая для идентификации ИС или ОП.

3.2 габаритные размеры ИС: Геометрические размеры ИС.

4 Требования к представлению данных для источников света

4.1 Светотехнические требования

4.1.1 Светотехнические требования ИС должны содержать данные о:

— световом потоке, лм;

— спаде светового потока;

— продолжительности горения, ч;

— индексе цветопередачи;

— коррелированной цветовой температуре, К.

Примечание — Спад светового потока ИС может быть представлен графически или в виде таблицы. Для выбора оптимального режима эксплуатации рекомендуется представлять данные в табличной форме.

4.1.2 Для светодиодных ИС дополнительно представляют данные о:

— цвете светодиодных ИС (для цветных светодиодных ИС указывают доминирующую длину волны);

— световом потоке при номинальном значении тока для ИС конкретных типов (силу света при номинальном значении тока), лм;

— угле излучения.


4.2 Эксплуатационные требования

4.2.1 Эксплуатационные требования ИС должны содержать данные о:

— классе энергетической эффективности (кроме светодиодных ИС);

— номинальной мощности (кроме светодиодных ИС), Вт;

— габаритных размерах, мм;

— маркировке.

4.2.2 Для светодиодных ИС дополнительно должны быть представлены данные о:

— максимальной рабочей температуре, °С;

— номинальном значении тока, А;

— напряжении при номинальном значении тока, В.

5 Требования к представлению данных для осветительных приборов

5.1 Светотехнические требования

5.1.1 Светотехнические требования ОП должны содержать данные о:

— распределении силы света в форме таблицы приведенных значений силы света.

Примечание — В таблицу должны быть занесены значения силы света в системе фотометрирования ( ) или ( ), приведенные к световому потоку, равному 1000 лм, условного ИС;

— распределении силы света в виде графика в любой системе координат — полярной или декартовой;

— распределении силы света в виде файла для использования в компьютерных программах.

Примечание — Файл должен содержать данные о характеристиках ОП, записанных по определенному формату (см. приложения А, Б), например в IES-формате [1];

— предельной силе света в меридиональной плоскости под углами 80° и 90° к оптической оси для ОП утилитарного наружного освещения;

— коэффициенте спада светового потока ОП.

Примечание — Значения коэффициента спада светового потока ОП могут быть представлены графически или в виде таблицы. Для выбора оптимального режима эксплуатации рекомендуется представлять данные в табличной форме;

— габаритной яркости в виде таблицы значений, приведенных к световому потоку, равному 1000 лм, условного ОП.

Примечания

1 Приведение силы света и габаритной яркости к световому потоку необходимо для неразборных ОП со светодиодными ИС.

2 Для ОП, используемых в осветительных установках для освещения рабочих мест в помещениях, где используют дисплеи с углом наклона не более 15° от вертикали, значения габаритной яркости следует представлять в направлении силы света ОП для угла , равного 55°, 65°, 75° и 85° от вертикали в -плоскостях;

— коррелированной цветовой температуре для ОП со светодиодными ИС;

— световой отдаче и коэффициенте световой отдачи для ОП со светодиодными ИС;

— защитном (условно защитном) угле;

— коэффициенте полезного действия, кроме ОП со светодиодными ИС.

5.2 Общие технические требования

Данные по общим техническим требованиям должны содержать информацию о:

— потребляемой мощности ОП, с учетом потребляемой мощности пускорегулирующими аппаратами и различными устройствами управления ИС;

— классе защиты от поражения электрическим током по ГОСТ Р МЭК 60598-1;

— климатическом исполнении и категориям размещения по ГОСТ 15150;

— степени защиты от воздействия окружающей среды (проникновения пыли, влаги и твердых частиц по ГОСТ Р МЭК 60598-1 и ГОСТ 14254);

— сроке службы;

— геометрических, установочных, присоединительных размерах и массе.

Примечание — Для настольных ОП могут быть представлены данные о высоте его установки относительно уровня пола или поверхности стола;

— маркировке;

— способе монтажа.

Приложение А (справочное). Правила формирования файла фотометрических данных по формату IES

А.1 Общие положения

А.1.1 Фотометрические данные ОП записывают в виде текстового файла в кодировке ASCII. Основные параметры приведены в таблице А.1, дополнительные — в А.2.

Уличный настенный светильник Lucide Dimo 27853/01/97

Подробнее о доставке смотрите в разделе «Доставка и оплата»

Оплачивайте покупки в нашем магазине любым удобным Вам способом

Подробнее об оплате смотрите в разделе «Доставка и оплата»

Покупатель вправе отказаться от товара в любое время до его передачи, а после его передачи в течении 7 (семи) дней.

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

Возврат и обмен товара возможен только при сохранении его внешнего вида, целостности упаковки и документов.

Если Вы обнаружите дефект в течение 7 дней, то мы производим его бесплатную заменуПодробнее

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

Характеристики внедрения led-источников освещения в организации на примере модернизации системы освещения корпуса «Института экономики и управления» Гуманитарно-педагогической академии (г. Ялта) Текст научной статьи по специальности « Экономика и экономические науки»

Аннотация научной статьи по экономике и экономическим наукам, автор научной работы — Кожин В.В.

В исследовании рассматривается возможность и экономическая целесообразность замены устаревших источников освещения новейшими лампами на базе полупроводниковых диодов повышенной яркости ( LED Light-emitting diode). Исследование содержит две части: в теоретической части отражены главные технические характеристики LED . Отмечены и рассмотрены отдельные аспекты применения различных конструктивных особенностей ламп, имеющихся на рынке электротехнических товаров РФ. Практическая часть позволяет отметить перспективы внедрения LED на организационном уровне (на примере положительного экономического эффекта модернизации освещения корпуса Института «Экономики и Управления»).

Похожие темы научных работ по экономике и экономическим наукам , автор научной работы — Кожин В.В.,

Текст научной работы на тему «Характеристики внедрения led-источников освещения в организации на примере модернизации системы освещения корпуса «Института экономики и управления» Гуманитарно-педагогической академии (г. Ялта)»

СПЕЦИАЛЬНЫЙ РАЗДЕЛ: МОЛОДЫЕ УЧЕНЫЕ

магистрант VI курса Направление подготовки: Менеджмент Институт экономики и управления Гуманитарно-педагогической академии ФГАОУ ВО «КФУ им. В.И. Вернадского»,

Научный руководитель: Казак А. Н. к.э.н., доцент кафедры менеджмента, Институт экономики и управления Гуманитарно-педагогической академии ФГАОУ ВО «КФУ им. В.И. Вернадского»,

ХАРАКТЕРИСТИКИ ВНЕДРЕНИЯ LED-ИСТОЧНИКОВ ОСВЕЩЕНИЯ В ОРГАНИЗАЦИИ НА ПРИМЕРЕ МОДЕРНИЗАЦИИ СИСТЕМЫ ОСВЕЩЕНИЯ КОРПУСА «ИНСТИТУТА ЭКОНОМИКИ И УПРАВЛЕНИЯ» ГУМАНИТАРНО-ПЕДАГОГИЧЕСКОЙ АКАДЕМИИ (Г. ЯЛТА)

В исследовании рассматривается возможность и экономическая целесообразность замены устаревших источников освещения новейшими лампами на базе полупроводниковых диодов повышенной яркости (LED — Light-emitting diode). Исследование содержит две части: в теоретической части отражены главные технические характеристики LED. Отмечены и рассмотрены отдельные аспекты применения различных конструктивных особенностей ламп, имеющихся на рынке электротехнических товаров РФ. Практическая часть позволяет отметить перспективы внедрения LED на организационном уровне (на примере положительного экономического эффекта модернизации освещения корпуса Института «Экономики и Управления»).

Ключевые слова: диодный источник света, инновация, модернизация, освещение, полупроводниковый диод, практический подход, технические характеристики, LED, экономический эффект.

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

Теоретические аспекты рассмотрения проблемы внедрения диодных источников подкреплены расчетными данными модернизации системы освещения корпуса Института «Экономики и Управления» («ЭиУ») Гуманитарно-Педагогической Академии, филиала ФГАОУ ВО КФУ им. Вернадского в г. Ялта.

I. Теоретические характеристики применимости LED источников освещения в жилых

и рабочих помещениях

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

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

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

• Цоколь и тип исполнения корпуса (E27, E14, G5, G13, GU4, GU5.3 (см. Рисунок 1)); Потребляемая мощность 3-20 Вт;

Питаемое напряжение от 12В постоянного до 220В переменного напряжения; Мощность излучения в люменах — 70-90 Лм/Вт; Возможность регулировки яркости; Распределение света;

Диапазон температур рабочей среды (от -50 до +50) Цветовая температура свечения1 (Рисунок 2)

Конструктивное исполнение (позволяет применять LED в различных светильниках).

Рис. 1. Типы цоколей светодиодных ламп [3]

1 Оттенок света по шкале, представленной на Рисунке 2, определяется на основании свечения металла, когда он раскалён до определённой температуры.

Для замены люминесцентных ламп дневного освещения используются светодиоды в трубчатом корпусе с двухштырьковыми выводами 05 и 013 (Рисунок 1)

Рис. 2. Спектр световых температур, которые могут быть воспроизведены LED источниками

Температура жёлтого тёплого свечения металла соответствует температуре 2700К (градусов по шкале Кельвина). Для белого цвета дневного освещения соответствует температура 4500-6000К (в физическом плане, соотнесённая с температурой поверхности Солнца). При этом на нижней границе белый свет имеет желтоватый оттенок, а на верхней (выше 6500К) — голубоватый холодный свет.

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

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

Самый значительный для потребителя параметр (ввиду его наглядности) — это мощность излучения света от лампы и её эффективность. Она измеряется в люменах (Лм) или Лм/Вт (прирост светимости в единицу мощности). Второй параметр также определяет отношение мощности излучения к потребляемой мощности, фактически показывая её экономичность (см. Рисунок 3). Более широкие характеристики LED в сравнении с эквивалентной люминесцентной лампой приведены в таблице 1 основной части (см. таблицу 1).

Сравнительная таблица технических характеристик светодиодных и люминесцентных ламп (составлено на основании исследования производственных характеристик ламп [2, 3])


Технические характеристики Светодиодная лампа Эквивалентная люминесцентная лампа

Источник света Светодиоды SMD Люминофор

Цвет Холодно-белый Холодно-белый

Цветовая температура 5000-5500К 5000-5500К

Рабочее напряжение АС 220В (120-280В) АС 220В

Рабочая частота 50 Гц 50 Гц

Мощность 10 Вт 20 Вт

Угол свечения 120 160

Яркость 910 Лм 1300 Лм

Материал Оптический поликарбонат Стекло

Таврический научный обозреватель

www.tavr.science № 2 (7) — февраль 2020

Утилизация Не требуется Требуется

Срок службы до 80000 часов (20 лет) до 10000 часов (1 год)

Пульсации светового потока Отсутствуют Есть пульсации

Работа при пониженных температурах Работают нормально Не работают при 1;о i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. 100 Вт — 1000 Лм

Лампа накаливания, мощность в Вт

Люминесцентная гампа, мощность в Вт

гампа, мощность в Вт

Световой поток, Лм

20 ВТ 5-7 ВТ 2-3 ВТ ОКОЛО 250 Лм

40 Вт 10-13 Вт 4-5 Вт Около 400 Лм

60 Вт 15-16 Вт 8-110 Вт Около 700 Лм

75 ВТ 18-20 ВТ 10-12 Вт Около £)00 Лм

100 ВТ 25-30 ВТ 12-15 ВТ Около 1200 Лм

150 ВТ 40-50 ВТ 18-20 ВТ ОКОЛО 1800 Лм

200 Вт 60-80 Вт 25-30 Вт Около 2500 Лм

Рис. 3. Сравнительная характеристика мощности светового потока LED по отношению к люминесцентным ламп и лампам накаливания системы Эдисона-Суона [5]

2 1Лк = 1Лм/1кв.м, т.е. освещенность на поверхности равна 1 (Лк), если световой поток мощностью 1 (Лм) будет падать на поверхность площадью 1 (кв.м.)

При этом на упаковке почти всегда указывается мощность светового потока или эффективность (светоотдача) или же вся сравнительная характеристика с приравниванием её к аналогичной по светимости нити накаливания.

Однако теоретическая часть исследования была бы не полной без приведения положительных и отрицательных характеристик диодных источников света. Положительные:

• Экономичность в плане энергопотребления (3-25 Вт);

• Высокая эффективность в плане светоотдачи на потреблённый 1 Ватт мощности (7090 Лм/Вт);

• Чистый цвет свечения, узкий спектр;

• Отсутствие ультрафиолетового излучения;

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

II. Практические характеристики применения LED источников освещения в корпусе

института экономики и управления

В основе расчёта экономической эффективности внедрения LED источников освещения лежат данные, полученные в хозяйственном отделе Гуманитарно-педагогической Академии. Они представлены показаниями электросчётчика в киловаттах по месяцам за учётный период (2014 г.), а также суммой в рублях, уплаченных за потреблённое электричество.

Исходя из предоставленных данных, была вычислена приблизительная сумма затрат Академии по корпусу Института «ЭиУ» на освещение в 2014 году при имеющихся ресурсах осветительных приборов. Именно, приборов, представленных люминесцентными лампами дневного света мощностью 30 и 20 Вт, установленных в потолочные светильники по 4 и по 2 штуки (суммарная мощность светильников 120, 60, 80 Вт). Внешнее освещение не учитывалось, так как оно не задействовано в течение рабочего дня.

На основании исследования расположения светильников в корпусе Института «ЭиУ» было вычислена суммарная потребляемая мощность за период, равный одному рабочему дню (8 часов), за месяц, равный 22 дням и рабочий год, равный 10 месяцам (июль и август не брались в рассмотрение).

Для того чтобы оценить соотношение светового потока (в люменах (Лм)) и мощности ламп различного рода (накаливания, люминесцентных и LED) были изучены данные исследовательских центров Германии, выведены коэффициенты соответствия. Информация, приведённая в таблице №2, даёт наглядное представление о соотношении мощности ламп различного рода.

Соотношение эффективной мощности ламп в Ваттах (составлено на основании данных, _полученных немецкими исследовательскими центрами [2,4])_

№ Светодиодная Коэффициент Люминесцентная Коэффициент Лампа

п/п лампа (LED) соотношения лампа соотношения накаливания

1 1 3,00 3 5,00 15

2 3 2,33 7 5,00 35

3 5 2,20 11 4,55 50

4 6 2,00 12 5,00 60

5 7 2,29 16 4,38 70

6 9 2,22 20 4,50 90

7 12 2,08 25 4,80 120


8 15 2,07 31 4,84 150

9 18 2,00 36 5,00 180

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

При этом, затраты на осуществление предложенного варианты будут составлять:

1) ¿общ = Кл * Цл ср ,

где: Кл — количество ламп одного порядка мощности и размера (категории) по корпусу, Цл ср — средняя цена одной новой ЬББ-лампы в рамках выбранной категории (мощность+размер).

Показатель Цлср был вычислен на основании анализа ценовых характеристик пяти компаний занимающихся производством ЬББ-ламп и составляет:

— для ламп (по данным рис. 3, мощностью 7 Вт с эквивалентной светимостью для 20 Вт) — 350 руб.

— для ламп мощностью 15 Вт (эквивалентно светимости 30 Вт) — 480 руб.

Для ламп в 7 Вт (Кл вычислено практически):

¿1 = 176 * 350 = 61600 (руб.)

Для ламп в 15 Вт (Кл вычислено практически):

¿2 = 172 * 480 = 82560 (руб.)

¿общ = ¿1 + ¿2 = 61600 + 82560 = 144160 (руб.)

Исходя из представленных расчетов, становится известно, что при реализации данного варианта модернизации потребуется единовременно 144 160 руб. на полную замену люминесцентных ламп по корпусу Института «ЭиУ» (при расчете не рассматривались лампы накаливания, которые нецелесообразно заменять в виду их редкого использования).

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

«ЭиУ» на освещение в год составляют примерно 67 141,89 руб., период окупаемости вычисляется следующим образом:

2) Пок = 10мес / (Зг / Зм) ,

где: Пок — период окупаемости за год (в сравнении с учебным годом), З г — затраты Института в год на освещение, Зм — затраты на предпринятую модернизацию осветительных приборов.

Пок = 10 / (67141,89 / 144160) = 10 / 0,4657456298 = 21,47 (мес.)

Результаты вычислений доказывают, что единовременная замена люминесцентных ламп в корпусе института светодиодными окупится за период в 21,47 месяц или за 1,78 рабочих года.

Кроме того, учитывая уменьшение реально потребляемой мощности без ущерба светимости, целесообразно также провести расчёт снижения энергозатрат по Институту при использовании LED-ламп мощностью 7 и 15 Вт.

Основываясь на расчетных данных, суммарное годовое потребление электроэнергии будет составлять порядка 6392,32 кВт*ч, что при тарифе в 4,22 руб. за кВт для предприятий составит сумму 26 975,59 руб.

Таким образом, благодаря внедрению данного варианта модернизации осветительных приборов в Институте «Экономики и Управления», экономическая эффективность от внедрения LED-ламп составит 40 166,29 руб. в год.

Выводы: На основе анализа различных официальных источников информации были исследованы технические данные, сравнительные характеристики источников освещения. Руководствуясь теоретическими данными, был выделен и сформулирован вариант модернизации системы освещения корпуса Института экономики и управления Гуманитарно-педагогической академии — филиала ФГАОУ ВО КФУ им. Вернадского в Ялте. На примере данного варианта была также исследована целесообразность внедрения новейших экономичных источников освещения в организации для снижения издержек на энергопотребление.

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

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

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

1. LED // [Электронный ресурс ] Режим доступа: https://ru.wikipedia.org/wiki/LED

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

Индекс цветопередачи (CRI, или RA)

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

Что такое коэффициент цветопередачи (CRI, или RA)?

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

Цветопередающие свойства ламп зависят от характера спектра их излучения. Индекс цветопередачи (СRI/RA) эталонного источника света (т.е. идеально передающего цвет предметов) принят за 100.

Чем ниже этот индекс у лампы, тем хуже ее цветопередающие свойства. Комфортный для человеческого зрения диапазон цветопередачи составляет 80-100Ra.

Вспомогательные объекты VRML97

Вспомогательные объекты VRML97

Чтобы упростить создание VRML-сцен, приложение 3ds max предлагает несколько вспомогательных объектов под названием VRML97. Эти объекты позволяют добавить в сцену дополнительные элементы, подготовив ее таким образом к VRML-экспортированию. Средства VRML97 принадлежат категории Helpers (Вспомогательные объекты) вкладки Create.

Для получения доступа к вспомогательным объектам экспортирования, выберите во вкладке Create субкатегорию VRML97 категории Helpers. После этого на панели появятся следующие кнопки: Anchor, TouchSensor, ProxSensor, TimeSensor, Navlnfo, Background, Fog, AudioClip, Sound, Billboard, LOD и Inline (рис. 3.14). При щелчке на каждой из них появляется разворачивающаяся панель с различными параметрами. Ряд перечисленных кнопок непосредственно не касаются темы данной книги. Информацию о них вы найдете во множестве доступных справочных руководств по VRML.

Как определить источник освещения в полиграфии

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

В современных спектрофотометрах можно выбрать любой стандартизированный источник (A, C, D50, D65, F2, F7, F11) освещения. Источники находятся в приборе в виде интегральных кривых, что позволяет наиболее точно измерять цвета, адаптируя их к нужным условиям освещения.

Но что, если в настоящий момент в типографии или цехе у вас нет доступа к световой кабине?

Pantone решили эту проблему с помощью стикеров-индикаторов освещения LIGHTING INDICATOR Stickers. Они недороги, просты в использовании и позволяют выяснить, являются ли ваши условия просмотра правильными для оценки цвета. Источник: www.xrite.com/blog

Вот как они работают:

  • Отлепите стикер.
  • Наклейте его на образец.
  • Каждый стикер имеет два участка. Если они совпадают, то вы можете быть уверены, что оцениваете цвет при надлежащих условиях освещенности (при естественном дневном свете).
  • Если нет, то вы должны найти другой источник света, прежде чем оценивать свои цвета.

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

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

D65 (6500 К) — среднее дневное осве щение, применяемое для визуального контроля в текстильной, пластиковой, лакокрасочной, но не в полиграфической промышленности. В спектре преобладает голубая составляющая. Индекс — CRI 94-96;

D50 (5000 К) — дневной свет с пропорциональным распределением энергии в красной, зеленой и голубой зонах спектра, используемый в настоящее время как стандартный источник для визуальной оценки оттисков. Отвечает стандарту ISO 3664 и имеет индекс CRI 93-97


Варианты источников освещения D50 и D65 отличаются преимущественно распределением спектра: содержание УФ-лучей для D50 меньше, чем для D65. Для стола пчатника в цеху, лучше купить калиброванные лампы, типа D50 или D65 Philips серии Graphica Pro с температурой цвета 5000K и выше (не все масовые лампы 5000К соответствуют D50).

VRML’97 — Инструменты. Что необходимо для работы с VRML

3D Studio Max R3.1 обладает встроенным экспортером в VRML формат, который способен переводить MAX файлы в VRML. Этот экспортер поддерживает два VRML формата: VRML 97 и VRML 1.0. В этом уроке мы сосредоточимся на VRML 97 (это более новая версия) и разберемся в способах создания и экспорта файлов VRML в среде Max R3.1.

Прежде чем начать

Для работы нам потребуется не только 3DS Max R3.1, но и VRML вьювер, а также текстовый редактор. Кроме того, если вы собираетесь работать с текстурами, необходимо иметь программу обработки 2D графики (Photoshop).

Самый простой способ просмотреть VRML файл — это воспользоваться стандартным браузером (Netscape Navigator или Communicator, или Microsoft Internet Explorer), снабженным VRML плагином. При написании этой статьи я пользовался Cosmo Player 2.1.1., созданного SGI и распространяемого группой CAI — вам придется скачать около 4мб. Помните, что различные плагины и вьюверы рендерят файлы по-разному, и если вы создаете VRML для широкой публикации — будет лучше если вы протестируете его в разных программах.

(вышеописанный вьювер можно также поискать — и выбрать наиболее удобный для скачивания сервер)

Подобно HTML VRML — это формат, основанный на ASCII и вам понадобится текстовый редактор для проверки и модификации кода. Я пользовался MS Word 97.

Не буду подробно останавливаться на этом — думаю всем понятно, что при создании текстур программу, подобную Photoshop трудно заменить.

Введение в VRML

Давайте разберемся — что же такое VRML? Данный формат напрямую связан с понятием Virtual Reality (VR) — интерактивный трехмерный мир, по которому пользователь может перемещаться в зависимости от своего желания. В этом мире пользователь называется «avatar». Virtual Reality Modeling Language (VRML) — это ASCII язык, используемый для описания подобных миров. Подобно HTML, это язык, не являющийся чьей-либо собственностью и его может использовать каждый совершенно свободно, он поддерживает использование текста, графики, анимации и звука и был принят за общий стандарт. VRML браузеры осуществляют рендеринг таких миров в реальном времени.

Общие советы по созданию файлов для VRML в Max R3.1

При создании 3д сцен для последующего экспорта в VRML вы всегда должны пользоваться следующими правилами:

Минимизация количества полигонов

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

Анимация с использованием простейших трансформаций

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

Пользуйтесь исключительно материалами типов standard и multi/sub-object. Другие типы материалов (composite, morpher, raytrace) экспортироваться не будут.

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

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

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

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

Используйте примитивы (sphere, cylinder, cone, box и т.д.) где только возможно. Конвертирование объекта в editable mesh увеличит размер файла даже при минимальных изменениях геометрии.

Основные шаги при создании VRML сцен

Ниже приведен наиболее выгодный порядок действий по созданию VRML сцен.

создание источников освещения и камер

присваивание объектам материалов и текстур

вставка вспомогательных VRML-объектов

использование барузера для тестирования файла

редактирование файла в текстовом редакторе (при необходимости)

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

Вставка вспомогательных VRML-объектов

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

Первый шаг является общим по созданию любого вспомогательного объекта (helper object):

Откройте панель Creation и выберите вкладку Helpers.

В выпадающем меню выберите VRML 97.

Выберите тип объекта (Anchor, AudioClip, Background и т.д.) нажав на соответствующую кнопку.

Во вьюпорте Max кликните мышкой, чтобы создать объект. Если вы не уверенны в своих действиях — создавайте объект в Top viewport.

Гельвеций
Всегда считалось, что грамотность, например, доступна лишь тем, кто обладает умственными способностями, особенно подготовленными для восприятия сложных задач чтения и письма. Разумеется, с появлением книгопечатания и массового образования выяснилось, что грамотными в состоянии стать большинство людей.
Айзек Азимов
Ну что просить-то будешь, служивый? Только попроще чего, а то просят телевизоры какие-то, транзисторы. Один совсем обалдел: “Выполни, говорит, за меня годовой план по лесопилке”.
— Ага, — сказал я. — А телевизор вы, значит, все-таки не можете?
— Нет, — честно призналась щука. — Телевизор не могу. И этот. комбайн с проигрывателем тоже не могу. Не верю я в них. Ты чего-нибудь попроще. Сапоги, скажем, скороходы или шапку-невидимку.
Аркадий и Борис Стругацкие

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

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

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

О методике изложения

Вашему вниманию предлагается “неформальное” введение в язык VRML, которое отличается от традиционных способов изложения. По крайней мере большинство материалов в Сети довольно четко отождествляются с одной из двух групп: “VRML в примерах” и группе с несколько условным названием “36 узлов VRML 1.0 1” , которая по сути является слегка расширенным переводом технической спецификации. Разумеется, эти два подхода могут объединяться, но к пониманию это приближает не сильно: обоим подходам не хватает некоторого обобщения.

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

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

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


Характерно, что описанные выше трудности в методике изложения не есть особенности VRML, о котором мы сейчас говорим. Возьмите любой язык программирования, и там тоже обнаружатся подобные подходы (“изучаем язык X на примерах” или “полное описание всех конструкций языка X”). А “рецептурное” освоение Windows “для чайников” вам ничего не напоминает?

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

По-видимому, развитыми способностями к систематизации обладают далеко не все люди, даже среди тех, кто пишет статьи (это особенно заметно в Интернете, где нет никакого критического отбора авторов). К счастью, они все же есть; в частности, про VRML можно привести в качестве примера статьи А.Авдуевского и А.Медведева , которые очень сильно помогают в понимании базовых принципов языка. Именно принципы и будут нашей главной целью, а зная их, уже можно найти и разобраться в тех из пресловутых 36 (или даже большем числе) узлов, которые вам конкретно понадобились!

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

Общие основы VRML

1. Общие правила VRML-описаний (программ). Как мы уже знаем из части 1 , описание VRML-объектов (мира) хранится в текстовом файле с расширением WRL; для сокращения времени загрузки текст часто передается в архивированном виде, поэтому не все файлы с этим расширением, которые были “закачаны” из Сети, можно непосредственно прочитать в Блокноте. В простейшем случае мир — это автономный файл, но часто он ссылается на некоторые графические файлы (текстуры), и значительно реже — на выделяемые в отдельный файл WRL объекты-прототипы (ссылка на них обозначается EXTERNPROTO). В данной статье мы ограничимся случаем простейших автономных VRML-файлов.

Примечание. Договоримся не делать особой разницы между терминами “описание VRML-мира ” и “VRML-программа ”.

Каждый файл с VRML-программой может содержать следующие части:

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

Примечание. Об описании прототипов говорится в примере 6.2.2, а о маршрутах событий — в 6.1.5.

Заголовок всех файлов практически одинаков и имеет вид:

Внимание! Между словами везде стоит ровно один пробел !

Кроме очевидного указания на язык и его версию (мы везде будем использовать стандарт VRML97, который маркируется как версия 2.0), в заголовке задается кодировка символов. Как правило, используется набор символов Unicode, что при работе с русскими буквами будет приводить к некоторым особенностям. В данной статье мы не будем их касаться, поскольку с текстами, “живущими” в виртуальных мирах, и без кодировки слишком много проблем (см. пример в разделе 3).

Знак “#” выделяет комментарии, и поэтому (исключая заголовок!) интерпретатор VRML игнорирует любой текст, стоящий в строке правее. В многострочных комментариях, как нетрудно догадаться, надо пометить каждую строку.

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

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

При разделении последовательности чисел наравне с пробелами могут использоваться запятые. Обычно рекомендуют их для наглядности использовать с целью выделения троек координат отдельных точек, например:

0 0 0, 0 0.5 0, 0 1 0

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

Если верить известному киногерою Штирлицу, лучше всего запоминаются последние слова. Поэтому завершим этот раздел самым важным правилом.

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

Координаты трехмерной точки представляют собой совокупность трех произвольных вещественных чисел, включая отрицательные. Часто обсуждается вопрос о том, что эти числа желательно указывать в метрах, мотивируя тем, что при слиянии двух разных миров будет соблюден относительный масштаб. Этой рекомендации не стоит уделять особого внимания, причем не только потому, что различные миры на практике редко объединяют. Гораздо существеннее, что каждый создаваемый мир имеет свой собственный характерный масштаб, которому единица измерения 1 метр не обязательно подходит: возьмите Солнечную систему или объемную модель молекулы — примеры, о которых шла речь в части 1 . Поэтому более глубокий подход заключается в том, чтобы в вашем виртуальном мире выбрать некоторый характерный масштаб и принять его за единицу, а все остальные величины соотносить с ним. В частности, в Солнечной системе удобно связать единицы измерения с расстоянием от Земли до Солнца (ученые называют среднее расстояние между данными планетами астрономической единицей ) или, может быть, принять за единицу весь размер Солнечной системы, т.е. максимальное удаление Плутона от Солнца.

Примечание. Интересно, что для координат предлагается иметь физическую единицу измерения, а для яркостных характеристик — нет.

Зато учитывать единицу измерения углов необходимо совершенно обязательно: все углы в VRML измеряются не в градусах, а в радианах ! В частности, вместо 90° приходится писать 1.57, т.е. приближенное значение /2. Те, кто не любит стереометрию, могут составить (с помощью компьютера) таблицу для значений характерных углов.

Цвет, как и в большинстве компьютерных приложений, представляется в модели RGB. Тем не менее интенсивность компонентов указывается не в целых числах, а в дробных, заключенных к тому же в диапазоне от 0 до 1. Наиболее простые цвета выглядят так:

0.4 0.4 0.4 — оттенок серого и т.д.

Аналогично цветовым компонентам, физическим свойствам яркости, прозрачности и т.д. также ставятся в соответствие условные дробные величины от 0 до 1. Например, прозрачность 1 делает тело полностью прозрачным, 0 — абсолютно непрозрачным, а значение 0.3 задает некоторый промежуточный уровень.

3. Оси координат. Вопрос этот существенно запутали сами авторы языка. Так в версиях 1.0 и 2.0 направление оси z является противоположным (см. рисунок).

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

Иными словами, если раньше текст был на “передней” грани, то теперь он оказывается “сзади” стены (чтобы увидеть текст, мы ее “обошли”) и выглядит весьма экзотично. Характерно, что обе приведенные картинки есть отображения двумя разными просмотрщиками (с разными системами координат) одного и того же (!) WRL-файла.

1. Обратите также внимание на разное расположение текста по координате Y .

2. Если вы думаете, что это все неприятности, которые происходят в виртуальных мирах с текстами, то вы посмотрели не все примеры из части 1 . Посетите виртуальный Мавзолей и обратите внимание, как выглядит надпись над входом. И это при том, что изображение заведомо рассматривается в “родном” ПО!

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

Правила описания VRML-сцен

4. Граф сцены: узлы и поля (объектная модель) . Теперь, когда мы ознакомились с наиболее общими основополагающими принципами языка VRML, перейдем к изучению его конкретных конструкций. Виртуальный мир в терминологии языка называется сценой , которая представляется в виде графа из отдельных объектов, называемых узлами (node). Узлы образуют четкую структуру, которую в информатике принято называть деревом .

Рассмотрим некоторый фрагмент VRML-программы, являющийся частью одного из наших примеров, которые мы будем сегодня рассматривать. Он описывает куб, стенки которого имеют степень прозрачности 0.7 (см. пример 6.1.2).

Фактически пока мы учимся разбираться в “чужом” VRML-тексте, что всегда полезно, прежде чем начинать что-либо писать самому.

Итак, соответствующий фрагмент программы имеет следующий вид.

Первое, что в записи бросается в глаза: отдельные конструкции языка заключаются в фигурные скобки, причем скобки могут быть вложенными. Для того чтобы не запутаться в многочисленных скобках, принято использовать отступы (одинаковые для одноуровневых скобок) и комментарии со словом end, которые показывают, где какая структура заканчивается. Разумеется, все эти “дополнительные к скобкам” приемы применены исключительно для удобства чтения человеком и на изображение объемных объектов на экране никак не влияют.

Примечание. Указанные приемы позволяют писать VRML-текст с меньшим числом ошибок и, если ошибка все же допущена, быстрее ее найти. Это очень важно, поскольку программное обеспечение по отображению 3D-миров нередко просто игнорирует ошибочные конструкции или выполняет их “как-то по-своему”, а когда встроенная диагностика все же предусмотрена, она очень малоинформативна и неудобна…

Далее обратим внимание на слова, написанные с заглавной буквы (для удобства читателей они выделены жирным шрифтом), — это есть не что иное, как узлы (объекты) сцены. Проследив за расстановкой скобок, можно построить дерево узлов, приведенное на рисунке, которое и является графом некоторого фрагмента сцены. В частности, видно, что объект Shape (по-русски “фигура”, “образ”) включает в себя два объекта — Appearance (“внешность”, “наружность”) и Box (изначально “коробка”, но в компьютерной терминологии изображение на экране прямоугольника или параллелепипеда). Последний и есть собственно куб, а информация из первого позволяет куб нарисовать требуемым образом. Узел Appearance, в свою очередь, включает в себя еще один узел (“подузел”) Material, описывающий физические свойства виртуального материала, из которого состоит куб. В нашем случае материал обладает некоторым свойством прозрачности (transparency).

Как мы видим, узлы VRML неодинаковы по смыслу, например, Box и Appearance явно имеют различное предназначение. К сожалению, единая общепринятая классификация узлов как-то не сложилась, поэтому здесь мы не будем обсуждать этот вопрос.

Очень важно подчеркнуть, что с теоретической точки зрения конструкции Box, Material и другие надо называть типом узлов, а не именем ! Дело в том, что если кубов будет несколько, то все они будут описываться узлом Box. Что касается уникального имени для объекта, то его в VRML также можно назначить некоторому узлу, но делать это не обязательно. О том, как выглядит синтаксис именования узлов и где он необходим, показано в примере 6.1.5.

В анализируемом фрагменте имеются еще слова, начинающиеся со строчной буквы (надеюсь, читатели помнят о важности регистра?), — appearance, material, transparency и geometry. Это поля (fields), которые являются составными частями объекта и предназначены для хранения в той или иной форме информации об устройстве объекта. Поля в VRML бывают разные, поэтому имеет смысл рассмотреть их подробнее.

Начнем “с конца”: наиболее понятным является поле transparency, имеющее значение 0.7 и принадлежащее объекту типа Material. Это пример самой простой разновидности полей — те, в которых хранятся конкретные значения. Не следует только думать, что это всегда числовое значение и что оно обязательно одно. В частности, поле может являться координатами точки, а значит, содержать в себе 3 вещественных числа (аналогичное свойство имеет место и для полей, хранящих цвет); существуют даже поля для набора координат. Кроме того, специальные поля могут хранить картинку, время и некоторые другие типы данных . Полный список типов полей можно посмотреть, например, в .

Примечание. Поля с префиксом SF хранят только одно значение. Если же указан префикс MF, то такое поле может вмещать в себя несколько значений (аналог массива). Например, поле SFNode ссылается на один узел, а MFNode способно хранить ссылки на несколько; аналогично SFFloat хранит единственное вещественное значение, а MFFloat — целый набор таких значений.

Описанный механизм “стыковки” узлов между собой через посредство полей ведет к тому, что узлы в VRML сочетаются по строго определенным правилам, например, узел типа Material нельзя “присоединить напрямую” к узлу типа Shape (там нет для этого соответствующего поля). Причина такой избирательности, по-видимому, заключается в необходимости максимально быстрого разбора текста программы интерпретатором VRML.

Анализ приведенного рисунка, возможно, вызвал у внимательных читателей некоторое недоумение: узел Box пуст, неужели у него совсем нет полей? Конечно, есть, но тут действует еще одно важное правило, о котором мы еще не успели сказать. Любое поле объекта в VRML обязательно имеет значение по умолчанию , причем оно не обязательно нулевое или пустое. Например, стороны объекта Box по умолчанию устанавливаются равными 2 (от –1 до 1, начало координат — в центре). Если нас устраивает значение по умолчанию, то в описании соответствующее поле можно пропускать, значительно сокращая запись. Между прочим, и материал бывает не только прозрачным: объекты имеют цвет (точнее, даже несколько, в частности, рассеиваемый или цвет свечения), светимость и некоторые другие характеристики. Просто в нашем примере “задействовано” только одно свойство, поэтому все остальные пропущены и получат значения по умолчанию.

Таким образом, мы полностью разобрались в том, каким образом описывается дерево сцены. Возможно, кому-то такой способ показался утомительным. Им можно посоветовать воспользоваться программным обеспечением более высокого уровня, например, White Dune , о котором уже рассказывалось в части 1 . Одно из ценных свойств этого ПО состоит в том, что всю “разметку” оно генерирует самостоятельно, а вам остается только в диалоге ввести значения параметров в соответствующие поля (в нашем случае — в поле transparency).

На следующем рисунке изображен фрагмент окна программы после нажатия на кнопку с изображением кубика. Разобранный нами ранее фрагмент в левой части рисунка выделен рамочкой. Видна четкая иерархия объектов, а также в правой части поля для выделенного объекта Shape их узлы-значения Appearance и Box. Если сохранить проект, то в полученном текстовом файле вы легко найдете соответствующий фрагмент, правда, без комментариев после закрывающихся скобок.

Мы не будем сейчас спорить, какой способ лучше — написание текста в Блокноте или автоматическая генерация VRML с помощью специализированной программы-редактора. Очевидно, что тем, кого интересует только результат, последний подход вполне подойдет. Но если читатели хотят, следуя заголовку статьи, понимать VRML и иметь возможность его корректировать и улучшать после универсального редактора, то не обойтись и без “ручного” набора. Оптимальное решение, как всегда, посередине: надо понимать VRML-текст и уметь его править, но какие-то рутинные операции вполне можно выполнять и в редакторе. Тем не менее на стадии первоначального понимания, на которой мы с вами находимся сейчас, лучше пока к помощи редактора не прибегать.

И еще одно замечание методического характера. Наличие иерархической структуры в виде дерева и свойств у его узлов определенно указывают на объектно-ориентированный характер VRML. И это действительно хороший пример ОО описания. Более того, автор рискует утверждать, что детальный (в духе того, как это делается в данной статье) разбор 2–3 примеров на VRML дает для понимания объектно-ориентированной модели существенно больше, нежели реализация 20–30 простейших приложений в среде Visual Basic или Delphi. Все дело в том, что хотя построение библиотеки визуальных компонентов и немыслимо без ОО подхода, но это ощущается лишь при изучении ее внутреннего устройства или при создании собственного компонента, но не в моменты написания обработчиков кнопок из 2–3 операторов. Полностью избавляя нас от необходимости набирать описания, характерные для ООП, современные системы программирования скрывают от нас его сущность, а это едва ли полезно для обучения. Мы даже порекомендовали бы тем читателям, которые интересуются вопросами ООП, после полного прочтения данной публикации составить для себя полную модель узла VRML как объекта (при этом можно дополнительно посмотреть статьи и ).


5. Реализация динамических эффектов. Для придания трехмерным сценам каких-либо динамических эффектов используются специальные поля, которые в VRML 2.0 называются exposedField. В переводе с английского exposed означает “открытый”, “видимый”, но по смыслу наиболее хорошо к данному термину, наверное, подходит имеющийся в словаре вариант “подвергаемый воздействию”. Данные поля могут изменять свои значения под влиянием происходящих в виртуальном мире событий . Под событиями подразумевается передача информации от одного объекта другому.

Узел получает сообщения типа eventIn, которые обычно влекут за собой изменения его состояния; события такого рода обозначаются set_X (set_color, set_position) . Отправляемые узлом сообщения обычно содержат информацию об изменении его состояния (color_changed, position_changed) и имеют тип eventOut.

Поле exposedField X эквивалентно следующей конструкции:

где field — это само поле, в котором хранится значение, изменяемое по eventIn ; происходящее изменение сопровождается инициацией события eventOut . Более подробно о конкретных событиях и их цепочках написано в примере 6.1.5.

Примечание. Интересно подчеркнуть, что похожую структуру (поле, метод чтения и метод записи) имеют свойства объектов в Delphi . Например, когда вы пишете X.Color:=clRed , пытаясь сделать объект X красным, то внутри системы происходит не присвоение, а вызов метода SetColor(clRed) , который не просто помещает необходимое значение во внутреннее поле FColor , но и “перекрашивает” объект.

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

Начало цепочке событий дает какой-нибудь сенсор . Существуют различные типы сенсоров; большая часть этих узлов реагирует на воздействие на объект при помощи мыши. TouchSensor реагирует на “прикосновение”, т.е. щелчок кнопки. CylinderSensor, PlaneSensor и SphereSensor срабатывают при попытке изменения положения объекта и носят обобщенное название DragSensor. CylinderSensor срабатывает при попытке повернуть объект вокруг оси; такой сенсор применим для моделирования колеса из “Поля чудес”. В отличие от CylinderSensor SphereSensor реагирует на попытку повернуть объект в любом направлении. Как уже понятно, PlaneSensor активируется при попытке линейного перемещения объекта. Узлы ProximitySensor и VisibilitySensor генерируют сообщения о том, что виртуальная камера приблизилась к объекту на заданное расстояние или объект попал в ее поле зрения. TimeSensor представляет собой часовой механизм, отсчитывающий время до генерации события. С одним узлом может быть ассоциировано несколько сенсоров, сообщения которых обрабатываются по очереди.

Сообщение от сенсора передается интерполятору . Такое название для этого класса узлов выбрано потому, что автор VRML-сцены задает любое изменение объекта в виде нескольких промежуточных стадий, а плавным преобразование объекта становится при помощи интерполяции этих дискретных положений. Узел PositionInterpolator способен переместить объект, а OrientatonInterpolator его повернуть, но это только простейшие возможности. При помощи ScalarInterpolator можно как угодно увеличить или уменьшить любой выражаемый численно параметр: радиус, длину ребра все, что хотите. Объект можно перекрасить при помощи ColorInterpolator . Если это многогранник, то CoordinateInterpolator “перекособочит” его, а если объект сферического происхождения, то NormalInterpolator превратит его в мяч для регби или в куриное яйцо.

Для установки порядка передачи сообщений между объектами в VRML имеется директива ROUTE.
В конце файла помещаются строки следующего вида:

Посмотреть, как выглядит запись конкретных операторов, можно в примере 6.1.5.

Вот, наконец, и вся основная теория. А теперь перейдем к примерам.

6.1.1. Простейший куб. Чтобы просто получить на экране куб (аналог первой задачи для начинающего “Hello, world!” в обычном программировании), достаточно следующей простейшей программы.

#VRML V2.0 utf8
Shape <
geometry Box< >
>

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

6.1.2. Добавим прозрачности. Поскольку конечная цель состоит в построении сечения, необходимо сделать куб прозрачным, в противном случае сечение внутри куба увидеть не удастся. Сечением займемся позднее, а пока листинг для прозрачного куба. Он детально разобран в разделе 4, поэтому в комментариях не нуждается.

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

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

6.1.3. Построим сечение. Это более трудный с точки зрения языка VRML этап. Листинг, который надо добавить к предыдущему , выглядит следующим образом.

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

Рассмотрим описание сечения подробнее. Узел Material определяет диффузный (т.е. рассеивающийся при отражении) красный цвет (о кодировании цветов см. раздел 2). Узел IndexedFaceSet задает в пространстве плоскость, определенную соединением характерных точек. Их координаты, начиная с левой верхней вершины, помещены в поле point узле Coordinate. В данной записи стоит обратить внимание на то, как записаны “тройки” координат: они заключены в квадратные скобки, что подчеркивает множественность значений для данного типа. Далее следует поле coordIndex, которое задает порядок соединения точек. Важно заметить, что номера точек начинаются с 0, а брать их из предшествующего списка по порядку, как в данном примере, совсем необязательно. Последовательность завершается заведомо неиспользуемым значением –1; после него можно добавлять и другие плоскости, правда, в нашем примере это не требуется.

Примечания. 1. Те, кто знаком с языками программирования, несомненно, узнали в полях coord и coordIndex массив (его эквивалентное описание на Паскале выглядит так: ARRAY OF RECORD X, Y, Z: REAL END) и его индекс. 2. То, что сечение на экране совместится с требуемыми гранями куба, подтвердит правильность наших знаний о координатах его вершин по умолчанию.

Наконец, установка значения FALSE в последнем поле узла под названием solid (“твердый”, “сплошной”) облегчает “закраску” плоскости: если установить его в TRUE, то сечение станет твердым и придется принимать дополнительные меры по окраске противоположной его стороны.

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

# Эту строку надо добавить к примеру 6.1.3!

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

6.1.5. Обеспечим хороший осмотр. Конечно, передвигаясь в VRML-мире с помощью мыши или клавиатуры, можно обойти наш кубик вокруг и все рассмотреть. Но есть и более приятная возможность: заставить кубик поворачиваться . Если вы еще не устали, попробуем это осуществить.

Полный листинг примера приведен ниже. Чтобы сэкономить время, можно дополнить пример 6.1.4 тремя вставками текста, которые выделены жирным шрифтом.

#VRML V2.0 utf8
DEF Spin_Timer TimeSensor
loop TRUE
> # end TimeSensor

DEF Spin_Interpolator OrientationInterpolator
keyValue
> # end OrientationInterpolator
DEF Rotating_Cube Transform
[
# 6.1.3
Shape
> # end Appearance
geometry Box< >
> # end Shape
Shape

> # end Appearance
geometry IndexedFaceSet
-1 -1 1]>
coordIndex
solid FALSE
> # end IndexedFaceSet
> # end Shape
# end 6.1.3
] # end children
> # end Tranform

# 6.1.4
SpotLight
# end 6.1.4
ROUTE Spin_Timer.fraction_changed TO Spin_Interpolator.set_fraction
ROUTE Spin_Interpolator.value_changed TO Rotating_Cube.set_rotation

Рассмотрим полученный листинг подробнее.

Первый из добавляемых объектов TimeSensor обеспечивает периодическую (благодаря значению поля loop ) подачу сигналов для очередного поворота. Скорость вращения можно регулировать значением поля cycleInterval.

Примечание. Конструкция DEF Spin_Timer TimeSensor демонстрирует присвоение создаваемому узлу типа TimeSensor выбранного нами имени Spin_Timer. Наличие имени узла в VRML, как мы знаем, не является обязательным. И хотя до сих пор мы обходились без имен объектов, в данном случае они совершенно необходимы для последующего описания маршрута передачи информации между узлами.

Срабатывание таймера передается следующему объекту OrientationInterpolator. Его поле keyValue представляет собой массив возможных значений изменяемого (интерполируемого) параметра. В данном случае этот параметр есть набор значений для поля rotation узла Transform (т.е. начальной установки нашего куба с сечением). Каждый поворот задается четверкой чисел: первые три выбирают оси вращения (набор 0 1 0, который используется, описывает поворот вокруг “второй” оси Y) и угол поворота в радианах (0, и 2). Использование интерполяции позволяет задать всего три положения объекта начальное, конечное и одно промежуточное. Полеkey определяет временныRе характеристики вращения: в нашем случае переход от одного положения к другому происходит равномерно.

Примечание. Очень советую загрузить данный VRML-файл в программу White Dune и выделить рассматриваемый узел: в нижней части окна вы увидите графическое отображение процесса движения и сможете его “проиграть”.

Интерполятор будет воздействовать на узел Rotating_Cube, в котором путем “подключения” к полю children (“дети” типичный образчик терминологии в ООП-наследовании!)сгруппированы уже знакомые нам два узла типа Shape с кубом и его сечением. Здесь все осталось по-старому, не забудьте только добавить закрывающие скобки в конце описания объединенного узла.

Наконец, в последних строках файла строится маршрут (ROUTINE) передачи сообщений для описываемого динамического события. Отчетливо просматривается цепочка узлов Spin_Timer ® Spin_Interpolator ® Rotating_Cube (вот где потребовались данные нами ранее имена узлов!), передающая изменения от одного события к другому.

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

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

Размеры основных (сферических) частей снеговика и его итоговый вид представлены на рисунке. Посмотрим, как это выглядит на VRML.

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

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

Нетрудно видеть, что снеговик состоит из 5 сфер. В соответствии с этим в листинге 5 из 8 фрагментов очень похожи. Мы рассмотрим только один из них; поскольку первая (нижняя) сфера не является типичной (она имеет центр в начале координат и единичный радиус см. рисунок), мы обратимся ко второй. Ее описание легко найти в тексте по комментарию middle.

Фрагмент, описывающий “средний” ком снеговика, начинается с узла типа Transform. Его назначение состоит в задании геометрических характеристик изображения объекта-потомка, в частности, наиболее часто используется его поле translation. В нашем случае это поле содержит тройку чисел
0 1.7 0, что является набором координат для центра рассматриваемой сферы. Таким способом обеспечивается позиционирование нашей сферы в виртуальном пространстве.

К описанному выше узлу через поле children подсоединяется стандартный узел типа Shape, описывающий уже знакомым нам образом сферу. Отметим только, что, кроме диффузного белого цвета снеговика, мы добавили ему еще некоторую “подсветку изнутри” с помощью поля emissiveColor. Желающие могут проверить, насколько хуже будет выглядеть снеговик без этой в общем-то не очень логичной меры.

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

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

Обратимся к описанию носа. Поскольку по умолчанию конус строится вершиной вверх, а нос снеговика требуется по понятным причинам направить “вперед”, необходимо произвести поворот конуса. Поле rotation обеспечивает это. Как мы уже видели в примере 6.1.5, поворот характеризуется набором из четырех чисел: тройка 1 0 0 описывает поворот вокруг оси X на 1.57 радиан, т.е. на 90°.

С аналогичным поворотом строятся и оба цилиндрических глаза черного (0.1 0.1 0.1) цвета.

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

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

Давайте удалим текст VRML-программы, соответствующий пяти сферам, а вместо него наберем следующий листинг.

Примечание. Одно из описаний можно оставить и из него сформировать прототип.

Описание прототипа открывается служебным словом PROTO, за которым следует имя прототипа. В нашем случае это KOM, набранное обязательно (!) латинскими буквами. Далее в квадратных скобках описываются параметры прототипа, которые можно будет в дальнейшем задавать при обращении к нему.


Описание параметров-полей заслуживает того, чтобы познакомиться с ним поподробнее. После стандартного ключевого слова field (как вы, наверное, помните, field и означает поле) следует его тип, имя и значение поля по умолчанию. В нашем случае имеется два поля позиция центра сферы p и ее радиус r. Первый имеет тип SFVec3f, т.е. одно значение трехмерного вектора, которое, естественно, задается тремя вещественными числами. Радиус сферы имеет (единственное) вещественное значение SFFloat. Указанные значения по умолчанию традиционны для VRML, кроме того, они полностью соответствуют нижнему кому снеговика.

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

translation IS p

Где IS это служебное слово, показывающее необходимость подстановки значения параметра p. По смыслу эта запись означает, что в поле translation необходимо поместить то значение, которое при обращении будет указано для параметра p. А само обращение к прототипу KOM, показанное в конце фрагмента, настолько очевидно, что особых комментариев не требует.

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

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

Что же мы получили в итоге всей этой оптимизации с прототипами? Программу, которая в несколько раз короче, и знание механизма, который позволяет компактно описывать однотипные объекты. Эти объекты даже можно вынести в отдельный файл; тогда они будут называться EXTERNPROTO. Об использовании данной возможности языка VRML можно почитать в .

И в заключение еще одно замечание по поводу технологий. Мы можем сделать снеговика, используя готовые технологии, например, многократно упоминавшуюся программу White Dune. При этом даже вообще не обязательно знать правила записи VRML. Но результат, который получится, будет эквивалентен листингу в 6.2.1. Тем не менее получение эффективного результата требует понимания сущности и правил устройства технологии, что в очередной раз подтвердил пример 6.2.2.

6.3. Еще примеры: короткие, но интересные. В заключение приведем еще пару коротеньких листингов, демонстрирующих некоторые интересные возможности VRML.

А вот как это выглядит:

6.3.2. Да будет звук! И еще один прекрасный пример компактной VRML-программы , описывающей шарик, который издает звук, когда на него наталкивается наблюдатель.

#VRML V2.0 utf8
DEF SphereWithSound Collision
>
ROUTE SphereWithSound.collideTime TO BoomSound.startTime

Разумеется, в том же каталоге должен лежать звуковой файл “boom.wav”.

Как это можно использовать

Приведенные в публикации материалы могут быть полезны не только учителям информатики при рассказе о современных 3D-технологиях компьютерной графики. Автор надеется, что изложенная теория и разобранные примеры позволят творческим учителям организовать своих учеников на изготовление простейших электронных ресурсов по стереометрии, астрономии, химии, физике и другим школьным предметам. Одна из целей части 1 публикации как раз и состояла в том, чтобы показом ярких возможностей VRML разбудить фантазию. А в части 2 публикации кратко познакомить с тем, как подобные материалы можно разрабатывать.

Не сомневаюсь, что при наличии интереса читатели смогут своими силами создать действительно наглядные, красивые и практически полезные VRML-объекты и даже простейшие виртуальные миры (вроде музейных залов, на стенах которых вместо картин развешены портреты ученых или математические формулы, или “фотографии” экзотической планеты). Желаю всяческих творческих успехов на данном поприще!

Ссылки

1. Teaching Teaching & Understanding Understanding. http://www.daimi.au.dk/

2. Авдуевский А. По следам газонокосильщика. LAN, 1997, № 1. http://www.osp.ru/lan/1997/01/132452/ .

3. Медведев А. Реальная Виртуальность. http://www.ixbt.com/peripheral/real-vrml.html Loop по-английски означает “петля”; в компьютерной терминологии это общепринятое название цикла.

Язык VRML (Virtual Reality Modeling Language) предназначен для описания интерактивных 3D объектов и миров. Он был разработан для применения в сетях INTERNET и INTRANET. На сегодняшний день этот язык является сетевым стандартом и поддерживается ведущими мировыми производителями программного обеспечения.

VRML дает разработчику возможность создавать статические и динамические 3D модели а также позволяет включать и обрабатывать в моделях гиперссылки на звуковые, видео, html файлы, другие VRML объекты.

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

2. Что необходимо для работы с VRML

Для описания простых VRML объектов подходит любой текстовый редактор, имеющий возможность сохранять файлы в обычном текстовом формате. Описание VRML-объектов (мира) хранится в текстовом файле с расширением wrl.

Для воспроизведения VRML объектов необходим VRML браузер, поддерживающий язык VRML в спецификации 2.0 К популярным VRML-браузерам, поддерживающим Microsoft Internet Explorer, Opera и Mozila Firefox, относятся blaxxun Contact (www.blaxxun.com), Cortona3D Viewer (www.cortona3d.com), BS Contact VRML/X3D (www.bitmanagement.de), Octaga Player (www.octaga.com) и др.

3. Структура VRML файла

В общем виде, простейшая VRML-программа состоит из следующих частей:

Эта строка является первой для любого файла, содержащего описание VRML объектов. Строка является обязательной и не содержит отступы.

Описания графа сцены

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

4. Примитивы (Формы)

Формами в VRML называют объекты, из которых строятся VRML миры, т.е. формы являются основными строительными блоками (компонентами) VRML миров. Примитивные формы — это стандартные примитивные трехмерные объекты. К ним относятся Параллелепипед, Сфера, Цилиндр, Конус. Однако комбинируя их, можно строить достаточно сложные трехмерные изображения. Например, вот такие:

Формы описываются с помощью узла — Shape , который объединяет геометрические свойства объектов (форму,структуру) и свойства, определяющие внешний вид этих объектов (цвет, текстуру поверхности и т.д. . Геометрические свойства описываются с помощью поля geometry . Свойства, определяющие внешний вид описываются с помощью поля appearance .

Значением поля geometry являются геометрические узлы, т.е. узлы,определяющие форму и структуру объектов.

Стандартные примитивные геометрические узлы следующие:

В полях примитивных геометрических узлов указываются их размеры.

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

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

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

Пример узла Group:

Простая примитивная форма:

5. Трансформация форм

По умолчанию все формы строятся в «центре VRML мира». Трансформация (Transform) позволяет перемещать, вращать и масштабировать формы в VRML мире.

В VRML мирах система координат трехмерная и имеет следующую ориентацию:

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

Определение узла Transform:

Поле children определяет список форм, которые будут строиться в новой системе координат. Поле translation определяет сдвиг системы координат относительно родительской системы координат. Сдвиг происходит по осям X,Y и Z.

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

Ось вращения определяет вектор вокруг которого осуществляется поворот. Обычно поворот осуществляется вокруг осей X,Y или Z:

Поворот осуществляется по правилу «правой руки».

Поле scale определяет увеличение или уменьшение размерности системы координат на коэффициент масштабирования по осям X,Y и Z.


Поворот, сдвиг и масштабирование системы координат:

6. Внешний вид форм — цвет

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

Вспомним, что узел Shape описывает:

геометрию формы (поле geometry) — форму или структуру

внешний вид форм (поле appereance) — цвет и текстуру

Значением поля appereance является узел Appereance , который описывает визуальные свойства форм (material, texture ) через описание материала и текстуры форм.

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

DiffuseColor . . . emissiveColor . . . transparency . . . >

Поля узла Material описывают:

diffuseColor — цвет отраженного света

emissiveColor — цвет излучаемого света

другие свойства материала

Цвет в VRML задается с помощью трех составляющих:

Любой цвет можно задать путем смешения этих составляющих в определенных пропорциях. Значения каждой составляющей лежат в диапазоне от 0.0 до 1.0 . Например:

Цвет Красный Синий Зеленый Белый 1.0 1.0 1.0 Желтый 1.0 1.0 0.0 Черный 0.0 0.0 0.0 Коричневый 0.5 0.2 0.0

Пример 1

Построим шар зеленого цвета, с центром, находящимся в точке пространства с координатами (1,1,1). Радиус шара равен 3. Для этого откроим блокнот и напишем следующий код:

Сохраним полученный файл с расширением *.wrl.

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

Задание 1

Самостоятельно создайте такие примитивы как Параллелепипед, Конус и Цилиндр различных цветов.

Пример 2

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

Размеры основных (сферических) частей снеговика и его итоговый вид представлены на рисунке. Посмотрим, как это выглядит на VRML.

Нетрудно видеть, что снеговик состоит из 5 сфер. В соответствии с этим в листинге 5 из 8 фрагментов очень похожи. Мы рассмотрим только один из них; поскольку первая (нижняя) сфера не является типичной (она имеет центр в начале координат и единичный радиус — см. рисунок), мы обратимся ко второй. Ее описание легко найти в тексте по комментарию middle.

Фрагмент, описывающий “средний” ком снеговика, начинается с узла типа Transform. Его назначение состоит в задании геометрических характеристик изображения объекта-потомка, в частности, наиболее часто используется его поле translation. В нашем случае это поле содержит тройку чисел 0 1.7 0, что является набором координат для центра рассматриваемой сферы. Таким способом обеспечивается позиционирование нашей сферы в виртуальном пространстве.

К описанному выше узлу через поле children подсоединяется стандартный узел типа Shape, описывающий уже знакомым нам образом сферу. Отметим только, что, кроме диффузного белого цвета снеговика, мы добавили ему еще некоторую “подсветку изнутри” с помощью поля emissiveColor. Желающие могут проверить, насколько хуже будет выглядеть снеговик без этой в общем-то не очень логичной меры.

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

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

Обратимся к описанию носа. Поскольку по умолчанию конус строится вершиной вверх, а нос снеговика требуется по понятным причинам направить “вперед”, необходимо произвести поворот конуса. Поле rotation обеспечивает это. Как мы уже видели в примере 6.1.5, поворот характеризуется набором из четырех чисел: тройка 1 0 0 описывает поворот вокруг оси X на 1.57 радиан, т.е. на 90°.

С аналогичным поворотом строятся и оба цилиндрических глаза черного (0.1 0.1 0.1) цвета.

Задание 2

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

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

Теперь о программах. При создании мира Вам понадобятся разные программы для разных целей:

Программы для создания 3D объектов и миров

Я не касаюсь программ типа 3DS, которые хотя и могут экспортировать в VRML код, все-таки специально на эти цели не ориентированы, посему создают ОЧЕНЬ НЕоптимальный код (см пример в разделе Extrusion). Советую такие программы при создании миров не использовать вообще!

Программы для проверки и оптимизации VRML кода

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

В этом же классе есть и свои «тяжеловесы» — профессионаьные программы со множеством разнообразных возможностей. Можете посмотреть в сети chisel (), и flamingo (). Обе программы — это нечто!

Программы для создания текстур

Более универсально — научиться или, если Вы уже умеете, продолжать работать с Photoshop»ом. Уж по этому продукту в русской сети великое множество документов, конференций и т.д.

Но есть и более специализированные вещицы, такие как Infinity textures

Программы для создания звука

Звук пока плохо прижился в интернете в целом, и в создании виртуальной реальности, в частности. Спецификацией VRML97 строго предписано поддерживать формат WAV и рекомендовано поддерживать MIDI. У меня не возникало потребности специально для создания миров записывать и редактировать звуковые файлы. Если задумать что-нибудь прилично-качественно-звучащее, то получится очень большого размера, что не есть хорошо. Так что это отпадает, а простенькие звуки типа скрипа, звона и т.д. всегда можно найти в сети.

Но если у Вас другое мнение/опыт, мыльте — обсудим.

Броузеры

Броузеров для VRML файлов есть довольно много (больше, чем редакторов). Я остановлюсь на четырех, поддерживающих VRML97 (Microsoft VRML 2.0 Viewer, Cosmoplayer, GLView, Cortona), хотя если Вы собираетесь часто просматривать файлы VRML1.0, то можно еще посоветовать Chaco VRScout (очень быстрый!) и VRWeb.

Так вот, впечатление от работы с броузерами довольно смешанное, у каждого есть плюсы и минусы. Самый быстрый — Cosmoplayer (хотя некоторые склоняются к Cortona. Может быть, я ведь статистику по fps не вел. Если интересно, подробнее , да и в comp.lang.vrml периодически этот вопрос поднимают).

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

Недостатки или то, что мне кажется неудачным
Cosmoplayer 2.1 — неверное отображение некоторых сложных объектов, созданных с помощью Extrusion
Cortona (ver. 2.0 release 20) — VRML сцена, загруженная из другой VRML сцены (например с помощью anchor»а) не рассматривается, как новый документ, поэтому к предыдущей сцене Вы не вернетесь кнопкой «Back»
MS VRML2.0 Viewer (ver. 1.0) куча недостатков, все сюда не влезут. :
— проблемы при отображении PointSet
— не учитывает размеры аватара из NavigationInfo
— не поддерживает обращение к viewpoint»ам через #имя_viewpoint
— вылетает на файлах с интерполяторами, созданными в CosmoWorlds
GLView — не распознает значение «ru» поля language узла FontStyle

Если Вы только просматриваете VRML файлы, то лучше не ставить MS VRML Viewer, но а если Вы их и создаете, то наоборот старайтесь протестировать в нем свои файлы, как он их исковеркает.

Илон Маск рекомендует:  Что такое код biosmemory
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL