Все указания на замеченные синтаксические, семантические и ошибки другого рода огромная просьба отсылать сюда:
[email protected]

"Дюна", что это такое?

"Дюна" (dune) это VRML редактор, а также утилита для создания анимации, поддерживающая стандарт VRML97. На данный момент все еще в активной разработке. "Дюна" может использоваться для чтения файлов формата VRML97, воспроизведения и редактирования дерева сцены, полей и маршрутов. Таким образом, "дюна" позволяет создавать несложную анимацию и интерактивные приложения в стандарте VRML97. Надо отметить, что "дюна" не предназначена для создания сложных VRML97 трехмерных моделей. В отличие от большинства 3D редакторов, при освещении и раскрашивании используется стандарт VRML97, таким образом позволяя осуществить пост-редактирование VRML97 файлов, созданных в других редакторах.

"Дюна" "зависла", не сохраненный документ потерян?

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

Если "дюна" "зависла", означает ли это, что мой документ безвозвратно потерян?

Совсем не обязательно

"Дюна" попытается сохранить ваш документ перед выходом. Если сохранение удалось, будет выведено (в Unix/Linux версии) что-то похожее на:

  Internal Crash !
  Try to save Files
  attempt to write file to /home/someone/.dune_crash_NUMBER_NUMBER.wrl
  write successfull
в стандартный error поток системной консоли и окна из которогo стартовала "дюна".
В M$Windows версии будет выведено информационное окно (Messagebox):

После того как вы перезапустите "дюну", в меню "File" будет находится пункт .dune_crash.

Щелкните по нему и сохраните документ под другим именем.

Несколько советов для более комфортной работы с "дюной"

Несколько стандартных VRML примеров можно найти (для просмотра и редактирования может использоваться "дюна") здесь.

Что это такое - дерево сцены (scenegraph), значения полей (fieldvalues), маршруты (routes) и т.п.?

"Дюна" это низкоуровневая утилита для создания/редакторования документов в стандарте VRML97. Предполагается, что пользователь имеет представление о базовой структуре стандарта VRML97.
Получить информацию о VRML97, в том числе можно используя официальную ISO спецификацию: http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1. Информация об узлах, особенно важная при использовании "дюны": http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1/part1/nodesRef.html .

5 областей "дюны"


Кроме вспомогательных кнопок на панели (toolbar) и сообщений рабочая среда также включает 5 областей. Все области, кроме области 3D просмотра, могут быть активированы/деактивированы. Для этого используется пункт меню "View".

Навигация

Для навигации в области 3D просмотра используются следующие комбинации клавиатура/мышь:

Начиная с версии 0.16 может использоватся навигация в стиле SGI. К слову, не должным образом сконфигурированый менеджер окон (windowmanager) может перехватывать описанные ниже комбинации и вызывать свои, встроенные функции. Управление сценой возможно и с помощью одной только мыши. Для этого необходимо перейти в режим навигации, щелкнув мышкой по иконке (доступно с версии 0.19beta). В случае, когда активно устройство ввода 6D (?), а также в дереве сцены выбрана иконка сцены , появляется возможность управлять сценой в зависимости от выбранных в VRML документе иконок трансформаций .

Редактирование дерева сцены (graphscene)

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

или в корневой узел дерева сцены (иконка "Scene").
"Дюна" обозначит серым цветом те узловые иконки, которые невозможно добавить.

Настоящая таблица отображает требования для этих узлов (стандарт VRML97):


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

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

В противном случае будет отображатся обычный курсор.

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

Создание/удаление маршрутов (ROUTE)

Маршруты создаются в "дюне" следующим образом: в области RouteView отыскивается нужная иконка (иконка подсвечивается одновременно с соответствующим узлом в дереве сцены) и пользователь проводит линию от нужного события (eoent) к другой иконке. Сами события отображаются в виде небольших квадратиков распологающихся с левой и правой сторон иконки. Имена событий, а также соответствующий событию цвет отображаются при наведении курсора.

Соединены могут быть события только одного и того же типа (цвета), как того требует стандарт VRML.
Чтобы удалить маршрут необходимо перечеркнуть его с помощью мышки.

Редактирование значений полей (FieldValues)

"Дюна" предоставляет более чем один способ изменить значения полей в узлах:

Упрощенное конструирование скриптов (Simplified Scriptbuilding) (начиная с версии 0.22beta)

Перед началом использования редактора скриптов, вам необходимо заранее спланировать использование типов данных и входящих/выходящих (eventIn/eventOut) событий в соединяемых узлах. Для этого необходимо, прежде всего, прочесть необходимую документацию по узлам - VRML standard (также вы можете использовать пункт меню Help -> имя текущего узла или воспользоваться имеющейся у вас литературой).
Вы можете найти более удобным способ быстрого конструирования скриптов.
Создайте новый скрипт-узел с помощью иконки "Script" (или выбрав пункт меню Create -> Programming -> Script).
Следуя философии "посторонись!" применявшейся в первоначальной версии "Дюны", попросту щелкните на кнопке "ОК" в диалоговом меню.
Теперь вы можете использовать область просмотра маршрутов для дальнейшей работы.



Скрипт-узлы обладают специальным выходным событием (eventOut) которое возможно подключить к любому другому событию ("connect anything"). Для подключения щелкните по нему мышкой и начните тянуть - появится белая линия графически отображающая маршрут.



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



а цвет маршрута будет изменяться в зависимости от типа данных входного события.



Отпустив кнопку мышки вы зафиксируете маршрут.



Аналагично вы можете использовать специальное входное событие (eventIn) к которому можно подключить любое другое событие ("connect anything"),



и соединить его с выходным событием другого узла.



Теперь необходимо отредактировать узловое поле "url". Это можно сделать посредством urledit, а также выбрав скрипт-узел в области просмотра сцены, и далее поле "url" в области просмотра значений полей.



Следующим шагом следует щелкнуть на иконке "Object Edit" (или выбрать пункт меню Action -> Object edit).



"Дюна" должна вызвать соответствующий текстовый редактор - например в UNIX системе (что также относится к Linux системам) по умолчанию вызывается популярный редактор vi (в настройках "дюны" прописана команда "xterm -e vi"). В случае MacOSX версии вызывается "xedit", а в M$Windows версии используется команда "edit" когда переменная окружения $WINEDITOR не установлена. Вы можете изменить вызываемый редактор используя пункт меню Options -> Texteditor Settings ...
В открывшемся окне редактора вы увидете начальный код (шаблон) javascript.
Воспользовавшись пунктом меню Options -> ECMAscript settings вы можете установить, нужны ли вам более полные комментарии в сгенерированном шаблоне.



Закончите необходимый вам код, сохраните его и закройте редактор (в случае использования vi это команда :wq).


to be continued about NURBS Modelling in english language