Создание спецэффектов

Доступ к ресурсам архивов FTP

3.2.1. Доступ к ресурсам архивов FTP

Файловые архивы - это библиотеки, содержащие различную информацию - от программ до картинок, музыки, фильмов и просто текстовых файлов. Доступ к этим архивам осуществляется специальной программой FTP (File Transfer Programm), которая обращается к специальному серверу, управляющему файловым архивом на удаленной машине. Из названия программы уже понятно, что вся информация хранится в виде файлов, которые организованы в директории. Вообще говоря, FTP-архив - это часть файловой системы, которая доступна для удаленного пользователя FTP-сервера. Важным свойством многих FTP-архивов является возможность так называемого анонимного доступа. Рассмотрим доступ к FTP-архиву на примере робота decwr1.dec.com.
Для того, чтобы получить доступ к архиву следует отправить сообщение по адресу:
mail ftpmail@decwr1.dec.com Поле Subject можно оставить пустым, а в теле сообщения следует ввести команды. Для доступа к архиву oak.oakland.edu и получения его оглавления следует отправить следующее сообщение:
mail ftpmail@decwr1.dec.com Subject: connect oak.oakland.edu anonymous user@domail.net ls quit По команде connect робот попытается установить анонимное соединение с FTP-сервером oak.oakland.edu. В качестве пароля (четвертый аргумент команды connect) следует указать свой почтовый адрес. По команде ls будет получен список файлов корневой директории сервера, а по команде quit робот прервет работу с сервером и вернет результаты пользователю. Важным моментом, ради которого собственно и осуществляется доступ к FTP-серверу, является запрос на передачу файлов. Предавать можно как текстовые, так и двоичные файлы. Для управления типом запрашиваемого файла существует две команды - ascii и binary. Для того, чтобы получить ASCII-файл, следует послать сообщение типа:
mail ftpmail@decwr1.dec.com Subject: connect oak.oakland.edu anonymous user@domail.net ascii get README quit Команда get позволяет заказать файл README. Для получения двоичного файла следует послать сообщение типа:
mail ftpmail@decwr1.dec.com Subject: connect oak.oakland.edu anonymous user@domail.net cd windows/mosaic binary get mosaic.zip quit В приведенном выше примере используется команда cd, которая позволяет переходить по дереву файловой системы от одной директории к другой. При запросе двоичных файлов надо быть уверенным в том, что почтовая программа способна извлечь данные из почтового сообщения (пакет BML позволяет это сделать), или иметь на машине программу uudecode. В случае приема закодированного двоичного файла в тексте сообщения должен быть блок типа:
begin 600 kuku.zip &4$%53`H* ` end Этот блок следует выделить в отдельный файл и обработать программой uudecode.
Пользователи BITNET имеют роботов, которые позволяют использовать более широкие возможности FTP-сервиса. Одним из таких роботов является робот bitftp@pucc.princeton.edu. Этот робот позволяет пользоваться всем набором команд FTP. В течении одной сессии можно открывать и закрывать FTP-соединения с разными ftp серверами, заказывать кодировку двоичных файлов, отличную от uuencode, получать подсказку о своем месте в файловой системы сервера и т.п. В принципе, робот bitftp@pucc.princenton.edu доступен не только пользователям BITNET, но администраторы робота не рекомендуют пользователям других сетей пользоваться данным роботом. Однако для другого робота - BITFTP@vm.gmd.de, таких оговорок нет. Важным достоинством BITNET-роботов является возможность получения списка FTP-архивов. И последнее замечание по поводу доступа к FTP по e-mail: если в теле сообщения указать только слово "help", то робот расскажет о своих возможностях. Ниже приведен пример ответа ftpmail.
From ftpmail@doc.ic.ac.uk Thu Mar 16 02:03 EET 1995 Received: from puffin.doc.ic.ac.uk by apollo.polyn.kiae.su with SMTP (1.38.193.4/16.2) id AA02419; Thu, 16 Mar 1995 02:02:56 +0200 Return-Path: Received: from doc.ic.ac.uk by puffin.doc.ic.ac.uk id <14782-0@puffin.doc.ic.ac.uk>; Wed, 15 Mar 1995 19:22:26 +0000 To: paul@apollo.polyn.kiae.su Subject: response Date: Wed, 15 Mar 1995 19:22:26 +0000 From: Email-FTP Gateway Account Message-Id: <"puffin.doc.790:15.02.95.19.22.34"@doc.ic.ac.uk> Status: RO response ftpmail has received the following job from you: reply-to paul@apollo.polyn.kiae.su open oak.oakland.edu anonymous paul@apollo.polyn.kiae.su ls cd pub get README ftpmail has queued your job as: 995331.14774 Your priority is 9 (0 = highest, 9 = lowest) Requests to src.doc.ic.ac.uk will be done before other jobs. There are 2057 jobs ahead of this one in the queue. 5 ftpmail handlers available. To remove send a message to ftpmail@src.doc.ic.ac.uk containing just: delete 995331.14774 Your original input was>> >Return-Path: >Received: from doc.ic.ac.uk by puffin.doc.ic.ac.uk with SMTP (PP) > id <13192-1@puffin.doc.ic.ac.uk>; Wed, 15 Mar 1995 18:52:46 +0000 >Received: from apollo.polyn.kiae.su by frigate.doc.ic.ac.uk with SMTP (PP) > id <23071-0@frigate.doc.ic.ac.uk>; Wed, 15 Mar 1995 18:42:06 +0000 >Received: by apollo.polyn.kiae.su (1.38.193.4/16.2) id AA02362; > Wed, 15 Mar 1995 21:42:40 +0200 >From: Pavel Khramtsov >Subject: >To: ftpmail@doc.ic.ac.uk >Date: Wed, 15 Mar 95 21:42:40 EET >Mailer: Elm [revision: 70.85] >Message-ID: <"frigate.do.244:15.02.95.18.52.41"@doc.ic.ac.uk> > >connect oak.oakland.edu anonymous paul@apollo.polyn.kiae.su >ls >cd pub >get README >quit > <

Настройка программы sendmail

3.1.1. Настройка программы sendmail

Настройка программы sendmail происходит при помощи файла /etc/sendmail/conf. Этот файл можно разбить на несколько частей:
  • Описание особенностей данной машины (local information) - в данной секции описываются такие параметры, как имя данной машины, имя UUCP и т.п.
  • Описание макроопределений sendmail, отвечающих за работу в локальной сети, например, имя домена и "официальное имя" машины.
  • Описание классов, т.е. групп имен, которые используются программой для рассылки почты. Например, для рассылки в другие почтовые службы.
  • Номер версии файла конфигурации. Данная переменная должна изменяться каждый раз, как только в файл конфигурации вносятся какие-либо изменения.
  • Внутренние макроопределения sendmail. В данном разделе присваиваются значения переменным, которые sendmail использует при взаимодействии с другими транспортными агентами.
  • Опции команды sendmail. Опции определяют режимы работы программы. Опции можно задавать в виде параметров командной строки, а можно в виде описаний в файле настройки.
  • Определение порядка сообщений программы sendmail (Precedence). Обычно эта секция не модифицируется администратором.
  • Доверенные пользователи. В данной секции описываются пользователи, которым разрешено переписывать адреса отправителей, т.е. выступать не под тем адресом, который за ними закреплен.
  • Описание формата заголовка почтового сообщения. В данной секции определяются поля и их формат, которые отображаются в заголовке. Многие поля заголовка sendmail генерирует на основе информации из конверта почтового сообщения.
  • Правила преобразования адресов. Это самая большая часть файла конфигурации программы sendmail. Преобразование адресов необходимо для принятия программой решений о пути рассылки почтовых сообщений, т.к. это решение принимается на основе полученного в результате преобразований почтового адреса.
  • Описание программ рассылки. В данной секции описываются имена программ рассылки, пути и параметры командной строки этих программ. Обычно это программа местной рассылки, рассылка по UUCP, рассылка по SMTP, рассылка на выполнение.
  • Общий набор правил преобразования адресов, который не меняется от машины к машине и от конфигурации к конфигурации (Rule Set 0).
  • Машинно-зависимая часть общего правила преобразования адресов. В данной секции содержание определяется способом рассылки почты. Например, данная секция при рассылке по SMTP будет отличаться от случая рассылки по UUCP.
  • В большинстве случаев все изменения, которые приходиться внести в файл конфигурации, касаются только имени машины, домена и машин шлюзов в другие почтовые службы. Однако, если у организации имеется достаточно продолжительная и славная история использования электронной почты, то может оказаться, что для нормального функционирования придется произвести и ряд более существенных изменений.
    В целом все описанные выше секции решают три основных задачи:
  • определение окружения sendmail,
  • анализ и преобразование адресов электронной почты,
  • рассылка сообщений при помощи программ рассылки.
  • При редактировании файла следует учитывать некоторые правила, которые используются при написании файла конфигурации: вся информация локального характера сосредоточена в начале файла, команды одного типа собраны в компактные группы, большую часть файла составляют правила преобразования адресов, в конце файла описаны программы рассылки электронной почты.
    Все команды, которые используются в файле настроек sendmail можно представить в виде следующей таблицы:
    Команда Синтаксис Назначение
    Define Macro Dxvalue Установить значение "x"
    Define Class Ссword1 word2 ... Установить значение класса "c"
    Define Class Fcfile загрузить значение класса из файла
    Set Option Oovalue Установить значение опции "o"
    Trusted Users Tuser1 user2 ... Определить доверенных пользователей
    Set Precedence Pname=number Для номера ошибки number установить имя name
    Define Mailer Mname,[field=value] Определить программу рассылки почты
    Define Header H[?mflag?]name:format Определить формат поля заголовка
    Set Rulset Sn Начать определение набора правил преобразования адресов
    Define Rule Rlhs rhs comment Определить правило преобразования адреса
    Формат команды файла настроек sendmail не очень удобен для чтения. В целом его можно определить следующим образом:



    Сервер протокола - программа ftpd

    4.3.1. Сервер протокола - программа ftpd

    Команда ftpd предназначена для обслуживания запросов на обмен информацией по протоколу FTP. Сервер обычно стартует в момент загрузки компьютера. Синтаксис запуска сервера следующий:
    ftpd [-d] [-1] [-t timeout]
  • d - опция отладки;
  • 1 - опция автоматической идентификации пользователя;
  • t - время пассивного ожидания команд пользователя.
  • Каждый сервер имеет свое описание команд, которое можно получить по команде help. Автоматическая идентификация пользователей осуществляется при помощи файла /etc/passwd. Пароль пользователя не должен быть пустым.
    Существует специальный файл, в котором содержатся запрещенные пользователи, т.е. те, кому обслуживание по протоколу FTP запрещено. Возможен вход в архив по идентификатору пользователя anonimous или ftp. В этом случае сервер принимает меры по ограничению доступа к ресурсам компьютера для данного пользователя. Обычно для таких пользователей создается специальная директория ftp, в которой размещают каталоги bin, etc и pub. В каталоге bin размещаются команды, разрешенные для использования, а в каталоге pub собственно сами файлы. Каталог etc закрыт для просмотра пользователем и в нем размещены файлы идентификации пользователей.

    В сознании большинства пользователей глобальной

    1. Введение

    В сознании большинства пользователей глобальной компьютерной сети Internet сама эта сеть ассоциируется с тремя основными информационными технологиями:
  • электронная почта (e-mail);
  • файловые архивы FTP;
  • World Wide Web.
  • Каждая из этих технологий направлена на решение одной из множества задач информационного обслуживания пользователей сети.
    Электронная почта - это основное средство коммуникаций Internet. Трудно себе представить пользователя сети, который не знал бы как отправить или получить корреспонденцию от своего коллеги с другого конца света. Несмотря на бурное развитие интерактивных систем коммуникаций, систем реального времени, различных Internet-телефонов и видеофонов, место электронной почты среди других информационных технологий Internet прочно и нерушимо.
    Сеть Internet развивалась в первые свои годы как государственная. Это значит, что главным ее назначением был свободный обмен информацией. Доступность Internet из высших учебных заведений только способствовала этой тенденции. Если электронная почта - это основное средство коммуникаций, то основным способом обмена программным обеспечением и регламентными материалами в Internet стали FTP-архивы. Это только в последнее время Internet стала высокоскоростной информационной магистралью. Долгое время канал со скоростью 9600 бит/с был быстрым каналом связи. В этом легко убедиться, стоит только внимательно почитать файлы настройки терминалов в ОС Unix (termcap). Для работы по этим каналам связи и были разработаны такие протоколы как Telnet и FTP. Упоминание этих двух протоколов вместе здесь не случайно. Telnet и FTP - это отличный пример комплексного решения проблемы. Все управление (сеанс связи и выдача команд) происходит при обмене файлами по протоколу Telnet и только собственно обмен файлами использует специальный канал передачи данных, который определен в спецификации протокола FTP (File Transfer Protocol).
    В настоящее время назначение FTP-архивов существенно расширилось. Несмотря на то, что на арену сетевого обмена выходят все новые средства и технологии, вряд ли они смогут потеснить FTP-обмен в рамках существующих стандартов TCP/IP. Если обратиться к хорошо известной картинке распределения трафика по информационным сервисам Internet (рисунок 1.1), то легко можно обнаружить, что два протокола FTP и Prospero в совокупности довольно сильно превышают трафик HTTP.
    Упоминание о Prospero связано с поиском необходимых пользователю материалов в FTP-архивах. Обычно для этой цели используется программа Archie, которая взаимодействует с поисковой машиной (сервером, поддерживающим индекс) по протоколу Prospero.



    Электронная почта в Internet

    2. Электронная почта в Internet

    Электронная почта - один из важнейших информационных ресурсов Internet. Она является самым массовым средством электронных коммуникаций. Любой из пользователей Internet имеет свой почтовый ящик в сети. Если учесть, что через Internet можно принять или послать сообщения еще в два десятка международных компьютерных сетей, некоторые из которых не имеют on-line сервиса вовсе, то становится понятным, что почта предоставляет возможности в некотором смысле даже более широкие, чем просто информационный сервис Internet. Через почту можно получить доступ к информационным ресурсам других сетей. Хорошим примером может служить доступ к архивам сети BITNET - документам и телеконференциям, которые ведутся на серверах списков (LISTSERVER) BITNET.

    Поиск ресурсов посредством Archie

    3.2.2. Поиск ресурсов посредством Archie

    Archie тесно связана с сервисом, который был рассмотрен в предыдущем разделе, так как тоже работает с FTP-архивами. Назначение Archie - поиск программы в FTP-архиве по шаблону. Действительно, мало знать, где взять, надо еще знать что брать. Если точное имя программы или документа не известно, но есть подозрение, что данный файл храниться в одном из FTP-архивов, к которым есть анонимный доступ, то следует воспользоваться программой archie. В стандартном режиме серверу archie отправляют слово, например "tex", а получают список адресов FTP-архивов, в которых есть программы, начинающиеся с этого слова. После того, как выбран подходящий архив, при помощи FTP списывают программу на свой компьютер. Аналогичный сервис существует через электронную почту.
    Рассмотрим в качестве примера робот archie archie@cs.mcgill.ca. Для получения доступа к услугам archie по адресу робота следует отправить следующее сообщение:
    mail archie@cs.mcgill.ca Subject: help prog tex quit В поле Subject указывается первая команда из списка команд, которые пользователь предполагает выполнить в течении сессии. Если помощи не требуется, то в поле Subject можно указать сразу команду "prog ...". Если сервер имеет специальный файл описания назначения отдельных программ, то можно выполнить команду "whatis tex" и получить объяснение.
    Аналогично стандартному режиму работы, после получения адресов FTP-архивов, хранящих необходимую программу, можно воспользоваться доступом к архиву FTP по электронной почте. Ниже приведен пример ответа почтового робота archie.
    From archie-errors@titanic.CS.McGill.CA Wed Mar 15 21:41 EET 1995 Received: from titanic.CS.McGill.CA by apollo.polyn.kiae.su with SMTP (1.38.193.4/16.2) id AA02354; Wed, 15 Mar 1995 21:40:45 +0200 Return-Path: Received: (from archie@localhost) by titanic.cs.mcgill.ca (8.6.9/8.6.9) id NAA56049; Wed, 15 Mar 1995 13:39:50 -0500 Message-Id: <199503151839.NAA56049@titanic.cs.mcgill.ca> To: Pavel Khramtsov From: (Archie Server)archie-errors@titanic.CS.McGill.CA Reply-To: (Archie Server)archie-errors@titanic.CS.McGill.CA Date: Wed, 15 Mar 95 18:39 GMT Subject: archie [prog tex] part 1 of 1 Status: RO >> path Pavel Khramtsov >> help Archie Email Help (Version 3.2) HELP for this archie email server, as of 11 April, 1994. To perform an archie search via email, send mail to archie@ where is the name of an archie host, some of which are listed below. The "Subject:" header in mail sent to archie is treated as part of the message body. Command lines begin in the first column. All lines that do not match a valid commands are igored. Empty messages are treated as "help" requests (this file). If no command in a particular message can be recognized, the message is treated as "empty" and this file will be returned. The current (and complete) list of archie servers can be found with the "servers" command В этом примере приведен сокращенный ответ сервера.

    Программа обмена файлами - ftp

    4.3.2. Программа обмена файлами - ftp

    FTP - это интерфейс пользователя при обмене файлами по одноименному протоколу. Программа устанавливает канал управления с удаленным сервером и ожидает команд пользователя. Идентификатор удаленного сервера указывается либо аргументом программы, либо в команде интерфейса open.
    Если команда ftp работает с пользователем и ожидает его команд, то на экране отображается приглашение "ftp>".
    Синтаксис команды:
    ftp [-v][-d][-i][-n][host]
  • v - подавляет ответы сервера и статистику передачи данных;
  • n - управляет режимом идентификации пользователя. Если указан этот ключ, то сначала проверяется файл .netrc;
  • i - выключает подтверждения передачи файла при массовом копировании файлов;
  • d - включает режим отладки;
  • g - отключает прозрачность передачи имен.
  • В рамках данного курса нет возможности перечислить все команды ftp, поэтому остановимся только на самых необходимых.
    Первой такой командой является команда open. По этой команде открывается сеанс работы с удаленным сервером:
    ftp>open polyn.net.kiae.su После выдачи такой команды последуют запросы идентификации пользователя. Зарегистрировать пользователя можно и по команде user:
    ftp> user anonymous В данном примере пользователь не имеет особых прав доступа на удаленном сервере и поэтому регистрируется как аноним. В ответ на запрос идентификации следует в этом случае ввести свой почтовый адрес. Обычно достаточно ввести что-то похожее на почтовый адрес для допуска к ресурсам архива, но бывают и дотошные серверы, которые проверяют наличие такого адреса, поэтому лучше никого не обманывать и честно регистрироваться.
    Следующими по важности командами являются команды cd и ls (dir). Назначение этих команд достаточно прозрачно и понятно всем пользователям - навигация по дереву файловой системы и просмотр содержания каталогов. Здесь следует посоветовать пользоваться при просмотре каталогов командой ls с дополнительными параметрами:
    ftp>ls -FC В этом случае пользователь может получить многоколоночный отчет с указанием типов файлов. Однако не все серверы отрабатывают эту комбинацию.
    Так как в процессе приема-передачи участвуют две машины, то кроме навигации в удаленной файловой системе нужна еще навигация в локальной файловой системе. Для этой цели служит команда lcd (локальная cd). Кроме этого пользователь может выдать и любую команду локальной оболочки, если предварит ее символом "!":
    ftp> !pwd По этой команде будет выдано имя текущей директории на локальной машине.
    И, наконец, самыми важными являются команды приема/передачи данных get, put, mget, mput и bin. По командам get и put можно принять или передать один файл:
    ftp> get README.TXT Команды mget, mput предназначены для приема/передачи набора файлов:
    ftp> mget *.gz Из примера видно, что в последнем случае применяется маска "*". Обычно при передаче групп файлов для каждого файла запрашивается подтверждение. Для того, чтобы избежать этого перед приемом/передачей, следует выдать команду prompt. Последняя переключает режим запроса подтверждения и при повторном использовании этой команды состояние запроса подтверждения восстанавливается. Другой полезной командой является команда hash:
    ftp> hash # Символ "#" можно заменить на любой другой. При работе по медленным линиям или при передаче больших файлов после включения режима hash пользователь имеет возможность видеть процесс передачи данных (знак "#" выдается после передачи каждого блока). И последнее, на чем следует остановить внимание - это команда bin. После выдачи этой команды по умолчанию данные будут передаваться в режиме передачи двоичных данных. Последнее чрезвычайно важно, т.к. при передачи в ASCII нельзя передать программы и архивированные данные. Часто бывает полезно включить режим bin и для символьных данных с произвольной длиной строки, например файлов postscript (*.ps), т.к. в ASCII режиме есть ограничение на длину строки (обычно 254 символа).
    Для выхода из ftp следует выполнить команду quit.

    Тестирование обслуживания по протоколу SMTP

    3.1.2. Тестирование обслуживания по протоколу SMTP

    Для проверки сервиса SMTP применяют программу telnet, запущенную по порту 25:
    citmgu> telnet server.citmgu.ru 25 В этом случае система отвечает строкой приглашения протокола SMTP, после чего можно вводить команды SMTP и проверять реакцию системы на них:
    # telnet citmgu.ru 25 Trying 194.85.135.66... Connected to citmgu.ru. Escape character is '^]'. 220 cit-u.citmgu.ru ESMTP Sendmail 8.8.5/8.8.5; Mon, 30 Jun 1997 09:45:55 GMT help 214-This is Sendmail version 8.8.5 214-Topics: 214- HELO EHLO MAIL RCPT DATA 214- RSET NOOP QUIT HELP VRFY 214- EXPN VERB ETRN DSN 214-For more info use "HELP ". 214-To report bugs in the implementation send email to 214- sendmail-bugs@sendmail.org. 214-For local information send email to Postmaster at your site. 214 End of HELP info MAIL FROM: paul 250 paul... Sender ok RCPT TO: paul 250 paul... Recipient ok DATA 354 Enter mail, end with "." on a line by itself This is a test message . 250 JAA24836 Message accepted for delivery quit 221 cit-u.citmgu.ru closing connection Connection closed by foreign host. You have new mail. # В приведенном здесь сеансе сначала пользователь выдал команду help и получил список команд, которые можно использовать при взаимодействии по протоколу SMTP. Затем пользователь выдал команду MAIL FROM: для указания адреса отправителя почтового сообщения. После этого выдана команда RCPT TO:, и указан адрес получателя почтового сообщения. Команда DATA открывает возможность ввода почтового сообщения, т.е. клиент из режима командной строки переходит в режим редактирования сообщения. Редактировать можно только в пределах одной строки путем затирания символом забоя предварительно набитых символов. Вернуться на строку выше нельзя. Конец режима редактирования обозначается символом "." в первой позиции строки. После этого клиент возвращается в режим командной строки, а сообщение отсылается. Совершенно очевидно: что за один сеанс можно отправить несколько сообщений как одному и тому же адресату, так и разным адресатам на одном и том же компьютере. Посылать сообщения можно через другую машину, если в качестве адреса получателя указать что-либо подобное ниже приведенному:
    paul%quest.polyn.kiae.su@citmgu.ru В этом случае сообщение отправляется на citmgu.ru, а затем оно будет переправлено на quest.polyn.kiae.su.

    Поиск в FTP-архивах - программа Archie

    4.3.3. Поиск в FTP-архивах - программа Archie

    В настоящее время доступ по FTP-протоколу осуществляется из множества мультипротокольных интерфейсов (например, Mosaic или Netscape) или графических ftp-оболочек типа ftptool для X-Window. Все они гораздо удобнее и проще в использовании, но и потребляют гораздо больше ресурсов.
    Любопытно, что FTP-сервер есть даже для MS-DOS (пакет NCSA Telbin), не говоря о многозадачных средах. Однако поиск нужного FTP-сервера в Internet - задача сложная и трудоемкая. Для ее облегчения существует специальное средство - Archie. Archie был разработан в Университете McGill в Канаде. Задача Archie - сканировать FTP-архивы на предмет наличия в них требуемых файлов. Работать с Archie можно через telnet-сессию, через локального клиента или по электронной почте. Для работы по telnet следует открыть telnet-сессию, в ответ на login ввести слово "archie":
    telnet archie.mcgill.ca login: archie ...... archie> После появления приглашения "archie>" следует поинтересоваться возможностями сервера, введя команду "help".
    При работе через локального клиента вводят просто:
    archie gnuplot.tar.gz и в ответ получают список архивов, где имеется файл "gnuplot.tar.gz". Следует принять во внимание, что различные модификации клиентов (особенно графические) могут значительно отличаться по синтаксису друг от друга.

    Программное обеспечение почтового обмена

    3. Программное обеспечение почтового обмена

    Согласно схеме почтового обмена (рисунок 2.1) взаимодействие между участниками этого обмена строится по классической схеме "клиент-сервер". При этом схему можно подразделить на несколько этапов. Первый - взаимодействие по протоколу SMTP между почтовым клиентом (Internet Mail, Netscape Messager, Eudora и т.п.) и почтовым транспортным агентом (sendmail, smail, ntmail и т.п.), второй - взаимодействие между транспортными агентами в процессе доставки почты получателю, результатом которого является доставка почтового сообщения в почтовый ящик пользователя и третий - выборка сообщения из почтового ящика пользователя почтовым клиентом в почтовый ящик пользователя на машине пользователя по протоколу POP3 или IMAP.

    взаимодействие по протоколу POP3 можно

    3.1.3. Тестирование по протоколу POP3

    ормально, взаимодействие по протоколу POP3 можно разделить на две фазы: фазу аутентификации и фазу обмена данными. В фазе аутентификации пользователь должен сообщить свой идентификатор и пароль. Если аутентификация была произведена успешно, то система позволяет работать с домашним ящиком пользователя. Сам протокол POP3 очень похож на SMTP с той только разницей, что сообщения можно принимать но нельзя отправлять.

    Приведем пример взаимодействия по протоколу POP3:

    quest> telnet quest.net.kiae.su Trying 144.206.130.138... Connected to quest.net.kiae.su. Escape character is '^]'. +OK QPOP (version 2.2) at quest.net.kiae.su starting. <10124.867839706@quest.net.kiae.su> user paul +OK Password required for paul. pass Kukuru23432 +OK paul has 6 messages (12576 octets). stat +OK 6 12576 list +OK 6 messages (12576 octets) 1 1447 2 2640 3 2296 4 1100 5 3025 6 2068 . noop +OK last +OK 4 is the last read message. retr 4 +OK 1100 octets Received: from mail1.relcom.ru (mail1.relcom.ru [193.125.152.4]) by quest.net.kiae.su (8.7.5/8.7.3) with ESMTP id CAA09628 for ; Wed, 2 Jul 1997 02:51:43 +0400 (MSD) Received: from thevni (uucp@localhost) by mail1.relcom.ru (8.7.5.R.ML.S/Relcom-2A) with UUCP id BAA03544 for paul;Wed, 2 Jul 1997 01:34:45 +0400 (MSD) Received: by Relay1.relcom.ru (UUMAIL/2.0); Wed, 2 Jul 97 01:34:44 +0300 Received: by theor.vniinm.msk.su (UUPC/@ v5.06gamma, 07Feb93); Wed, 2 Jul 1997 01:24:57 +0400 To: paul@kiae.su References: <33B92C6B.9FA2C1A4@kiae.su> Message-Id: Organization: A.A. Bochvar Institute for Inorganic Materials, Theoret From: "Alexander Z. Solontsov" Date: Wed, 2 Jul 97 01:24:56 +0400 X-Mailer: BML [MS/DOS Beauty Mail v.1.36] Subject: life Lines: 9 X-UIDL: 2313051b98ef908dceefe8b801d9e60d Status: RO To: N.M.Sergeeva Dear H.M., I am still alive, publishing a lot, and this year applied to RAN. Would be pleased to hear from you in a more derect way. Alexander . dele 4 +OK Message 4 has been deleted. rset 4 -ERR Too many arguments for the rset command. rset +OK Maildrop has 6 messages (12576 octets) list +OK 6 messages (12576 octets) 1 1447 2 2640 3 2296 4 1100 5 3025 6 2068 . quit +OK Pop server at quest.net.kiae.su signing off. Connection closed by foreign host. В данном примере используется все тот же прием доступа к серверу через программу Telnet по 110 порту TCP. В начале выдаются команды фазы аутентификации user и pass. Затем выдается команда stat, которя сообщает статус почтового ящика пользователя paul. По команде list система сообщает число сообщений и их размер в байтах. По команде retr можно получить текст сообщения. По команде dele пометить сообщение к удалению. Удаляются сообщения только в момент окончания сеанса, а во время сеанса они только помечаются как удаленные, поэтому по команде rset эти пометки можно снять. Команда Quit завершает сеанс работы с сервером.

    Файловые архивы Internet

    4. Файловые архивы Internet

    В настоящее время, когда популярность World Wide Web достаточно велика, объем трафика передаваемого по сети Internet по протоколу FTP занимает тем не менее первое место, несколько опережая объем трафика по протоколу HTTP. В этом свете организация файловых архивов в рамках технологии TCP/IP является крайне актуальной задачей.
    Архивы используют для решения разных задач, однако наиболее популярными в сети являются свободно доступные архивы или такие архивы, доступ к которым разрешен по анонимному идентификатору пользователя. Таким образом эти архивы можно использовать в качестве:
  • коллекции свободно распространяемого программного обеспечения;
  • коллекции программ для бета-тестирования;
  • коллекции нормативных и регламентных документов;
  • и т.п.
  • FTP-архив можно использовать и в качестве архива коммерческого программного обеспечения, которое используется в компании, только в этом случае такой архив не должен разрешать анонимного доступа к хранящимся в нем ресурсам.
    Часто возможность авторизированного FTP-доступа используют и для обмена сообщениями, т.е. в качестве средства коммуникации. Это происходит обычно в том случае, когда система электронной почты по тем или иным причинам не работает.
    В настоящее время всю систему взаимодействия компонентов FTP-обмена можно представить в виде схемы представленной на рисунке 4.1.
    На этой схеме показано два важных технологических момента: во-первых, доступ к архиву можно осуществлять не только из специализированной программы-клиента, но и из универсального броузера, например Netscape Communicator или Microsoft Internet Explorer, а во-вторых, для поиска информации в FTP-архивах можно воспользоваться программой Archie.



    Протокол IMAP

    3.1.4. Протокол IMAP

    Другим протоколом разбора почты является протокол IMAP (Interactive Mail Access Protocol), который по своим возможностям очень похож на POP3, но был разработан как более надежная альтернатива последнего и к тому же обладает более широкими возможностями по управлению процессом обмена с сервером.
    Работа протокола осуществляется по 143 потру TCP. Главным отличием от POP является возможность поиска нужного сообщения и разбор заголовков сообщения.
    Ниже приведен пример взаимодействия по протоколу IMAP
    OK IMAP2 Server Ready A001 LOGIN Fred Secret A001 OK User Fred logged in A002 SELECT INBOX * FLAGS (Meeting Notice \Answered \Flagged \Deleted \Seen) * 19 Exists * 2 Recent * A002 OK Select compete A003 FETCH 1:19 ALL * 1 Fetch ( ..... * 19 Fetch (.... A003 OK Fetch complete A004 LOGOUT * Bye IMAP2 server quitting A004 OK Logout complete Для поиска информации используются команды FIND с различными аргументами.

    Тестирование отправки почты программой Sendmail - флаг "-v"

    3.1.5. Тестирование отправки почты программой Sendmail - флаг "-v"

    Для того чтобы убедится, что почта уходит туда куда вы предполагаете можно, запустить sendmail из командной строки в так называемом verbowse режиме, т.е. когда диалог между транспортными агентами (двумя программами sendmail) трассируется на экране монитора или записывается в файл. Некоторые грубые ошибки в настройке sendmail можно таким образом установить, например зацикливание при локальной рассылке.
    % sendmail -v paul@citmgu.ru Test . paul@citmgu.ru... Connecting to local... paul@citmgu.ru... Sent % sendmail -v paul@quest.net.kiae.su Test . paul@quest.net.kiae.su... Connecting to quest.net.kiae.su. via esmtp... 220 quest.net.kiae.su ESMTP Sendmail 8.7.5/8.7.3; Mon, 30 Jun 1997 11:36:31 +040 0 (MSD) >>> EHLO cit-u.citmgu.ru 250-quest.net.kiae.su Hello [194.85.135.66], pleased to meet you 250-EXPN 250-8BITMIME 250-SIZE 250-DSN 250-VERB 250-ONEX 250 HELP >>> MAIL From: SIZE=5 250 ... Sender ok >>> RCPT To: 250 Recipient ok >>> DATA 354 Enter mail, end with "." on a line by itself >>> . 250 LAA07168 Message accepted for delivery paul@quest.net.kiae.su... Sent (LAA07168 Message accepted for delivery) Closing connection to quest.net.kiae.su. >>> QUIT 221 quest.net.kiae.su closing connection % В этом примере сначала тестируется локальная рассылка, а затем проверяется удаленная рассылка почты. Если бы на локальной машине существовал скрытый цикл, то программа выдала бы предупреждение о возможных ошибках в файле конфигурации sendmail. Однако чаще всего эти ошибки связаны с настройками named, а не sendmail.

    Тестирование правил преобразования адресов

    3.1.6. Тестирование правил преобразования адресов

    Для тестирования правил преобразования адресов sendmail запускают с флагом "-bt" для того, чтобы тестирование было более детальным, можно применять и ряд других флагов.
    Пример тестирования набора правил 0 и его подправил.
    % sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter
    > 0 paul@polyn.kiae.su rewrite: ruleset 0 input: paul @ polyn . kiae . su rewrite: ruleset 98 input: paul @ polyn . kiae . su rewrite: ruleset 98 returns: paul @ polyn . kiae . su rewrite: ruleset 97 input: paul @ polyn . kiae . su rewrite: ruleset 3 input: paul @ polyn . kiae . su rewrite: ruleset 96 input: paul < @ polyn . kiae . su > rewrite: ruleset 96 returns: paul < @ polyn . kiae . su . > rewrite: ruleset 3 returns: paul < @ polyn . kiae . su . > rewrite: ruleset 0 input: paul < @ polyn . kiae . su . > rewrite: ruleset 98 input: paul < @ polyn . kiae . su . > rewrite: ruleset 98 returns: paul < @ polyn . kiae . su . > rewrite: ruleset 90 input: < polyn . kiae . su > paul < @ polyn . kiae . su . > rewrite: ruleset 90 input: polyn . < kiae . su > paul < @ polyn . kiae . su . > rewrite: ruleset 90 input: polyn . kiae . < su > paul < @ polyn . kiae . su . > rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . > rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . > rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . > rewrite: ruleset 95 input: < > paul < @ polyn . kiae . su . > rewrite: ruleset 95 returns: paul < @ polyn . kiae . su . > rewrite: ruleset 0 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . > rewrite: ruleset 97 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . > rewrite: ruleset 0 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . > > В этом примере четко виден порядок преобразования. Сначала производится канонизация имени, а затем его преобразование в соответствии с рассылкой. Набор правил 0 - это набор преобразования адресов получателей. После него принимается решение о рассылке почты.
    Чаще всего ошибки встречаются в наборе правил 3, а точнее в поднаборе этого набора 96. Здесь производится канонизация адресов. Наибольшие проблемы проявляются с так называемыми фиктивными доменами, которые не могут быть разрешены службой доменных имен. В этом случае происходит, обычно, расширение имени именем текущего домена, и, как результат, ошибка при рассылке. Такие имена либо надо вносить в список адресов фиктивных доменов (BITNET или UUCP), либо их отлавливать и запускать написанные для них программы рассылки.
    В приведенном ниже примере тестирование адресов производится с максимальной опцией отладки, когда указываются не только номера наборов правил, но и сами тестируемые правила:
    %sendmail -bt -d21.12 >3 paul@polyn.kiae.su ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter
    > rewrite: ruleset 3 input: paul @ polyn . kiae . su -----trying rule: $@ ----- rule fails -----trying rule: $* -----rule matches: $: $1 < @ > rewritten as: paul @ polyn . kiae . su < @ > -----trying rule: $* < $* > $* < @ > ----- rule fails -----trying rule: $* : : $* < @ > ----- rule fails -----trying rule: : include : $* < @ > ----- rule fails -----trying rule: $* : $* < @ > ----- rule fails -----trying rule: $* < @ > -----rule matches: $: $1 rewritten as: paul @ polyn . kiae . su -----trying rule: $* ; ----- rule fails -----trying rule: $@ ----- rule fails -----trying rule: $* -----rule matches: $: < $1 > rewritten as: < paul @ polyn . kiae . su > -----trying rule: $+ < $* > ----- rule fails -----trying rule: < $* > $+ ----- rule fails -----trying rule: < > ----- rule fails -----trying rule: < $+ > -----rule matches: $: $1 rewritten as: paul @ polyn . kiae . su -----trying rule: @ $+ , $+ ----- rule fails -----trying rule: @ $+ : $+ ----- rule fails -----trying rule: $+ : $* ; @ $+ ----- rule fails -----trying rule: $+ : $* ; ----- rule fails -----trying rule: $+ @ $+ -----rule matches: $: $1 < @ $2 > rewritten as: paul < @ polyn . kiae . su > -----trying rule: $+ < $+ @ $+ > ----- rule fails -----trying rule: $+ < @ $+ > -----rule matches: $@ $> 96 $1 < @ $2 > -----callsubr 96 rewrite: ruleset 96 input: paul < @ polyn . kiae . su > -----trying rule: $* < @ localhost > $* ----- rule fails -----trying rule: $* < @ localhost . net . kiae . su > $* ----- rule fails -----trying rule: $* < @ localhost . UUCP > $* ----- rule fails -----trying rule: $* < @ [ $+ ] > $* ----- rule fails -----trying rule: $* < @ @ $=w > $* ----- rule fails -----trying rule: $* < @ @ $+ > $* ----- rule fails -----trying rule: $* < @ $+ . UUCP > $* ----- rule fails -----trying rule: $* < @ $* $~P > $* -----rule matches: $: $1 < @ $[ $2 $3 $] > $4 rewritten as: paul < @ polyn . kiae . su . > -----trying rule: $* < @ $=w > $* ----- rule fails -----trying rule: $* < @ $* $=P > $* -----rule matches: $: $1 < @ $2 $3 . > $4 rewritten as: paul < @ polyn . kiae . su . . > -----trying rule: $* < @ $* . . > $* -----rule matches: $1 < @ $2 . > $3 rewritten as: paul < @ polyn . kiae . su . > -----trying rule: $* < @ $* . . > $* ----- rule fails -----trying rule: $* < @ quest . net . kiae . su > $* ----- rule fails rewrite: ruleset 96 returns: paul < @ polyn . kiae . su . > rewritten as: paul < @ polyn . kiae . su . > rewrite: ruleset 3 returns: paul < @ polyn . kiae . su . > >96 paul@polyn.kiae.su > rewrite: ruleset 96 input: paul @ polyn . kiae . su -----trying rule: $* < @ localhost > $* ----- rule fails -----trying rule: $* < @ localhost . net . kiae . su > $* ----- rule fails -----trying rule: $* < @ localhost . UUCP > $* ----- rule fails -----trying rule: $* < @ [ $+ ] > $* ----- rule fails -----trying rule: $* < @ @ $=w > $* ----- rule fails -----trying rule: $* < @ @ $+ > $* ----- rule fails -----trying rule: $* < @ $+ . UUCP > $* ----- rule fails -----trying rule: $* < @ $* $~P > $* ----- rule fails -----trying rule: $* < @ $=w > $* ----- rule fails -----trying rule: $* < @ $* $=P > $* ----- rule fails -----trying rule: $* < @ $* . . > $* ----- rule fails -----trying rule: $* < @ quest . net . kiae . su > $* ----- rule fails rewrite: ruleset 96 returns: paul @ polyn . kiae . su > Правила в данном случае указываются по их левой части и для правильного понимания необходимо иметь и тот фрагмент файла конфигурации sendmail, который тестируется.

    Доступ к ресурсам Internet через электронную почту

    3.2. Доступ к ресурсам Internet через электронную почту

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

    "Если значение переменной

    То же самое можно записать и по-другому:
    if(x!=NULL) { strcpy(q,x); strcat(q," <"); strcat(q,g); strcat(q,">"); { else { strcpy(q,g); } В данном случае $? соответствует оператору if, $| - else, а $. - конец условного оператора.
    Следующая секция - это определение опций:
    ############### # Options # ############### # strip message body to 7 bits on input? #O7False # Insist that the BIND name server be running to resolve names OI # deliver MIME-encapsulated error messages? OjTrue В данном случае приведен только фрагмент этой секции. Большинство параметров общие для всех установок sendmail. Указанные же в листинге параметры являются принципиальными с точки зрения режимов работы sendmail. Первый параметр определяет тот факт, что по почте можно пересылать семибитовую информацию. Согласно RFC-822 информация должна быть семибитовая, но для передачи кириллицы это значит использовать кодирование, что абсолютно не приемлемо. Поэтому данный параметр должен быть закоментарен. В системах, где используется сервер доменных имен, опция I (OI) должна быть установлена, чтобы не было ошибок при идентификации доменов. Последний параметр не является принципиальным, но для целей более понятного представления его следует установить. Если почтовый клиент не поддерживает MIME, то данный параметр следует закоментарить.
    Следующие две секции определяют уровень сообщений об ошибках и доверенных пользователей:
    ########################### # Message precedence # ########################### Pfirst-class=0 Pspecial-delivery=100 Plist=-30 Pbulk=-60 Pjunk=-100 ##################### # Trusted users # ##################### Troot Tdaemon Tuucp За этими двумя секциями следует секция описания полей заголовка почтового сообщения, который генерируется программой sendmail:
    ######################### # Format of headers # ######################### H?P?Return-Path: $g HReceived: $?sfrom $s $.$?_($?s$|from $.$_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for $u$.; $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: # HPosted-Date: $a # H?l?Received-Date: $b H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> Формат команд данной секции определяет какие поля включаются в заголовок, а какие не включаются. Данная секция тесно связана с секцией определения программ рассылки почты. Если после H нет знака вопроса, то поле включается в заголовок сообщения для любой программы рассылки, если после H символ "?" присутствует, то в строке аргументов программы рассылки данный флаг должен быть определен для того, чтобы данное поле было включено в заголовок. Как следует из приведенного выше описания, всегда включаются только поля Received и Subject. Все перечисленные поля не являются обязательными полями заголовка.
    Следующая секция - правила преобразования адресов. Но прежде чем обсуждать ее содержание следует сказать как и когда sendmail эти адреса преобразовывает.
    Прежде всего необходимо рассмотреть схему преобразования (рисунок 3.3).



    Формат почтового сообщения (RFC-822)

    2.4. Формат почтового сообщения (RFC-822)

    При обсуждении примеров отправки и получения почтовых сообщений уже упоминался формат почтового сообщения. Разберем его подробнее. Формат почтового сообщения Internet определен в документе RFC-822 (Standard for ARPA Internet Text Message). Это довольно большой документ объемом в 47 страниц машинописного текста, поэтому рассмотрим формат сообщения на примерах. Почтовое сообщение состоит из трех частей: конверта, заголовка и тела сообщения. Пользователь видит только заголовок и тело сообщения. Конверт используется только программами доставки. Заголовок всегда находится перед телом сообщения и отделен от него пустой строкой. RFC-822 регламентирует содержание заголовка сообщения. Заголовок состоит из полей. Поля состоят из имени поля и содержания поля. Имя поля отделено от содержания символом ":". Минимально необходимыми являются поля Date, From, cc или To, например:
    Date: 26 Aug 76 1429 EDT From: Jones@Registry.org cc: или
    Date: 26 Aug 76 1429 EDT From: Jones@Registry.org To: Smith@Registry.org Поле Date определяет дату отправки сообщения, поле From - отправителя, а поля сс и To - получателя(ей). Чаще заголовок содержит дополнительные поля:
    Date: 26 Aug 76 1429 EDT From: George Jones Sender: Secy@SHOST To: Smith@Registry.org Message-ID: <4231.629.XYzi-What@Registry.org> В данном случае поле Sender указывает, что George Jones не является автором сообщения. Он только переслал сообщение, которое получил из Secy@SHOST. Поле Message-ID содержит уникальный идентификатор сообщения и используется программами доставки почты. Следующее сообщение демонстрирует все возможные поля заголовка:
    Date: 27 Aug 76 0932 From: Ken Davis Subject: Re: The Syntax in the RFC Sender: KSecy@Other-host Reply-To: Sam.Irving@Reg.Organization To: George Jones cc: Important folks: Tom Softwood , "Sam Irving"@Other-Host;, Standard Distribution: /main/davis/people/standard@Other-Host Comment: Sam is away on bisiness. In-Reply-To: , George`s message X-Special-action: This is a sample of user-defined field- names. Message-ID: <4331.629.XYzi-What@Other-Host Поле Subject определяет тему сообщения, Reply-To - пользователя, которому отвечают, Comment - комментарий, In-Reply-To - показывает, что сообщение относится к типу "В ответ на Ваше сообщение, отвечающее на сообщение, отвечающее ...", X-Special-action - поле, определенное пользователем, которое не определено в стандарте.
    Следует сказать, что формат сообщения постоянно дополняется и совершенствуется. В RFC-1327 введены дополнительные поля для совместимости с почтой X.400. Кроме этого, следует обратить внимание на поля некоторых довольно часто встречающихся заголовков, которые не регламентированы в RFC-822. Так первое предложение заголовка, которое начинается со слова From, содержит UUCP-путь сообщения, по которому можно определить, через какие машины сообщение "пробиралось". Поле Received: содержит транзитные адреса почтовых серверов с датой и временем прохождения сообщения. Вся эта информация полезна при разборе трудностей с доставкой почты.
    В заключение хотелось бы отметить, что возможности почты не ограничиваются только пересылкой корреспонденции. По почте можно получить доступ ко многим ресурсам Internet, которые имеют почтовых роботов, отвечающих на запросы страждущих. Поэтому имеет смысл более детально изучить программное обеспечение, поддерживающее e-mail. Время, затраченное на чтение документации и опыты, окупятся возможностью получения информации из информационных архивов сети.

    Интерфейс bml

    Программа bml является стандартной для абонентов сети Relcom. Она входит в комплект версии для пользователей MS-DOS и имеется во многих Unix-системах сети. Для лучшей наглядности лучше обратиться к рисунку 3.4.



    Интерфейс elm

    Наиболее распространенной программой работы с почтой в Unix-системах является программа elm. Elm также, как и bml, является полноэкранным почтовым интерфейсом. Запуск программы осуществляется по команде elm:
    elm На экране появляется сообщение о версии системы, список полученных сообщений и список команд, которыми может воспользоваться пользователь. Следует обратить внимание на то, что некоторые версии elm способны подстраиваться под размер экрана автоматически. Пример экрана elm представлен на рисунке 3.8.



    Интерфейс Eudora

    Интерфейс Eudora является одним из множества почтовых интерфейсов, ориентированных на работу с почтой Internet из системы MS-Windows. На примере этого интерфейса мы рассмотрим типичные проблемы, которые возникают у пользователей персональных компьютеров при подключении к почтовому сервису Internet, и пути их решения.
    Первой проблемой является тот факт, что компьютер выключается из сети на время отсутствия пользователя. Это значит, что в это время прием почтовых сообщений не производится. Следовательно, вся почта должна хранится на почтовом сервере и получаться пользователем по его запросу. При работе с Unix об этом заботится программа sendmail, в MS-Windows такой программы нет (точнее есть, но она не ориентирована на Internet). Поэтому обычно применяется следующая схема (рисунок 3.9):



    Интерфейс mail

    Самая простая и самая распространенная программа подготовки и отправки почты - это программа mail или ее аналог mailx. Для большинства современных пользователей mail покажется архаизмом времен, когда полноэкранные и графические интерфейсы еще не были даже задуманы. Однако, попробовать mail имеет смысл, т.к. ограничения mail на размер файлов не столь жесткие как в полноэкранных интерфейсах типа bml и принцип работы программы более прозрачен, чем принципы работы ее современных аналогов. Для отправки почты самому себе следует набрать следующую строку:
    mail paul В качестве paul укажите свой почтовый адрес. В ответ программа выдаст предложение ввести сообщение:
    Subject: Если это тестовое сообщение, лучше всего ввести слово "test". Теперь программа перейдет на следующую строку и будет ждать текста сообщения. Следует учесть, что при редактировании в mail можно использовать только стирание стоящей перед курсором буквы и только в пределах текущей строки. Если пользователь нажал клавишу Enter, то весь текст выше текущей строки недоступен для редактирования. Пусть сообщение будет состоять из одной фразы:
    This is a test message. Для завершения ввода сообщения следует нажать Cntrl+D, что означает конец ввода. После этого сообщение будет отправлено. Окончить ввод сообщения можно и другим способом - ввести строку, которая содержит только символ "." в первой позиции.
    Прочитать его можно выполнив программу mail без аргумента:
    mail В этом случае на экране появится что-то вроде:
    Mail version 5.5 6/1/90. Type ? for help "/var/mail/paul": 1 message 1 new >N 1 paul Sun Feb 5 15:21 11/246 & Первая строка указывает на версию программы, вторая строка показывает место почтового ящика пользователя и количество сообщений в нем, при этом указывается отдельно число новых сообщений. Третья строка - это начало списка полученных почтовых сообщений. Буква "N" в начале строки указывает на то, что это новое сообщение, "1" - номер по порядку в почтовом ящике, paul - адрес отправителя, "Sun Feb 5 15:21" - дата и время отправки сообщения, "11/246" - указывает на число строк в сообщении и число байтов, которые составляют сообщение. Для просмотра сообщения следует просто нажать Enter. На экране появится:
    Message 1: From paul Sun Feb 5 15:21:57 1995 Date: Sun, 5 Feb 95 15:21:57 -0700 From: paul To: paul Subject: test This is a test message. & Как можно заметить, текст сообщения содержит дополнительную информацию, которая была добавлена программами рассылки и называется заголовком почтового сообщения. Заголовок отделен от сообщения пустой строкой. Из заголовка можно понять, кто и когда отправил сообщение.
    Фактически, mail без аргументов просматривает почтовый ящик пользователя. Если в нем находятся другие сообщения, отличные от тестового сообщения пользователя, то это значит, что к пользователю пришла почта от других пользователей сети, или программ. Для прекращения просмотра сообщений, следует после знака "&" ввести символ "q".
    Для отправки файла программой mail следует указать этот файл в качестве файла стандартного ввода:
    mail paul < file.in В этом случае файл будет немедленно отправлен адресату.
    Следует заметить, что от системы к системе синтаксис команды mail может незначительно меняться. Так, в системе HP/UX 9.0, mail не предлагает ввести тему сообщения, аналогично ведет себя mail и системе BSDI/386 0.9. Однако mailx из HP/UX 9.0 практически аналогична mail из BSDI/386 0.9. В любом случае имеет смысл обратиться к руководству по командам операционной системы.
    Важным моментом при использовании mail является его использование в качестве фильтра:
    uuencode test.exe test.exe | mail paul@quest.polyn.kiae.su В приведенном выше примере бинарный файл test.exe предварительно кодируется программой uuencode в файл ASCII, а затем отправляется пользователю paul на машине quest.polyn.kiae.su.
    Рассмотрим теперь более современные интерфейсы подготовки почтовых сообщений bml и elm. Обе эти программы подготовки почты работают в режиме полноэкранных интерфейсов.

    Поле типа содержания тела почтового сообщения (Content-Type)

    Поле типа используется для описания типа данных, которые содержатся в теле почтового сообщения. Это поле сообщает программе чтения почты какого сорта преобразования необходимы для того, чтобы сообщение правильно проинтерпретировать. Эта же информация используется и программой рассылки при кодировании/декодировании почты. Стандарт MIME определяет семь типов данных, которые можно передавать в теле письма: текст (text); смешанный тип (multipart); почтовое сообщение (message); графический образ (image); аудио информация (audio); фильм или видео (video); приложение (application). Общая форма записи поля выглядит в записи Бекуса-Наура как:
    Content-Type:= type "/" subtype *[";" parameter] type := "application" / "audio" / "image" / "message" / "multipart" / "text" / "video" / x-token x-token := <Два символа "X-", за которыми без пробела следует последовательность любых символов> subtype := token parameter:= attribute "=" value attribute:= token value := token / quoted-string token := 1*<любой символ кроме пробела и управляющего символа, или tspecials> tspecials:= "(" /")" / "<" / ">" / "@" ; Обязательно / "," / ";" / ":" / "\" / <"> ; должны быть, / "/" / "[" / "]" / "?" / "." ; заключены в / "=" ; кавычки. Остановимся подробнее на каждом из типов, разрешенных стандартом MIME.
    Text. Этот тип указывает на то, что в теле сообщения содержится текст. Основным подтипом типа "text" является "plain", что обозначает так называемый планарный текст. Понятие планарного текста появилось в связи с тем, что существует еще размеченный текст, т.е. текст со встроенными в него символами управления отображением, и гипертекст, т.е. текст, который можно просматривать не последовательно, а произвольно, следуя гипертекстовым ссылкам. Для обозначения размеченного текста используют подтип "richtext", а для обозначения гипертекста подтип "html". Вообще говоря, "html" - это специальный вид размеченного текста, который используется для представления гипертекстовой информации в системе World Wide Web, которая получила в последнее время широкое распространение в Internet. Понятие размеченного текста требует более подробного обсуждения, так как его передача и интерпретация являются одной из причин появления стандарта MIME.
    "Richtext" определяет текст со встроенными в него специальными управляющими последовательностями, которые в соответствии со стандартом языка разметки документов SGML называются тагами. Таги представляют из себя последовательность символов типа "<строка-символов>". "Строка-символов" определяет управляющее действие. Таги делятся на таги начала элемента текста ("<......>") и таги конца элемента текста (""). В качестве примера такой разметки можно привести следующий фрагмент текста:
    Now is the time for all good men (and women>) to come to the aid of their В этом фрагменте означает выделение "жирным" шрифтом, - курсив, - мелкий шрифт, - знак "<", игнорирование обозначено как , новая строка как .
    Специальный тип разметки задается подтипом "html". Это так называемый гипертекст. Разметка гипертекста строится по тому же принципу как и в тексте типа "richtext". Однако применяются таги, позволяющие описать гипертекстовые ссылки. К таким тагам относятся ".....", , . Таг " ....... определяет следующий фрагмент текста, который будет просматриваться. При этом текст между тагом начала и тагом конца будет выделен в программе просмотра цветом или другим способом и используется как контекстная гипертекстовая ссылка. Таг задет встроенный в текст документа графический образ. В некотором смысле этот таг аналогичен "multipart", который разрешает комбинировать сообщение из нескольких фрагментов разного типа. Таг определяет "якорь", т.е. место внутри документа, на которое можно сослаться как на метку. В качестве примера такой разметки текста можно привести следующий фрагмент:
    Это пример разметки документа в формате HTML.

    Это заголовок документа

    - Это параграф.
    Это пример гипертекстовой ссылки. Это встроенный image. Это "якорь" внутри текста документа. "Multipart". Этот тип содержания тела почтового сообщения определяет смешанный документ. Смешанный документ может состоять из фрагментов данных разного типа. Данный тип имеет ряд подтипов.
    Подтип "mixed" - задает сообщение, состоящее из нескольких фрагментов, которые разделены между собой границей, задаваемой в качестве параметра подтипа. Приведем простой пример:
    From: Nathaniel Borenstein To: Ned Freed Subject: Sample message MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary This is implicitly typed plain ASCII text. It does NOT end with a linebreak. --simple boundary Content-type: text/plain; charset=us-ascii This is explicitly typed plain ASCII text. It DOES end with a linebreak. --simple boundary-- This is the epilogue. It is also to be ignored. В данном примере поле "Content-Type" определяет подтип "mixed" и границу между фрагментами, как строку "--simple boundary--". В начале каждого фрагмента может быть задана своя строка с полем "Content-Type". Как видно из примера, существует два фрагмента, которые не отображаются: преамбула и эпилог, в которые можно поместить комментарии.
    Другим подтипом может быть подтип "alternative". Данный подтип позволяет организовать вариабельный просмотр почтового сообщения в зависимости от типа программы просмотра. Приведем пример:
    From: Nathaniel Borenstein To: Ned Freed Subject: Formatted text mail MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=boundary42 --boundary42 1 фрагмент Content-Type: text/plain; charset=us-ascii ...plain text version of message goes here.... --boundary42 2 фрагмент Content-Type: text/richtext .... richtext version of same message goes here ... --boundary42 3 фрагмент Content-Type: text/x-whatever .... fanciest formatted version of same message goes here ... --boundary42-- В этом примере для работы с планарным текстом при использовании алфавитно-цифровых программ просмотра предназначен первый фрагмент текста. Для просмотра размеченного текста используется второй фрагмент, для специальной программы просмотра может быть подготовлен специальный вариант (фрагмент 3).
    Подтип "digest" предназначен для многоцелевого почтового сообщения, когда различным частям хотят приписать более детальную информацию, чем просто тип:
    From: Moderator-Address MIME-Version: 1.0 Subject: Internet Digest, volume 42 Content-Type: multipart/digest; boundary="---- next message ----" ------ next message ---- From: someone-else Subject: my opinion ...body goes here ... ------ next message ---- From: someone-else-again Subject: my different opinion ... another body goes here... ------ next message ------ Приведенный пример показывает как можно воспользоваться подтипом "digest" для рассылки почты разным пользователям и по-разному поводу, используя поля "From:" и "Subject" в качестве частных заголовков.
    Подтип "parallel" предназначен для составления такого почтового сообщения, части которого должны отображаться одновременно, что предполагает запуск сразу нескольких программ просмотра. Синтаксис такого сообщения аналогичен рассмотренным выше.
    Тип "message". Данный тип предназначен для работы с обычными почтовыми сообщениями, которые однако не могут быть переданы по почте по разного рода причинам. Эти причины объясняются подтипами данного типа.
    Подтип "partial" предназначен для передачи одного большого сообщения по частям для последующей автоматической сборки у получателя. Приведем пример передачи аудио сообщения разбитого на части:
    X-Weird-Header-1: Foo From: Bill@host.com To: joe@otherhost.com Subject: Audio mail Message-ID: id1@host.com MIME-Version: 1.0 Content-type: message/partial; id="ABC@host.com"; number=1; total=2 X-Weird-Header-1: Bar X-Weird-Header-2: Hello Message-ID: anotherid@foo.com Content-type: audio/basic Content-transfer-encoding: base64 ... first half of encoded audio data goes here... and the second half might look something like this: From: Bill@host.com To: joe@otherhost.com Subject: Audio mail MIME-Version: 1.0 Message-ID: id2@host.com Content-type: message/partial; id="ABC@host.com"; number=2; total=2 ... second half of encoded audio data goes here... Атрибуты подтипа определяют идентификатор сообщения (id), номер порции (number) и общее число порций (total). Следует обратить внимание на то, что каждая часть имеет свое поле "Content-Type". Это означает, что все сообщение может состоять из частей разных типов.
    Другим подтипом является "External-Body", который позволяет ссылаться на внешние, относительно сообщения, информационные источники. Этот подтип похож на гипертекстовую ссылку из типа "text". Приведем конкретный пример:
    From: Whomever Subject: whatever MIME-Version: 1.0 Message-ID: id1@host.com Content-Type: multipart/alternative; boundary=42 --42 Content-Type: message/external-body; name="BodyFormats.ps"; site="thumper.bellcore.com"; access-type=ANON-FTP; directory="pub"; mode="image"; expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)" Content-type: application/postscript --42 Content-Type: message/external-body; name="/u/nsb/writing/rfcs/RFC-XXXX.ps"; site="thumper.bellcore.com"; access-type=AFS expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)" Content-type: application/postscript --42 Content-Type: message/external-body; access-type=mail-server server="listserv@bogus.bitnet"; expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)" Content-type: application/postscript get rfc-xxxx doc --42-- В данном примере приведено использование "External-Body" и "multipart/alternative". Все сообщение разбито на несколько фрагментов. В каждом из фрагментов находится ссылка на внешний файл. Реально тела почтового сообщения нет (границы программами просмотра не отображаются). Однако если программа просмотра способна работать с внешними протоколами, то можно ссылки разрешить автоматически, запуская соответствующий сервис.
    Стандартным подтипом типа "message" является "rfc822". Данный подтип определяет сообщения стандарта RFC822.
    Типы описания нетекстовой информации. Таких типов имеется четыре:
  • "image" для описания графических образов. Наиболее часто используются файлы форматов GIF и JPEG.
  • "audio" для описания аудио информации. Для воспроизведения сообщения данного типа требуется специальное оборудование.
  • "video" для передачи фильмов. Наиболее популярным является формат MPEG.
  • "application" для передачи данных любого другого формата, обычно используется для передачи двоичных данных для последующего промежуточного преобразования. Так если на машине стоит видео-карта с 512Kb памяти, а графика подготовлена в 256 цветах, то сначала ее следует преобразовать и здесь может помочь тип "application". Основной подтип данного типа - "octet-stream", но существуют "ODA" и "Postscript".
  • Назначение данных типов ясно из названия - обозначение данных для последующей обработки как данных в форматах, определяемых подтипом.
    Поле типа кодирования почтового сообщения (Content-Transfer-Encoding). Многие данные передаются по почте в их исходном виде. Это могут быть 7bit символы, 8bit символы, 64base символы и т.п. Однако при работе в разнородных почтовых средах необходимо определить механизм их представления в стандартном виде - US-ASCII. Для этого существуют процедуры кодирования такого сорта данных. Наиболее широко применяемая - uuencode. Для того, чтобы при получении данные были бы правильно распакованы и введено в стандарт поле "Сontent-Transfer-Encoding". Синтаксис этого поля следующий:
    Content-Transfer-Encoding:= "BASE64" / "QUOTED-PRINTABLE" / "8BIT" / "7BIT" / "BINARY" / x-token Каждая из альтернатив применяется в своем подходящем случае. Альтернативы "8bit", "7bit", "BINARY" реально никакого преобразования не требуют, так как почта передается байтами и SMTP не делает различия между ними. Однако они введены для строгости описания типов. "BASE64" обычно используется в связке с типом "text/ISO-8859-1", "x-token" позволяет пользователю описать свою процедуру преобразования.
    Дополнительные необязательные поля. Как уже говорилось ранее, стандарт определяет еще два дополнительных поля: "Content-ID" и "Content-Description". Первое поле определяет уникальный идентификатор содержания, а второе служит для комментария содержания. Ни то, ни другое программами просмотра обычно не отображаются.
    В заключении обсуждения стандарта MIME комплексный пример без комментариев:
    MIME-Version: 1.0 From: Nathaniel Borenstein Subject: A multipart example Content-Type: multipart/mixed; boundary=unique-boundary-1 This is the preamble area of a multipart message. Mail readers that understand multipart format should ignore this preamble. If you are reading this text, you might want to consider changing to a mail reader that understands how to properly display multipart messages. --unique-boundary-1 ...Some text appears here... [Note that the preceding blank line means no header fields were given and this is text, with charset US ASCII. It could have been done with explicit typing as in the next part.] --unique-boundary-1 Content-type: text/plain; charset=US-ASCII This could have been part of the previous part, but illustrates explicit versus implicit typing of body parts. --unique-boundary-1 Content-Type: multipart/parallel; boundary=unique-boundary-2 --unique-boundary-2 Content-Type: audio/basic Content-Transfer-Encoding: base64 ... base64-encoded 8000 Hz single-channel u-law-format audio data goes here.... --unique-boundary-2 Content-Type: image/gif Content-Transfer-Encoding: Base64 ... base64-encoded image data goes here.... --unique-boundary-2-- --unique-boundary-1 Content-type: text/richtext This is richtext. Isn't it cool? --unique-boundary-1 Content-Type: message/rfc822 From: (name in US-ASCII) Subject: (subject in US-ASCII) Content-Type: Text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: Quoted-printable ... Additional text in ISO-8859-1 goes here ... --unique-boundary-1-- Подводя итоги обсуждения, еще раз следует отметить, что стандарт MIME позволяет расширить область применения электронной почты, обеспечить доступ к другим информационным ресурсам сети в стандартных форматах.

    Команды протокола SMTP

    Приложение 1. Команды протокола SMTP

    HELO Открыть сессию взаимодействия по протоколу SMTP. - доменное имя машины
    MAIL FROM: Сообщить адрес отправителя (). Обязательная команда, которую надо выдать перед отправкой сообщения
    RCPT TO: Сообщить адрес получателя (forward-path). Обязательная команда, которую выдают после MAIL FROM, но перед DATA
    DATA Начать передачу тела почтового сообщения. Тело сообщения должно кончаться точкою(".") в первой позиции строки
    RSET
    SEND FROM: Послать сообщение на терминал пользователя, который определяется командой RCPT
    SOML FROM: SEND OR MAIL. Послать в почтовый ящик или на терминал пользователя
    SAML FROM: SEND AND MAIL. Послать в почтовый ящик и на терминал пользователя
    VRFY Получить информацию о пользователе, имя которого указывается в качестве аргумента команды ()
    EXPN Получить информацию о пользователях зарегистрированных в качестве получателей корреспонденции
    HELP [ ] Краткая справка по командам протокола
    NOOP Нет операции
    QUIT Завершить сессию
    TURN Поменяться местами серверу и клиенту


    Коды возврата SMTP

    Приложение 2. Коды возврата SMTP

    211 System status, or system help reply Статус системы или Help
    214 Help message. [Information on how to use the receiver or the meaning of a particular non-standard command; this reply is useful only to the human user] Краткая справка
    220 Service ready SMTP-сервис готов к работе
    221 Service closing transmission channel Сервис закрыл канал передачи данных
    250 Requested mail action okay, completed Соединение установлено
    251 User not local; will forward to Пользователь не местный. Выполнить перенаправление запроса
    354 Start mail input; end with . Начать ввод почтового сообщения
    421 Service not available, closing transmission channel [This may be a reply to any command if the service knows it must shut down] Сервис отсутствует. Канал передачи данных закрыт
    450 Requested mail action not taken: mailbox unavailable [E.g., mailbox busy] Нет возможности записать данные в почтовый ящик
    451 Requested action aborted: local error in processing Ошибка при обработке запроса
    452 Requested action not taken: insufficient system storage Запрос не выполнен недостаточно памяти на вычислительной установке
    500 Syntax error, command unrecognized [This may include errors such as command line too long] Синтаксическая ошибка - нет такой команды
    501 Syntax error in parameters or arguments Синтаксическая ошибка в аргументах команды
    502 Command not implemented Данная команда не может быть выполнена
    503 Bad sequence of commands Неправильная последовательность команд
    504 Command parameter not implemented Параметр команды не может быть использован в данном контексте
    550 Requested action not taken: mailbox unavailable [E.g., mailbox not found, no access] Не найден соответствующий почтовый ящик
    551 User not local; please try Пользователь не найден можно попробовать отправить почту по другому адресу
    552 Requested mail action aborted: exceeded storage allocation Превышены квоты на использование ресурсов памяти
    553 Requested action not taken: mailbox name not allowed [E.g., mailbox syntax incorrect] Имя почтового ящика неправильное
    554 Transaction failed Обмен завершился аварийно


    Приложения

    Приложения


    Принципы организации

    2.1. Принципы организации

    Электронная почта во многом похожа на обычную почтовую службу. Корреспонденция подготавливается пользователем на своем рабочем месте либо программой подготовки почты, либо просто обычным текстовым редактором. Обычно программа подготовки почты вызывает текстовый редактор, который пользователь предпочитает всем остальным программам этого типа. Затем пользователь должен вызвать программу отправки почты (программа подготовки почты вызывает программу отправки автоматически). Стандартной программой отправки является программа sendmail. Sendmail работает как почтовый курьер, который доставляет обычную почту в отделение связи для дальнейшей рассылки. В Unix-системах программа sendmail сама является отделением связи. Она сортирует почту и рассылает ее адресатам. Для пользователей персональных компьютеров, имеющих почтовые ящики на своих машинах и работающих с почтовыми серверами через коммутируемые телефонные линии, могут потребоваться дополнительные действия. Так, например, пользователи почтовой службы Relcom должны запускать программу UUPC, которая осуществляет доставку почты на почтовый сервер.
    Для работы электронной почты в Internet разработан специальный протокол Simple Mail Transfer Protocol (SMTP), который является протоколом прикладного уровня и использует транспортный протокол TCP. Однако, совместно с этим протоколом используется и Unix-Unix-CoPy (UUCP) протокол. UUCP хорошо подходит для использования телефонных линий связи. Большинство пользователей электронной почты Relcom реально пользуются для доставки почты на узел именно этим протоколом. Разница между SMTP и UUCP заключается в том, что при использовании первого протокола sendmail пытается найти машину-получателя почты и установить с ней взаимодействие в режиме on-line для того, чтобы передать почту в ее почтовый ящик. В случае использования SMTP почта достигает почтового ящика получателя за считанные минуты и время получения сообщения зависит только от того, как часто получатель просматривает свой почтовый ящик. При использовании UUCP почта передается по принципу "stop-go", т.е. почтовое сообщение передается по цепочке почтовых серверов от одной машины к другой пока не достигнет машины-получателя или не будет отвергнуто по причине отсутствия абонента-получателя. С одной стороны, UUCP позволяет доставлять почту по плохим телефонным каналам, т.к. не требуется поддерживать линию все время доставки от отправителя к получателю, а с другой стороны, бывает обидно получить возврат сообщения через сутки после его отправки из-за того, что допущена ошибка в имени пользователя. В целом же общие рекомендации таковы: если имеется возможность надежно работать в режиме on-line и это является нормой, то следует настраивать почту для работы по протоколу SMTP, если линии связи плохие или on-line используется чрезвычайно редко, то лучше использовать UUCP.



    Программа Sendmail

    3.1. Программа Sendmail

    Основным средством рассылки почты в Internet является программа sendmail. Она обеспечивает работу модульной системы рассылки, которая предназначена для получения и отправки корреспонденции, а также управления программами подготовки и просмотра почтовых сообщений. Sendmail позволяет организовать почтовую службу локальной сети и обмениваться почтой с другими серверами почтовых служб через специальные шлюзы. Sendmail может быть сконфигурирована для работы с различными почтовыми протоколами. Обычно это протоколы UUCP (Unix-Unix-CoPy) и SMTP (Simple Mail Transfer Protocol).
    Sendmail работает как "отделение связи" обычной почтовой службы, которое принимает и пересылает почтовые сообщения. Sendmail может интерпретировать два типа почтовых адресов:
  • почтовые адреса SMTP;
  • почтовые адреса UUCP.
  • Первые являются стандартными адресами Internet и, фактически, являются стандартом де-факто. Именно этот адрес обычно указан на визитных карточках.
    Sendmail можно настроить для поддержки:
  • списка адресов-синонимов;
  • списка адресов рассылки пользователя;
  • автоматической рассылки почты через шлюзы;
  • очередей сообщений для повторной рассылки почты в случае отказов при рассылке;
  • работы в качестве SMTP-сервера;
  • доступа к адресам машин через сервер доменных имен BIND;
  • доступа к внешним серверам имен.
  • Принцип работы программы sendmail
    Sendmail отправляет почту в два приема: сначала почтовые сообщения собираются в очереди, а затем отсылаются.
    Каждое сообщение состоит из трех частей: конверта, заголовка и тела сообщения.
    Конверт. Конверт состоит из адреса отправителя, адреса получателя и информации рассылки, которая используется программами подготовки, рассылки и получения почты. Конверт остается невидимым для отправителя и получателя почтового сообщения.
    Заголовок. Заголовок состоит из стандартных текстовых строк, которые содержат адреса, информацию о рассылке и данные. Заголовок может быть частью подготовленного пользователем текстового файла, а может быть подготовлен и добавлен к телу сообщения программой подготовки почты. Данные из заголовка могут быть использованы для оформления конверта сообщения.
    Тело сообщения. Первая пустая строка в файле почтового сообщения отделяет заголовок от тела сообщения. Все, что следует после этой строки, называется телом сообщения и передается по почте без изменений.
    Sendmail может быть вызвана:
  • программой подготовки сообщений для отправки уже подготовленных сообщений;
  • программой получения почты для пересылки полученной из сети почты;
  • непосредственно пользователем для отправки по почте файла или короткого сообщения;
  • почтовым демоном, которым обычно является сама sendmail.
  • После того, как почта собрана, начинается ее рассылка. При этом выполняются следующие действия:
  • адреса отправителя и получателя преобразуются в формат сети-получателя почты;
  • если необходимо, то в заголовок сообщения добавляются строки, позволяющие получателю отвечать на принятое сообщение (например: FROM: <адрес>);
  • почта передается одной из программ рассылки почты.
  • На рисунке 3.1 представлена схема функционирования почтового сервера на базе программы sendmail.
    Когда программа приема почты получает сообщение, она передает его программе sendmail для последующей рассылки. Если сообщение достигло машины адресата, то оно отправляется программой местной рассылки в почтовый ящик пользователя.
    Первый этап рассылки - сбор сообщений. Sendmail получает почтовые сообщения из трех источников:
  • командной строки или стандартного ввода;
  • через SMTP-протокол (из сети);
  • из очереди сообщений.
  • При получении сообщений из командной строки или стандартного ввода, sendmail вызывается пользователем с указанием адреса доставки сообщения. При этом выполняются следующие действия: определяется адрес отправителя, выбирается из командной строки адрес получателя и оба адреса преобразуются в соответствии с описанием файла конфигурации, определяется способ доставки сообщения, размещается заголовок в оперативной памяти для последующих преобразований, а тело сообщения размещается во временном файле для отправки без изменений.
    При получении сообщений по протоколу SMTP, sendmail используется как программа клиента и сервера протокола. Протокол определен в RFC-821 и является основным для рассылки почты в Internet. В этом случае sendmail запускается как демон, который "слушает" порт TCP и в случае получения сообщения устанавливает соединение с удаленным клиентом SMTP. Как правило, таким клиентом является другая программа sendmail.
    Программа подготовки почты на локальной машине также может использовать SMTP. Для этого sendmail открывает канал (pipe) межпроцессного обмена.
    При получении сообщений из очереди используются временные файлы очередей. Эти очереди используются для хранения неразосланных сообщений. Сообщение хранится в двух файлах. В одном файле хранится тело сообщения, а в другом конверт и заголовок сообщения. Обычно sendmail опрашивает очереди через определенные администратором почтового сервера промежутки времени, на предмет наличия в них неразосланных сообщений.



    Программное обеспечение доступа к FTP-архивам

    4.3. Программное обеспечение доступа к FTP-архивам

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

    Протокол FTP (File Transfer Protocol)

    4.1. Протокол FTP (File Transfer Protocol)

    FTP (File Transfer Protocol или "Протокол Передачи Файлов") - один из старейших протоколов в Internet и входит в его стандарты. Обмен данными в FTP проходит по TCP-каналу. Построен обмен по технологии "клиент-сервер". На рисунке 4.2 изображена модель протокола.



    Протокол POP3 (Post Office Protocol)

    2.3. Протокол POP3 (Post Office Protocol)

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

    Протокол SMTP

    2.2. Протокол SMTP

    Simple Mail Transfer Protocol был разработан для обмена почтовыми сообщениями в сети Internet. SMTP не зависит от транспортной среды и может использоваться для доставки почты в сетях с протоколами, отличными от TCP/IP и Х.25. Достигается это за счет концепции IPCE (InterProcess Communication Environment). IPCE позволяет взаимодействовать процессам, поддерживающим SMTP в интерактивном режиме, а не в режиме "STOP-GO".
    Модель протокола. Взаимодействие в рамках SMTP строится по принципу двусторонней связи, которая устанавливается между отправителем и получателем почтового сообщения. При этом отправитель инициирует соединение и посылает запросы на обслуживание, а получатель на эти запросы отвечает. Фактически, отправитель выступает в роли клиента, а получатель - сервера.



    Режимы обмена данными

    4.2. Режимы обмена данными

    В протоколе большое внимание уделяется различным способам обмена данными между машинами различных архитектур. Действительно, чего только нет в Internet, от персоналок и Mac'ов до суперкомпьютеров. Все они имеют различную длину слова и многие различный порядок битов в слове. Кроме этого, различные файловые системы работают с разной организацией данных, которая выражается в понятии метода доступа.
    В общем случае, с точки зрения FTP, обмен может быть поточный или блоковый, с кодировкой в промежуточные форматы или без нее, текстовый или двоичный. При текстовом обмене все данные преобразуются в ASCII и в этом виде передаются по сети. Исключение составляют только данные IBM mainframe, которые по умолчанию передаются в EBCDIC, если обе взаимодействующие машины IBM. Двоичные данные передаются последовательностью битов или подвергаются определенным преобразованиям в процессе сеанса управления. Обычно, при поточной передаче данных за одну сессию передается один файл данных, а при блоковом способе за одну сессию можно передать несколько файлов.
    Описав в общих чертах протокол обмена, можно перейти к описанию средств обмена по протоколу FTP. Практически для любой платформы и операционной среды существуют как серверы, так и клиенты. Ниже описываются стандартные сервер и клиент Unix-подобных систем.

    Схема 1.2. Пакеты и байты

    Схема 1.2. Пакеты и байты

    Схема 1.2. Пакеты и байты
    Если не вдаваться в детали и не придерживаться терминологии сетей TCP/IP, то при обмене информацией по сети TCP/IP при транспорте TCP, перед тем как начать отправку сообщения, устанавливается виртуальный TCP-канал. Это означает, что сначала выполняется процедура организации этого канала или, как ее еще называют, трехфазный "хэндшейк" (handshake). При этой процедуре стороной, которая устанавливает соединение отправляется запрос на организацию канала, затем получается подтверждение на получение этого запроса, после этого отправляется подтверждение на получение подтверждения и первый пакет данных (рисунок 1.3).



    Схема 1.3. Процедура инициирования TCP-соединения

    Схема 1.3. Процедура инициирования TCP-соединения

    Схема 1.3. Процедура инициирования TCP-соединения
    Аналогично началу TCP-обмена устроена и процедура разрыва виртуального TCP-канала. Также посылается уведомление об окончании соединения, получается подтверждение и только после этого канал разрывается.
    Очевидно, что чем больше данных за один TCP-сеанс будет передано, тем более эффективней (с точки зрения соотношения переданной полезной и служебной информации) будет обмен. В этом смысле FTP работает эффективно. В начале сессии организуется канал, который потом будет использоваться для всего обмена. Если сравнить теперь FTP и HTTP (основной протокол World Wide Web), то станет ясно, что ориентированный на разрыв соединения после передачи порции данных HTTP гораздо менее эффективен, чем FTP.
    Это небольшое отступление в область основ технологии межсетевого обмена должно было продемонстрировать, что при использовании той или иной технологии всегда следует помнить о том, как эта технология в конечном счете реализуется. Это важно, например, для выбора времени создания "зеркала" чужого FTP-архива. Если такое "зеркало" создавать в рабочее время в организации, где большое количество пользователей работает с информационными ресурсами Internet, то можно довольно сильно затормозить их работу. Особенно это актуально для организаций, которые работают по выделенным каналам связи с пропускной способностью 64Кб/с-128Кб/с и имеют в штате порядка сотни сотрудников, которые одновременно используют этот канал. Сервис FTP будет стремиться захватить канал целиком и это ему удастся сделать, т.к. HTTP будет использовать канал только в короткие промежутки времени.
    При рассмотрении информационных технологий Internet следует также принимать во внимание тот факт, что они все взаимосвязаны и почти всегда можно получить доступ к одной из них через другую.
    Так, например, к FTP-архиву можно обратиться через электронную почту или использовать Web-броузер для доступа к FTP-архиву. Все эти возможности предполагают использование программ-шлюзов. Если представить такое взаимодействие в виде схемы, то выглядеть это будет так, как представлено на рисунке 1.4.



    Схема 1.4 Организация доступа к ресурсу через программы-посредники

    Схема 1.4 Организация доступа к ресурсу через программы-посредники

    Схема 1.4 Организация доступа к ресурсу через программы-посредники
    На принципе использования посредников в настоящее время строится универсальная система доступа к ресурсам Internet из World Wide Web. Чем более широко внедряется Web на рабочие столы пользователей, тем меньше вероятность того, что им придется изучать технологии типа Telnet или FTP. Но это не означает, что эти технологии исчезли из сети. Администраторы узлов Web все равно обязаны знать, как все это спрятанное от пользователей "хозяйство" функционирует.



    Схема 2.1. Структура взаимодействия участников почтового обмена

    Схема 2.1. Структура взаимодействия участников почтового обмена

    Схема 2.1. Структура взаимодействия участников почтового обмена
    Основой любой почтовой службы является система адресов. Без точного адреса невозможно доставить почту адресату. В Internet принята система адресов, которая базируется на доменном адресе машины, подключенной к сети. Например, для пользователя paul машины с адресом polyn.net.kiae.su почтовый адрес будет выглядеть как:
    paul@polyn.net.kiae.su. Таким образом, адрес состоит из двух частей: идентификатора пользователя, который записывается перед знаком "коммерческого эй" - "@", и доменного адреса машины, который записывается после знака "@". Адрес UUCP был бы записан как строка вида:
    net.kiae.su!polyn!paul Программа рассылки почты Sendmail сама преобразует адреса формата Internet в адреса формата UUCP, если доставка сообщения осуществляется по этому протоколу.

    Схема 2.2. Схема взаимодействия по протоколу SMTP

    Схема 2.2. Схема взаимодействия по протоколу SMTP

    Схема 2.2. Схема взаимодействия по протоколу SMTP
    Канал связи устанавливается непосредственно между отправителем и получателем сообщения. При таком взаимодействии почта достигает абонента в течение нескольких секунд после отправки.
    Дисциплины работы и команды протокола. Обмен сообщениями и инструкциями в SMTP ведется в ASCII-кодах. В протоколе определено несколько видов взаимодействия между отправителем почтового сообщения и его получателем, которые здесь называются дисциплинами.
    Наиболее распространенной дисциплиной является отправка почтового сообщения, которая начинается по команде MAIL, идентифицирующей отправителя:
    MAIL FROM: paul@quest.polyn.kiae.su Следующей командой определяется адрес получателя:
    RCPT TO: paul@apollo.polyn.kiae.su После того, как определен отправитель и получатель почтового сообщения, можно отправлять последнее:
    DATA Команда DATA вводится без параметров и идентифицирует начало ввода почтового сообщения. Сообщение вводится до тех пор, пока не будет введена строка с точкой в первой позиции. Согласно стандарту почтового сообщения RFC822 отправитель передает заголовок и тело сообщения, которые разделены пустой строкой. Сам протокол SMTP не накладывает каких-либо ограничений на информацию, которая заключена между командой DATA и "." в первой позиции последней строки. Приведем пример обмена сообщениями при дисциплине отправки почты:
    S: MAIL FROM: R: 250 Ok S: RCPT TO: R: 250 Ok S: DATA R: 354 Start mail input; end with . S: Это текст почтового сообщения S: . R: 250 Другой дисциплиной, определенной в протоколе SMTP является перенаправление почтового сообщения (forwarding). Если получатель не найден, но известно его местоположение, то сервер может выдать сообщение:
    R: 251 User not local; will forward to Если сервер может сделать только предположение о дальнейшей рассылке, то ответ будет несколько иным:
    R: 551 User not local; please try Верификация и расширение адресов составляют дисциплину верификации. В ней используются команды VRFY и EXPN. По команде VRFY сервер подтверждает наличие или отсутствие указанного пользователя:
    S: VRFY paul R: 250-Paul Khramtsov Используя команду EXPN можно получить список местных пользователей:
    S: EXPN Example-People R: 250-Paul Khramtsov R: 250-Vladimir Drach-Gorkunov В список дисциплин, разрешенных протоколом SMTP входит кроме отправки почты еще и прямая рассылка сообщений. В этом случае сообщение будет отправляться не в почтовый ящик, а непосредственно на терминал пользователя, если пользователь в данный момент находится за своим терминалом. Прямая рассылка осуществляется по команде SEND, которая имеет такой же синтаксис, как и команда MAIL. Кроме SEND прямую рассылку осуществляют SOML (Send or Mail) и SAML (Send and Mail). Назначение этих команд легко понять из их названия.
    Для инициализации канала обмена почтой и его закрытия используются команды HELO и QUIT соответственно. Первой командой сеанса должна быть команда HELO.
    Протокол допускает рассылку почтовых сообщений в режиме оповещения. Для этой цели отправитель в адресе получателя может указать несколько пользователей или групповой адрес. Обычно, программное обеспечение SMTP выбирает эту информацию из заголовка почтового сообщения и на ее основе формирует параметры команд протокола.
    Если сообщение по какой-либо причине не может быть разослано, то получатель формирует сообщение о неразосланном сообщении:
    S: MAIL FROM:<> R: 250 Ok S: RCPT TO: <@host.domain:JOE@host.domain> R: 250 Ok S: DATA R: 354 send the mail data, end with . S: Date 23 Oct 95 11:23:30 S: From: SMTP@remote.domain S: To: S: S: Undelivered message. Your message lost. 550 No such user. S: . При использовании доменных имен следует использовать канонические имена, т.к. некоторые системы не могут определить синоним по базе данных named.
    Кроме выше перечисленных дисциплин протокол позволяет отправителю и получателю меняться ролями друг с другом. Происходит это по команде TURN.
    Для отладки или проверки соединения по SMTP можно использовать telnet. Для этого вслед за адресом машины следует ввести номер порта:
    /users/local>telnet apollo.polyn.kiae.su 25 25 порт используется в Internet для обмена сообщениями по протоколу SMTP. В интерактивном режиме пользователь сам изображает клиента SMTP и может посмотреть реакцию удаленной машины на его действия.

    Схема 3.1. Схема почтового взаимодействия на базе программы Sendmail

    Схема 3.1. Схема почтового взаимодействия на базе программы Sendmail

    Схема 3.1. Схема почтового взаимодействия на базе программы Sendmail
    Вторая стадия рассылки почты - рассылка сообщений.
    Как только одним из описанных выше способов sendmail получила сообщение, делается попытка его отправить по адресу. Для этого sendmail определяет три параметра: программу рассылки, узел сети и получателя. Эта процедура производится по правилам, которые содержатся в файле конфигурации. Sendmail сохраняет одну копию тела сообщения во временном файле, а заголовок загружает в оперативную память. Для каждого сообщения программа доставки (рассылки) сообщений вызывается отдельно. Если сообщение должно быть доставлено на разные машины, то для каждой из машин также вызывается своя программа доставки. Некоторые программы могут обслуживать сразу несколько абонентов одной машины, если это невозможно, то для каждого абонента вызывается также своя программа доставки. Рассматривают два типа рассылки: на удаленную машину и местную рассылку.
    Рассылка на удаленную машину. Для вызова программы рассылки sendmail открывает pipe и запускает программу рассылки, командная строка которой находится в файле конфигурации. Sendmail записывает заголовок и тело сообщения в pipe. Если программа рассылки не использует протокол SMTP, то адрес получателя передается через pipe. Если используется SMTP, то открывается двунаправленный канал для интерактивного взаимодействия с удаленным сервером SMTP. Если в качестве транспортного протокола используется TCP, то sendmail не запускает внешнюю программу рассылки, а сама инициирует TCP-соединение с удаленным сервером SMTP.
    Доставка местной почты. Если sendmail определяет, что адреса доставки местные, то происходит обращение к файлу адресных синонимов и производится преобразование адресов (расширение). Файл адресных синонимов можно использовать для перенаправления почты в файлы или для обработки местными программами. Пользователь может иметь и свой собственный файл адресных синонимов для управления рассылкой персональной почты. После преобразования адресов почта отправляется программе местной рассылки (например rmail).
    Важным моментом при работе sendmail является алгоритм определения типа адресов. При использовании стандартного файла конфигурации применяются следующие правила: почта рассылается в соответствии с форматом адреса получателя, адреса при этом бывают местные, UUCP и SMTP.
    Местные адреса имеют вид:
    user user@localhost user@localhost.localdomain user@alias user@alias.localdomain user@[local.host.internet.address] localhost!user localhost!localhost!user user@localhost.uucp Местный адрес - это адрес, который распознается как адрес машины, с которой осуществляется отправка почты.
    Адреса UUCP имеют вид:
    host!user host!host!user user@host.uucp Если машина, с которой отправляется почта, имеет прямую линию связи по протоколу UUCP со следующей машиной (в адресе), то почта передается на эту машину, если такого соединения нет, то почта не рассылается и выдается сообщение об ошибке. Файл конфигурации должен содержать детальное описание маршрутов для пересылки сообщений на машины по протоколу UUCP.
    Адреса SMTP - это адреса, описанные в стандарте RFC-822 или стандартные адреса Internet. Эти адреса имеют вид:
    usr@host usr@host.domain <@host1,@host2,@host3:user@host4> user@[remote.host`s.internet.address] Почта с адресами SMTP рассылается по протоколу SMTP.
    Если в системе для адресации используется Berkeley Internet Name Domain (BIND) сервер, то sendmail может определять адреса получателей, используя сервис BIND. Если BIND не используется, то sendmail сама определяет адреса.
    При рассылке почты можно использовать и смешанную адресацию:
    user%hostA@hostB - почта отправляется с машины hostB на машину hostA user!hostA@hostB - почта отправляется с машины hostB на машину hostA hostA!user%hostB - почта отправляется с hostA на hostB Подводя итог обсуждению принципов работы sendmail, следует специально подчеркнуть тот факт, что почта реально рассылается двумя принципиально разными способами. При использовании протокола UUCP почта рассылается по принципу "stop-go", т.е. сообщения передаются от машины к машине по указанному в адресе пути. Следует ясно представлять, если почта ушла с машины отправителя, то это не означает, что она поступит получателю. Промежуточная машина может вернуть почту назад, если не сможет разослать. Электронная почта действительно работает как система обычной почты, физически перемещая и храня сообщения на промежуточных почтовых станциях. При работе по протоколу SMTP почта реально отправляется только тогда, когда установлено интерактивное соединение с программой-сервером на машине-получателе почты. При этом происходит обмен командами между клиентом и сервером протокола SMTP в режиме on-line. При смешанной адресации доставка почты происходит по смешанному сценарию. Как шла доставка и как маршрутизировалось сообщение можно определить из заголовка сообщения, которое вы получили.
    Анализ типа адресов в программе sendmail - это самый главный процесс, т.к. по типу адреса получателя sendmail определяет каким способом сообщение будет разослано. Вызов программы доставки вмонтирован в правила преобразования адресов отправителя и получателя. При этом как только система решит, что дальнейшее преобразование адреса нецелесообразно, так сразу вызывается программа доставки. Наибольшее число сообщений об ошибках при рассылке сообщений связано как раз с определением адреса получателя. В этом процессе принимают участие, по крайней мере, два сервиса Internet: система рассылки почтовых сообщений и служба доменных имен. Sendmail постоянно обращается к службе доменных имен на предмет канонизации имен электронной почты сверяет эти имена с теми, которые закреплены за компьютером, на котором данная система установлена. Если имена совпадают, то осуществляется местная рассылка по адресам местной почты.

    Схема 3.10. Интерфейс Eudora для MS-Windows

    Схема 3.10. Интерфейс Eudora для MS-Windows

    Схема 3.10. Интерфейс Eudora для MS-Windows
    Для установки этого интерфейса требуются определенные знания и доступ к информации, которой располагает только системный администратор, поэтому предпочтительней обратиться именно к нему с просьбой об установке программы или за необходимой информацией (адреса машин серверов). Работа с Eudora чрезвычайно проста: надо выбирать при помощи мыши или клавиатуры интересующие вас сообщения и отправлять в "корзину" то, что бесполезно.
    И последнее замечание относительно работы из под MS-Windows с почтой в Internet. Если пользователь пишет только по-английски, то у него нет проблем с кодировкой и набором текста, но если он пишет по-русски и получает такие же сообщения, то сразу же возникают проблемы. Дело в том, что большинство почтовых сетей для обмена данными между серверами используют кодировку KOI8. Эта кодировка отличается как от кодировки для MS-DOS, так и от кодировки MS-Windows. Поэтому, возвращаясь к иллюстрации с настройками интерфейса Eudora, хочется обратить внимание читателя на поля "Send Font" и "Printer Font". В этих полях указан шрифт "Arial-Relcom", который разложен по кодировке KOI8, и используется для отображения и печати почтовых сообщений. Для того, чтобы правильно набирать сообщения, следует к стандартным раскладкам клавиатуры в драйвере клавиатуры (cyrwin, например) добавить раскладку для KOI8.
    При этом драйвер должен уметь менять раскладку по мере необходимости. В противном случае у пользователя будет возможность читать сообщения, но не набирать их.

    Схема 3.2. Структура команды файла настроек sendmail

    Схема 3.2. Структура команды файла настроек sendmail

    Схема 3.2. Структура команды файла настроек sendmail
    Теперь разберем более подробно некоторые команды и секции файла настроек sendmail. Лучше всего это сделать на основе реального файла. Начнем с секции описания локальных параметров:
    ################## # local info # ################## Cwlocalhost CP. # UUCP relay host DYucbvax.Berkeley.EDU CPUUCP # BITNET relay host #DBmailhost.Berkeley.EDU DBrelay.kiae.su CPBITNET # "Smart" relay host (may be null) DSrelay.kiae.su # who I send unqualified names to (null means deliver locally) DR # who gets all local email traffic ($R has precedence for unqualified names) DH # who I masquerade as (null for no masquerading) DM # class L: names that should be delivered locally, even if we have a relay # class E: names that should be exposed as from this host, even if we masquerade #CLroot CEroot # operators that cannot be in local usernames (i.e., network indicators) CO @ % ! # a class with just dot (for identifying canonical names) C.. # dequoting map Kdequote dequote Как видно из этого листинга, в данной секции описаны имя данной машины (Cwlocalhost), а также класс машин-шлюзов в другие почтовые системы (CP....). При этом наращивание класса происходит по мере описания шлюза для каждого из видов почтовых служб. В конце секции описаны символы, которые не могут использоваться в качестве имен пользователей или доменов.
    Следующая секция - определение макросов sendmail:
    ###################### # Special macros # ###################### # SMTP initial login message De$j Sendmail $v/$Z ready at $b # UNIX initial From header format DlFrom $g $d # my name for error messages DnMAILER-DAEMON # delimiter (operator) characters Do.:%@!^/[] # format of a total name Dq$?x$x <$g>$|$g$. # Configuration version number DZ8.6.6 В данной секции описаны сообщения, которые выдает sendmail при взаимодействии с другими транспортными агентами. Как видно из этого описания, определение макроса это не только присваивание значения, но и выполнение определенных действий. Наиболее интересное предложение из всех - предложение, определяющее значение макроса q:
    Dq$?x$x <$g>$|$g$. Здесь описана условная подстановка значения. Все предложение можно описать следующей фразой:

    Схема 3.3. Правила

    Схема 3.3. Правила

    Схема 3.3. Правила
    При получении почтового сообщения адреса, указанные в полях To, From, Cc, преобразуются в соответствии с правилами преобразования.
    ###################################################################### ###################################################################### ##### ##### REWRITING RULES ##### ###################################################################### ###################################################################### ########################################### ### Rulset 3 - Name Canonicalization ### ########################################### S3 # handle null input (translate to <@> special case) R$@ $@ <@> # basic textual canonicalization -- note RFC733 heuristic here R$*<$*>$*<$*>$* $2$3<$4>$5 strip multiple <> <> R$*<$*<$+>$*>$* <$3>$5 2-level <> nesting R$*<>$* $@ <@> MAIL FROM:<> case R$*<$+>$* $2 basic RFC821/822 parsing # handle list:; syntax as special case R$*:;$* $@ $1 :; <@> # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later R@ $+ , $+ @ $1 : $2 change all "," to ":" # localize and dispose of route-based addresses R@ $+ : $+ $@ $>96 < @$1 > : $2 handle # find focus for list syntax R $+ : $* ; @ $+ $@ $>96 $1 : $2 ; < @ $3 > list syntax R $+ : $* ; $@ $1 : $2; list syntax # find focus for @ syntax addresses R$+ @ $+ $: $1 < @ $2 > focus on domain R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right R$+ < @ $+ > $@ $>96 $1 < @ $2 > already canonical # do some sanity checking R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs # convert old-style addresses to a domain-based address R$- ! $+ $@ $>96 $2 < @ $1 .UUCP > resolve uucp names R$+ . $- ! $+ $@ $>96 $3 < @ $1 . $2 > domain uucps R$+ ! $+ $@ $>96 $2 < @ $1 .UUCP > uucp subdomains # if we have % signs, take the rightmost one R$* % $* $1 @ $2 First make them all @s. R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>96 $1 < @ $2 > Insert < > and finish # else we must be a local name ################################################ ### Ruleset 96 - bottom half of ruleset 3 ### ################################################ # At this point, everything should be in a "local_part<@domain>extra" format. S96 # handle special cases for local names R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d] R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr # pass UUCP addresses straight through R$* < @ $+ . UUCP > $* $@ $1 < @ $2 . UUCP . > $3 # pass to name server to make hostname canonical R$* < @ $* $~P > $* $: $1 < @ $[ $2 $3 $] > $4 # local host aliases and pseudo-domains are always canonical R$* < @ $=w > $* $: $1 < @ $2 . > $3 R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4 R$* < @ $* . . > $* $1 < @ $2 . > $3 # if this is the local hostname, make sure we treat is as canonical R$* < @ $j > $* $: $1 < @ $j . > $2 ################################################## ### Ruleset 4 - Final Output Post-rewriting ### ################################################## S4 R$*<@> $@ $1 handle <> and list:; # strip trailing dot off possibly canonical name R$* < @ $+ . > $* $1 < @ $2 > $3 # externalize local domain info R$* < $+ > $* $1 $2 $3 defocus R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 canonical R@ $* $@ @ $1 ...and exit # UUCP must always be presented in old form R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u # delete duplicate local names R$+ % $=w @ $=w $1 @ $j u%host@host => u@host ############################################################## ### Ruleset 97 - recanonicalize and call ruleset zero ### ### (used for recursive calls) ### ############################################################## S97 R$* $: $>3 $1 R$* $@ $>0 $1 ###################################### ### Ruleset 0 - Parse Address ### ###################################### S0 R<@> $#local $: <> special case error msgs R$* : $* ; $#error $@ USAGE $: "list:; syntax illegal for recipient addresses" R<@ $+> $#error $@ USAGE $: "user address required" R<$* : $* > $#error $@ USAGE $: "colon illegal in host name part" # handle numeric address spec R$* < @ [ $+ ] > $* $: $>98 $1 < @ [ $2 ] > $3 numeric internet spec R$* < @ [ $+ ] > $* $#smtp $@ [$2] $: $1 < @ [$2] > $3 still numeric: send # now delete the local info -- note $=O to find characters that cause forwarding R$* < @ > $* $@ $>97 $1 user@ => user R< @ $=w . > : $* $@ $>97 $2 @here:... -> ... R$* $=O $* < @ $=w . > $@ $>97 $1 $2 $3 ...@here -> ... # handle local hacks R$* $: $>98 $1 # short circuit local delivery so forwarded email works R$+ < @ $=w . > $: $1 < @ $2 . @ $H > first try hub R$+ < $+ @ $+ > $#local $: $1 yep .... R$+ < $+ @ > $#local $: @ $1 nope, local address # resolve remotely connected UUCP links (if any) # resolve fake top level domains by forwarding to other hosts R$*<@$+.BITNET.>$* $: $>95 < $B > $1 <@$2.BITNET.> $3 user@host.BITNET # forward non-local UUCP traffic to our UUCP relay R$*<@$*.UUCP.>$* $: $>95 < $Y > $1 <@$2.UUCP.> $3 uucp mail # pass names that still have a host to a smarthost (if defined) R$* < @ $* > $* $: $>95 < $S > $1 < @ $2 > $3 glue on smarthost name # deal with other remote names R$* < @$* > $* $#smtp $@ $2 $: $1 < @ $2 > $3 user@host.domain # if this is quoted, strip the quotes and try again R$+ $: $(dequote $1 $) strip quotes R$+ $=O $+ $@ $>97 $1 $2 $3 try again # handle locally delivered names R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names ########################################################################### ### Ruleset 5 - special rewriting after aliases have been expanded ### ### (new sendmail only) ### ########################################################################### S5 # see if we have a relay or a hub R$+ $: < $R > $1 try relay R< > $+ $: < $H > $1 try hub R< > $+ $@ $1 nope, give up R< $- : $+ > $+ $: $>95 < $1 : $2 > $3 < @ $2 > R< $+ > $+ $@ $>95 < $1 > $2 < @ $1 > ################################################################### ### Ruleset 95 - canonify mailer:host syntax to triple ### ################################################################### S95 R< > $* $@ $1 strip off null relay R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer R< $=w > $* $@ $2 delete local host R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer ################################################################### ### Ruleset 98 - local part of ruleset zero (can be null) ### ################################################################### S98 За секцией преобразования адресов следует секция определения программ рассылки почты. В ней определяется локальная программа рассылки (mail), программа рассылки для выполнения (sh) и программа рассылки по SMTP.
    ################################################## ### Local and Program Mailer specification ### ################################################## Mlocal, P=/usr/libexec/mail.local, F=lsDFMrmn, S=10, R=20/40, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMeu, S=10, R=20/40, D=$z:/, A=sh -c $u S10 R<@> $n errors to mailer-daemon R$+ $: $>40 $1 S20 R$+ < @ $* > $: $1 strip host part S40 ##################################### ### SMTP Mailer specification ### ##################################### Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, A=IPC $h Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n, L=990, A=IPC $h Mrelay, P=[IPC], F=mDFMuXa, S=11/31, R=61, E=\r\n, L=2040, A=IPC $h Затем идут правила определения локального преобразования адресов для конкретных программ рассылки, в частности набор правил S11.
    # envelope sender and masquerading recipient rewriting # S11 R$+ $: $>51 $1 sender/recipient common R$* :; <@> $@ $1:; list:; special case R$* $@ $>61 $1 qualify unqual'ed names В секции программ рассылки мы в нашем примере не указали еще одну важную возможность - рассылку по протоколу UUCP:
    Мuucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, A=uux - -r -z -a$f -gC $h!rmail Естественно, что правила преобразования адресов S13 и R23 должны быть описаны в файле настроек sendmail.

    Схема 3.4.

    Схема 3.4.

    Схема 3.4.
    Экран в bml делится на три части:
  • верхняя часть экрана занята падающими меню, позволяющими редактировать, просматривать и отправлять почту;
  • в средней части экрана расположено рабочее поле программы, в котором отображается список полученных сообщений и осуществляется редактирование посылаемых сообщений;
  • в нижней части экрана расположено вспомогательное меню функциональных клавиш.
  • При запуске программы в рабочем поле отображаются полученные сообщения, первое из которых выделено цветом. Выделенное цветом сообщение - это текущее сообщение. При этом рабочее поле разбито на четыре столбца. В первом столбце указывается адрес отправителя, во втором - дата и время получения, в третьем - число строк и символов в сообщении, четвертый столбец - тема сообщения. Для просмотра сообщения надо при помощи клавиш-стрелок сделать интересующее пользователя сообщение текущим и нажать Enter. В рабочем поле экрана появится текст сообщения (рисунок 3.5).



    Схема 3.5.

    Схема 3.5.

    Схема 3.5.
    Для редактирования и подготовки сообщений следует воспользоваться режимами Create Mail и Edit mail из падающего меню Mail (рисунок 3.6).



    Схема 3.6.

    Схема 3.6.

    Схема 3.6.
    Для перехода в падающее меню используется функциональная клавиша F9. Для отправки сообщения из режима редактирования следует нажать ALT+T или выйти в меню Post. При отправке почты следует заполнить специальную форму (рисунок 3.7).
    Bml предоставляет еще ряд возможностей, облегчающих прием, просмотр и отправку почты (поддерживает список часто используемых адресов, посылку сообщений в телеконференции Usenet, автоматическую вставку двоичных файлов в формате uuencode и их автоматическое извлечение из полученных сообщений и ряд других). В целом, следует признать, что bml является достаточно удобным персональным средством работы с почтой.



    Схема 3.7.

    Схема 3.7.


    Схема 3.7.



    Схема 3.8.

    Схема 3.8.

    Схема 3.8.
    Нажимая клавиши "j" и "k", можно перемещаться вверх и вниз по списку полученных сообщений, а при нажатии клавиши Enter пользователь переходит к просмотру полученного сообщения. Для реализации других возможностей elm пользователь вводит в командной строке после слова "Command:" соответствующую букву, например, для отправки сообщения следует ввести букву "М". Вслед за этим появится приглашение ввести адрес получателя, тему письма и возможных дополнительных адресатов. Затем elm вызовет внешний редактор (обычно vi). После того, как пользователь завершил редактирование письма и вышел из редактора, elm еще раз удостоверяется в том, что письмо следует отправить по указанному адресу и, если получает подтверждение, то отправляет его.
    При работе c elm следует обратить внимание на тот факт, что при выполнении команды delete, письма реально не удаляются, а только помечаются как удаленные. Реальная очистка почтового ящика происходит только при выходе из программы и только по подтверждению пользователя.

    Схема 3.9. Схема работы с почтовым сервером из-под MS-Windows и MS-DOS

    Схема 3.9. Схема работы с почтовым сервером из-под MS-Windows и MS-DOS

    Схема 3.9. Схема работы с почтовым сервером из-под MS-Windows и MS-DOS
    Такая схема предполагает, что пользователь имеет почтовый ящик на машине-сервере, которая не выключается круглосуточно. Все почтовые сообщения складываются в этот почтовый ящик. По мере необходимости, пользователь из своего почтового клиента обращается к почтовому ящику и забирает из него пришедшую на его имя почту. При отправке программа-клиент обращается непосредственно к серверу рассылки почты и передает отправляемые сообщения на этот сервер для дальнейшей рассылки.
    На рисунке 3.10 приведен экран Eudora, на котором представлено меню настройки и два почтовых ящика: принятых писем и отправленных писем.
    На этом рисунке в меню настроек хорошо виден POP Account - адрес пользователя на машине-сервере, SMTP-сервер и POP (Ph) сервер. Как видно из настроек, Eudora каждые 30 минут проверяет почтовый ящик пользователя и сообщает о получении новых писем. Кроме того, что Eudora позволяет читать просто письма в обычном почтовом формате Internet (RFC822), о котором пойдет речь в следующем параграфе, она распознает и новый формат, ориентированный на отображение мультимедийных почтовых сообщений MIME, который последнее время становится все более популярен в Internet.



    Схема 4.1. Схема взаимодействия компонентов FTP-обмена

    Схема 4.1. Схема взаимодействия компонентов FTP-обмена

    Схема 4.1. Схема взаимодействия компонентов FTP-обмена
    При этом следует четко понимать, что Archie и FTP - это совершенно разные технологии. В большинстве случаев доступ к Archie-серверу пользователи осуществляют из Archie-клиента, который находится на той же машине, что и сервер, т.е. сначала пользователь по Telnet заходит как пользователь Archie, а потом использует программу-клиент (обычно она запускается в качестве оболочки) для доступа к Archie серверу.

    Схема 4.2. Модель протокола

    Схема 4.2. Модель протокола

    Схема 4.2. Модель протокола
    В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора пользователя средствами.
    Команды FTP определяют параметры канала передачи данных и самого процесса передачи. Они также определяют и характер работы с удаленной и локальной файловыми системами.
    Сессия управления инициализирует канал передачи данных. При организации канала передачи данных последовательность действий другая, отличная от организации канала управления. В этом случае сервер инициирует обмен данными в соответствии с параметрами, согласованными в сессии управления.
    Канал данных устанавливается для того же host'а, что и канал управления, через который ведется настройка канала данных. Канал данных может быть использован как для приема, так и для передачи данных.
    Возможна ситуация, когда данные могут передаваться на третью машину. В этом случае пользователь организует канал управления с двумя серверами и организует прямой канал данных между ними. Команды управления идут через пользователя, а данные напрямую между серверами (рисунок 4.3).
    Канал управления должен быть открыт при передаче данных между машинами. В случае его закрытия передача данных прекращается.



    Схема 4.3. Соединение с двумя разными серверами и передача данных между ними

    Схема 4.3. Соединение с двумя разными серверами и передача данных между ними


    Схема 4.3. Соединение с двумя разными серверами и передача данных между ними



    Спецификация MIME (Multipurpose Internet Mail Extension)

    2.5. Спецификация MIME (Multipurpose Internet Mail Extension)


    Стандарт MIME, или в нотации Internet

    Поле версии указывается в заголовке почтового сообщения и позволяет определить программе рассылки почты, что сообщение подготовлено в стандарте MIME. Формат поля выглядит как:
    MIME-Version: 1.0 Поле версии указывается в общем заголовке почтового сообщения и относится ко всему сообщению целиком. Здесь уместно отметить, что в отличие от стандарта RFC822, стандарт MIME позволяет перемешивать поля заголовка сообщения с телом сообщения. Поэтому все поля делятся на два класса: общие поля заголовка, которые записываются в начале почтового сообщения и частные поля заголовка, которые относятся только к отдельным частям составного сообщения и записываются перед ними.

    Создание спецэффектов

    Чтобы применить HyperVoxels к

    Рисунок 11.48. Чтобы применить HyperVoxels к элементу сцены, дважды щелкните по его имени в списке. В Viper отображается поверхность, созданная вокруг Clump-1


    Чтобы применить HyperVoxels к
    15. Измените значение параметра Particle Size (Размер частицы), расположенного на вкладке Geometry (Геометрия), сделав его равным 1.5 т. В окне Viper поверхность, смоделированная HyperVoxels, увеличится (Рисунок 11.49).



    Чтобы создать объемный эффект воспользуйтесь выпадающим меню Add Volumetric

    Рисунок 11.32. Чтобы создать объемный эффект, воспользуйтесь выпадающим меню Add Volumetric


    Чтобы создать объемный эффект воспользуйтесь выпадающим меню Add Volumetric
    3. Чтобы открыть окно свойств эффекта Ground Fog, дважды щелкните по строке «Bottom: -4.000000 Тор: 0.000000» списка, расположенного под выпадающим меню (Рисунок 11.33).



    Чтобы задать соответствие цвета

    Рисунок 11.34. Чтобы задать соответствие цвета тумана с фоном, воспользуйтесь опцией Backdrop Color Чтобы задать соответствие цвета
    Рисунок 11.35. Так выглядит сцена после применения эффекта Ground Fog

    Добавление ветра

    Добавление ветра

    1. Выполните шаги 1-4 процедуры «Создание источника частиц», при этом нулевой объект назовите Wind (Ветер).
    2. В разделе Dynamics в меню Add Dynamics выберите пункт Wind (Эффект ветра).
    3. Щелкните по кнопке паузы, расположенной под указателем кадров.
    4. Перетащите указатель кадров на нулевой кадр анимации.
    5. Перейдите на вкладку Items (Элементы), затем щелкните по кнопке Stretch (Растянуть) на панели инструментов.
    6. Удерживая нажатой правую кнопку, перемещайте мышь вверх, чтобы растянуть объект Wind до точки с координатой 3.5 т, расположенной на оси Y.
    7. Создайте опорный кадр с номером 0 для объекта Wind.
    8. Щелкните по кнопке Play.
    9. Чтобы открыть окно свойств FX_Wind (Эффект ветра), дважды щелкните по названию эффекта в списке.
    10. Закройте окно Item Properties объекта Wind. Расположите окно свойств эффекта FX_Wind таким образом, чтобы вы могли наблюдать за объектом в окне проекции.
    11. Из выпадающего меню режима Wind выберите пункт rotation(y) (вращение) - Рисунок 11.25.



    Дым созданный при помощи режима Sprite

    Рисунок 11.64. Дым, созданный при помощи режима Sprite

    Дым созданный при помощи режима Sprite
    21. В окне HyperVoxels из выпадающего меню Object Type (Тип объекта) выберите пункт Volume (Объем).
    22. Выполните шаги 20 и 21, чтобы создать предварительный просмотр и оценить полученный эффект (Рисунок 11.65). Дым созданный при помощи режима Sprite
    Рисунок 11.65. Выберите режим Volume и создайте новый предварительный просмотр. В данном Случае изображение больше напоминает гигантский столб дыма, оно стало более детальным, однако на его расчет требуется значительно больше времени

    Если ввести отрицательное значение

    Рисунок 11.22. Если ввести отрицательное значение в поле Gravity(m/s^2), частицы будут падать, а при вводе положительного значения - подниматься



    Фильтры изображений

    Фильтры изображений

    Фильтры изображений (Image filter) используются для обработки кадров сцены после их просчета. Они обязательно потребуются в процессе работы с созданными изображениями для моделирования спецэффектов.



    Фоновые изображения

    Фоновые изображения

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

    Инструмент FX_Gravity позволяет

    Рисунок 11.21. Инструмент FX_Gravity позволяет сымулировать эффект гравитации. Выберите в меню Falloff Mode значение OFF. Это означает, что все частицы сцены подчиняются гравитации. Если оставить значение Linear, то гравитация будет влиять только на те частицы, которые попадают в область ее действия


    Инструмент FX_Gravity позволяет
    6. В поле Gravity(m/s^2) Y (Гравитация (м/с^2) Y) введите -1 и нажмите клавишу Enter. Таким образом, гравитация будет тянуть частицы вниз (Рисунок 11.22).



    ИНструмент FX_Wind позволяет создавать

    Рисунок 11.26. Чтобы уменьшить или увеличить область влияния инструмента, измените значение в поле Radius

    ИНструмент FX_Wind позволяет создавать
    13. В поле Spiral Amount (Количество спиралей) введите 3000 и нажмите клавишу Enter. Это заставит частицы образовать вихрь (Рисунок 11.27). ИНструмент FX_Wind позволяет создавать
    Рисунок 11.27. Чем больше значение в поле Spiral Amount, тем больше вихревых спиралей образуют частицы Вы можете анимировать размер и положение каждого из инструментов FX Particle (Частицы), для этого просто анимируйте объекты, к которым применены инструменты.

    Варианты различных сочетаний инструментов FX Particles практически безграничны. Более подробный обзор их параметров содержится в справочном руководстве пользователя и на сайтах www.luxology.net и www.flav.com.

    С помощью инструмента FX_Linker (Привязка), расположенного на вкладке Scene (Сцена) под заголовком Dynamics (Динамика), можно заменить отдельные частицы движущимися объектами. Это необходимо при моделировании полета стаи птиц, роя пчел, катящихся камней или снегопада.

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

    Инструмент Ground Fog позволяет достичь более реалистичного эффекта

    Рисунок 11.33. Инструмент Ground Fog позволяет достичь более реалистичного эффекта


    Инструмент Ground Fog позволяет достичь более реалистичного эффекта
    4. Чтобы установить верхнюю границу создаваемого эффекта, в поле Тор введите 1 m и нажмите клавишу Enter.
    5. Чтобы установить нижнюю границу, в поле Bottom введите -1 m и нажмите клавишу Enter.
    6. Снимите галочку с окошка метки Backdrop Color (Рисунок 11.34).
    7. Чтобы увидеть результат, нажмите клавишу F9 (Рисунок 11.35).



    Инструмент SkyTracer2 позволяет

    Рисунок 11.11. Инструмент SkyTracer2 позволяет создавать даже облака. Если требуется сымитировать облачность, нужно активировать эту опцию, поскольку по умолчанию она отключена Инструмент SkyTracer2 позволяет
    Рисунок 11.12. Предварительный просмотр обновился в соответствии с внесенными изменениями

    Инструмент SkyTracer2 позволяет
    6. В окне свойств SkyTracer2 перейдите на вкладку High Attitude Clouds (Высокие облака), затем отметьте галочкой опцию Enable Clouds. Теперь в окне Viper вы увидите, что над уже созданным слоем появился новый слой облаков (Рисунок 11.13).
    7. Закройте окна SkyTracer2 и Viper.
    8. Чтобы просчитать сцену и просмотреть созданный эффект, нажмите клавишу F9 (Рисунок 11.14). Инструмент SkyTracer2 позволяет
    Рисунок 11.13. Вы создали два слоя облаков, расположенных на различных высотах. Результат можно оценить, воспользовавшись окном Viper Инструмент SkyTracer2 позволяет
    Рисунок 11.14. Окно Viper - инструмент интерактивного просмотра, с большой достоверностью передающий вид сцены Для настройки вида небосклона предусмотрено огромное количество параметров, обзор которых выходит за рамки этой книги. За более подробной информацией обратитесь к справочному руководству пользователя


    Использование декораций

    Использование декораций

    В качестве фона можно использовать не только сплошную цветовую заливку или плоское изображение, но и декорации. В LightWave они создаются при помощи трех основных инструментов: Texture Environment (Текстурное окружение). Этот инструмент использует Texture Editor (Редактор текстур), что позволяет наиболее гибко работать с текстурами, градиентами и процедурными текстурами при создании декораций. Более подробно Texture Editor рассматривается в главе 12;

    Image World (Мир-изображение). Здесь для создания фона и освещения применяются изображения формата HDRI (High Dynamic Range Image - Высокодинамичное изображение). Подробнее этот инструмент описывается в главе 13;

    SkyTracer2 (Создатель неба 2). При помощи данного инструмента можно воссоздать как ночное, так и дневное небо. Инструмент очень полезен при выполнении естественных декораций сцены.



    Использование фоновых изображений

    Использование фоновых изображений

    1. Щелкните по кнопке Window, затем в выплывающем меню найдите команду Compositing Options (Свойства компоновки), или нажмите клавиши Ctrl+F7. Откроется окно Effects (Эффекты), вкладка Compositing (Компоновка) - Рисунок 11.5.



    Использование HyperVoxels

    Использование HyperVoxels

    HyperVoxels представляет собой один из механизмов LightWave, предназначенных для получения объемных эффектов. Например, его можно использовать для моделирования дыма, облаков, пыли или жидкостей. Данный механизм создает объемный трехмерный эффект вокруг определенной точки пространства (например, точки объекта, нулевого объекта или частицы, созданной системой Particle FX). Преимущество эффектов HyperVoxels заключается в их трехмерности, что позволяет обозревать их из любой точки сцены. Существует три режима работы HyperVoxels: Surface (Поверхность). В этом режиме создается гладкая сфера, на которую можно наложить любую текстуру. Отдельные поверхности HyperVoxels (объекты или частицы Particle FX) можно объединить при помощи данного эффекта, чтобы создать имитацию жидкости;

    Volume (Объем). Данный режим моделирует объемное облако. К создаваемой поверхности можно применить HyperTextures (Гипертекстуры), чтобы создать эффект движения облака, вихри и т.п. При использовании этого режима производится наибольшее количество вычислений, все расчеты осуществляются по реальным физико-математическим моделям. Режим Volume незаменим в тех случаях, когда необходимо имитировать погружение в какую-либо объемную среду.
    Он также позволяет сделать сцену максимально реалистичной;

    Sprite (Спрайт)(Спрайт - небольшое изображение, переносимое по экрану независимо от других. ) Этот режим на самом, деле не является объемным. Принцип его действия таков: на центр изображения, попадающего в объектив камеры, накладывается двумерный эффект. Подобный механизм создания эффектов значительно повышает производительность системы, поскольку не требует большого количества вычислений. Этот режим прекрасно подходит для создания дыма, пыли, следа ракеты — всего того, что можно сымитировать при помощи дыма. Создание объемного изображения требует значительных вычислений, а это может привести к тому, что для генерации сцены понадобится очень много времени. Если нет необходимости создания именно объемного эффекта при помощи режима Volume, то предпочтительнее использовать режим Sprite. Работая со сценами, вы рано или поздно заметите, что в большинстве случаев достаточно применения только режима Sprite.
    Описание HyperVoxels и основ создания объемных изображений - это тема отдельной книги. Далее будет рассказываться о процедурах, которые помогут вам получить навыки работы с HyperVoxels. Если вы хотите узнать обо всех возможностях этого механизма создания трехмерных изображений, обратитесь к справочному руководству пользователя LightWave или посетите сайты www.newtek.com , www.luxology.net , www.flay.com.



    Из выпадающего меню Add Environment

    Создание простого неба

    1. Выполните процедуру «Создание декораций» и выберите инструмент SkyTracer2 (Создатель неба 2).
    2. Щелкните по кнопке Viper (Интерактивный просмотр) на панели инструментов, чтобы открыть окно Versatile Interactive Preview Render (Адаптивный интерактивный предварительный просмотр) - Рисунок 11.10.



    Из выпадающего меню Blending Mode выберите пункт Additive

    Рисунок 11.50. Из выпадающего меню Blending Mode выберите пункт Additive


    Из выпадающего меню Blending Mode выберите пункт Additive
    17. Из выпадающего меню Blending Group (Группа смешивания) выберите пункт (new group) (новая группа)-Рисунок 11.51. Откроется диалоговое окно Blend Group Name (Имя группы смешивания).
    18. В появившемся диалоговом окне введите имя Clumpy и нажмите клавишу Enter или щелкните по кнопке ОК (Рисунок 11.52).



    Из выпадающего меню Object Type выберите пункт Sprite

    Рисунок 11.61. Из выпадающего меню Object Type выберите пункт Sprite


    Из выпадающего меню Object Type выберите пункт Sprite
    14. В поле Particle Size (Размер частицы) введите 250 mm. Изображение в окне Viper обновится (Рисунок 11.62).



    Изменение цвета фона

    Изменение цвета фона

    1. Щелкните по кнопке Window.
    2. Далее по списку найдите и щелкните по кнопке Backdrop Options (Свойства фона), или нажмите клавиши Ctrl+F5. Откроется окно Effects (Эффекты), вкладка Backdrop (Фон) -Рисунок 11.1.



    Изменение фона

    Изменение фона

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



    Измените параметры движения Smokey

    Рисунок 11.59. Измените параметры движения Smokey, чтобы они соответствовали указанным на данном рисунке Измените параметры движения Smokey
    Рисунок 11.60. Камера должна быть немного смещена, чтобы вы могли видеть создаваемый эффект

    Измените параметры движения Smokey
    11. Щелкните по кнопке Viper на панели инструментов, откроется окно Versatile Interactive Preview Render.
    12. В окне HyperVoxels в списке элементов дважды щелкните по пункту Smokey, чтобы сделать этот элемент активным.
    13.Из выпадающего меню Object Type (Тип объекта) выберите пункт Sprite (Спрайт) - Рисунок 11.61.

    Измените внешний вид объекта при

    Рисунок 11.37. Выберите из списка поверхность, к которой требуется применить эффект Измените внешний вид объекта при
    Рисунок 11.38. Значение в поле Glow Intensity определяет интенсивность свечения каждой поверхности объекта

    Измените внешний вид объекта при
    7. Закройте окно Surface Editor.
    8. Перейдите на вкладку Scene (Сцена), затем щелкните по кнопке Image Process (Обработка изображения) на панели инструментов или нажмите клавиши Ctrl+F8. Откроется окно Effects (Эффекты), вкладка Processing (Обработка)-Рисунок 11.39.

    Изменяя эти параметры вы изменяете

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

    Изменяя эти параметры вы изменяете
    10. Чтобы применить настройки и закрыть окно, нажмите клавишу Enter. Значение в поле Intensity (Интенсивность) определяет светимость всех поверхностей сцены, а величина в поле Glow Radius (Радиус свечения) - число светящихся пикселей, которые находятся вне поверхности.
    11. Чтобы просмотреть созданный эффект свечения, нажмите клавишу F9 - см. Рисунок 11.41. Изменяя эти параметры вы изменяете
    Рисунок 11.41. Таким образом выглядит эффект свечения Определить параметры интенсивности и радиуса свечения можно с помощью инструмента Graph Editor (Редактор кривых).

    Чтобы усилить эффект свечения, допускается присваивать параметрам значения, превышающие 100%.

    Эффект тумана

    Эффект тумана

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



    Каждая частица отображается в течении 150 кадров после того как будет выпущена из Emitter

    Рисунок 11.18. Каждая частица отображается в течении 150 кадров, после того как будет выпущена из Emitter


    Каждая частица отображается в течении 150 кадров после того как будет выпущена из Emitter
    14. Чтобы получить доступ к настройкам Motion (Движение) частиц, испускаемых объектом Emitter, перейдите на вкладку Motion.
    15. В поле Vector(m/s) Y (Скорость(м/с) Y) введите 500 mm и нажмите клавишу Enter (Рисунок 11.19). Таким образом вы сообщите частицам некоторую вертикальную скорость.



    Можно создавать различные группы

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

    Можно создавать различные группы
    19. Перейдите на вкладку Shading (Затенение), чтобы получить доступ к настройкам затенения поверхности HyperVoxels (Рисунок 11.53).
    20. В поле Color (Цвет) щелкните по красному компоненту и присвойте ему значение 255.
    21. Щелкните по зеленому и синему компонентам, установите значение 0 (см. Рисунок 11.54).

    На вкладке HyperTexture располежены

    Рисунок 11.63. На вкладке HyperTexture располежены опции текстурных эффектов. Они позволяют получить имитацию клубящегося дыма или рассеяние эффектов HyperVoxels


    На вкладке HyperTexture располежены
    19. В окне Viper из выпадающего меню Preview (Предварительный просмотр) выберите пункт Make Preview (Создать предварительный просмотр).
    20. По окончании формирования предварительного просмотра щелкните по кнопке Play, чтобы просмотреть созданный эффект (Рисунок 11.64).



    На вкладке Processing настройте эффекты созданные после просчета изображения

    Рисунок 11.39. На вкладке Processing настройте эффекты, созданные после просчета изображения


    На вкладке Processing настройте эффекты созданные после просчета изображения
    9. Отметьте галочкой опцию Enable Glow (Включить свечение). В поле Intensity (Интенсивность) введите 200, а в поле Intensity Radius (Радиус интенсивности) введите 24 (Рисунок 11.40). Помните, что интенсивность свечения задается относительно светимости поверхностей всей сцены. Если светимость поверхностей всей сцены составляет 60%, а светимость данной поверхности - 25%, то абсолютная интенсивность свечения будет составлять лишь 15%.



    Окно свойств HyperVoxels разделено

    Рисунок 11.46. Окно свойств HyperVoxels разделено на три типа свойств: Geometry,Shading и HyperTexture. Таким образом, вы всегда знаете, где найти элементы настройки, необходимые для решения возникающих задач


    Окно свойств HyperVoxels разделено
    12. На панели инструментов щелкните по кнопке Viper. Откроется окно Versatile Interactive Preview Render.
    13. В выпадающем меню Preview Options (Настройки предварительного просмотра) окна Viper вы можете выбрать один из режимов: - в режиме Scene Preview инструмент Viper создает предварительный просмотр всех элементов сцены, которые имеют отношение к создаваемому эффекту;

    - в режиме Object Preview воспроизводятся объекты, выделенные в HyperVoxels;

    - Particle Preview отображает отдельные частицы сцены. В данном примере выбран пункт Scene Preview (Предварительный просмотр сцены) - Рисунок 11.47.



    Опция HyperVoxels располагается рядом с Ground Fog

    Рисунок 11.45. Опция HyperVoxels располагается рядом с Ground Fog


    Опция HyperVoxels располагается рядом с Ground Fog
    11.В списке, расположенном под выпадающим меню, дважды щелкните по пункту HyperVoxels 3.0, чтобы открыть окно свойств HyperVoxels (Рисунок 11.46).



    Параметр Explosion создает эффект взрывающихся частиц Создание гравитации

    Рисунок 11.20. Параметр Explosion создает эффект взрывающихся частиц



    Параметр Particle Size определяет объем создаваемый вокруг каждой точки

    Рисунок 11.49. Параметр Particle Size определяет объем, создаваемый вокруг каждой точки


    Параметр Particle Size определяет объем создаваемый вокруг каждой точки
    16. В выпадающем меню Blending Mode (Режим смешивания) вы можете выбрать один из режимов: - Additive (Аддитивный). Объединение поверхностей;

    - Negative (Негатив). Поверхности не сливаются, но продавливают друг друга;

    - Effector (Эффектор). Поверхность вынуждает другие поверхности, в состав которых она входит, увеличиваться в размерах. В данном примере выбран пункт Additive-Рисунок 11.50.



    Превратите источник в маленький куб

    Рисунок 11.17. Превратите источник в маленький куб


    Превратите источник в маленький куб
    12. Перейдите на вкладку Particle (Частица), чтобы получить доступ к настройкам частиц.
    13. В поле Lifetime(s) (Время жизни) введите 150. Это означает, что каждая частица будет отображаться в течение 150 кадров (Рисунок 11.18).



    При соединении поверхностей возникает

    Рисунок 11.57. При соединении поверхностей возникает градиент перехода цвета от одной поверхности к другой



    Применение фильтров изображений

    Применение фильтров изображений

    1. Перейдите на вкладку Items (Элементы), затем из выпадающего меню Add (Добавить) выберите пункты Objects -> Load Object (Объекты -> Загрузить объект) или нажмите клавишу + (Плюс).
    2. Откроется окно Load Object (Загрузить объект). Выберите нужный объект и щелкните по кнопке Open (Открыть).
    3. Щелкните по кнопке Window и найдите пункт Image Processing, или нажмите клавиши Ctrl+F8 . Откроется окно Effects (Эффекты), вкладка Processing (Обработка).
    4. Из выпадающего меню Add Image Filter (Добавить фильтр изображения) выберите нужный фильтр, например, Negative (Негатив) - Рисунок 11.42.
    5. Чтобы оценить созданный эффект, нажмите клавишу F9 (Рисунок 11.43).



    Работать с поверхностями созданными

    Рисунок 11.53. Работать с поверхностями, созданными при помощи HyperVoxels можно точно так же, как и с обычными поверхностями Работать с поверхностями созданными
    Рисунок 11.54. Окрасьте поверхность Clump-1 в красный цвет

    Работать с поверхностями созданными
    22. Выполните шаги 14-16 для элемента Clump-2.
    23. Из выпадающего меню Blending Group (Группа смешивания) выберите пункт Clumpy.
    24.Перейдите на вкладку Shading (Затенение) и в поле Color (Цвет) установите значение синего компонента 255, а зеленого и красного - 0. Изображение в окне Viper изменится (Рисунок 11.55).

    Размер частиц должен составлять 250 мм

    Рисунок 11.62. Размер частиц должен составлять 250 мм


    Размер частиц должен составлять 250 мм
    15. Перейдите на вкладку HyperTexture, чтобы получить доступ к настройкам текстур.
    16.В поле Frequencies (Частоты) введите значение 1, чтобы сгладить создаваемый эффект и снизить его амплитуду (или силу).
    17. В поле Texture Amplitude (Амплитуда текстуры) введите значение 20, чтобы снизить влияние текстуры на отображение спрайта, затем нажмите клавишу Enter.
    18. Из выпадающего меню Texture Effect (Эффект текстуры) выберите пункт Billowing (Волнение), чтобы создать эффект клубящегося дыма (Рисунок 11.63).



    Разрешение выбранного изображения

    Рисунок 11.8. Разрешение выбранного изображения показано в информационном окне, а уменьшенный вариант - под выпадающим меню Background Image

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

    Сцена должна содержать два нулевых объекта расположенных на расстоянии 2 м друг от друга

    Рисунок 11.44. Сцена должна содержать два нулевых объекта, расположенных на расстоянии 2 м друг от друга


    Сцена должна содержать два нулевых объекта расположенных на расстоянии 2 м друг от друга
    7. Переместите указатель кадров в кадр с номером 30.
    8. Переместите объект Clump-2 в начало оси X. Создайте опорный кадр.
    9. Щелкните по кнопке Window и найдите пункт Volumetric and Fog options, или нажмите клавиши Ctrl+F6. Откроется окно Effects (Эффекты), вкладка Volumetrics (Объемность).
    10. Из выпадающего меню Add Volumetric (Добавить объемность) выберите пункт HyperVoxels (Рисунок 11.45).



    Создайте тонкий прямоугольник базовый объект источника дыма

    Рисунок 11.58. Создайте тонкий прямоугольник - базовый объект источника дыма


    Создайте тонкий прямоугольник базовый объект источника дыма
    7. Чтобы получить доступ к настройкам движения частиц, перейдите на вкладку Motion (Движение).
    8. Измените значение в поле Vector(m/s) Y на 2 т. ЭТО означает, что частицы будут двигаться вверх. В поле Vibration(m/s) установите значение 1.0, а в поле Vibration(min) - 50%, что создаст хаотичность в движении частиц (Рисунок 11.59).
    9. Закройте окна FX_Emitter и Item Properties.
    10. Щелкните по кнопке Move на панели инструментов и переместите камеру в точку с координатой 700 mm, расположенную на оси Y. В результате сцена должна выглядеть как на Рисунок 11.60.



    Создание декораций

    Создание декораций

    1. Перейдите на вкладку Scene (Сцена), затем на панели инструментов щелкните по кнопке Backdrop (Фон) или нажмите клавишиCtrl+F5 . Откроется окно Effects (Эффекты), вкладка Backdrop (Фон).
    2. Из выпадающего меню Add Environment (Добавить декорации) выберите нужный инструмент (Рисунок 11.9).



    Создание гравитации

    1. Выполните шаги 1-4 процедуры «Со здание источника частиц», нулевой объект назовите Gravity. При открытии окна Item Properties (Свойства элемента,) для инструмента Gravity окно FX_Emitter автоматически закроется.
    2. В разделе Dynamics в меню Add Dynamics выберите пункт Gravity.
    3. Чтобы открыть окно свойств Gravity, дважды щелкните по его названию в списке.
    4. Закройте окно Item Properties (Свойства элемента) и переместите окно FX_Gravity так, чтобы вы могли видеть окно проекции.
    5. Из выпадающего меню Falloff Mode (Режим спада) выберите пункт OFF (Выключено). Гравитация применена ко всей сцене (Рисунок 11.21).



    Создание источника частиц

    Создание источника частиц

    1. Перейдите на вкладку Items (Элементы).
    2. Из выпадающего меню Add (Добавить) выберите пункты Objects -> Add Null (Объекты -> Добавить нулевой объект). Откроется диалоговое окно Null Object Name (Имя нулевого объекта).
    3. В поле имени введите Emitter (Источник) и щелкните по кнопке ОК или нажмите клавишу Enter.
    4. Щелкните по кнопке Item Properties (Свойства элемента), расположенной под указателем кадров, или нажмите клавишу Р. Откроется окно Item Properties (Свойства элемента) объекта Emitter.
    5. В разделе Dynamics в меню Add Dynamics выберите пункт Emitter (Источник частиц).
    6. Чтобы, открыть окно свойств объекта FX_Emitter, дважды щелкните по пункту FX Emitter 3 Particles в списке.
    7. Закройте окно Item Properties (Свойства элемента) для объекта Emitter и расположите окно свойств FX_Emitter так, чтобы можно было наблюдать за элементом Emitter в окне проекции (Рисунок 11.15).



    Создание эффекта дыма

    1. Перейдите на вкладку Items (Элементы), затем из выпадающего меню Add (Добавить) на Панели инструментов выберите пункты Objects -> Add Null (Объекты -> Добавить нулевой объект).
    2. В появившемся диалоговом окне Null Object Name (Имя нулевого объекта) введите имя Smokey.
    3. Щелкните по кнопке Properties (Свойства), расположенной под указателем кадров, либо нажмите клавишу Р. Откроется окно свойств элемента Smokey.
    4. В разделе Dynamics щелкните на кнопке Add dynamics выберите пункт Emitter (Источник).
    5. В списке дважды щелкните по пункту FX Emitter 3 Particles, чтобы открыть окно свойств FX Emitter.
    6. Измените значение в поле Generator Size Y (Размер источника по оси Y) на 300 mm, а в поле Generator Size Z (Размер источника по оси Z) на 100 mm (Рисунок 11.58).



    Создание эффекта жидкости

    Создание эффекта жидкости

    1. Перейдите на вкладку Items (Элементы), затем из выпадающего меню Add (Добавить) выберите пункты Objects ->Add Null (Объекты ->Добавить нулевой объект).
    2. В появившемся диалоговом окне Null Object Name (Имя нулевого объекта) введите имя Clump-1.
    3. Выполните шаги 1 и 2, чтобы создать второй нулевой объект Clump-2.
    4. В поле последнего кадра сцены, находящемся справа от указателя кадров, введите 30, что составляет длину создаваемой анимации.
    5. На панели инструментов щелкните по кнопке Move (Переместить) и переместите объект Clump-1 в точку на оси X с координатой -1 т.
    6. Переместите объект Clump-2 в точку с координатой 1 т, также расположенную на оси X. В результате должна получиться сцена, изображенная на Рисунок 11.44.



    Создание эффектов с использованием частиц

    Создание эффектов с использованием частиц

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

    FX_Collision (Эффект столкновения). Данный инструмент заставляет частицы ударяться об объект, к которому применен инструмент FX_Collision. Например, его можно использовать для заполнения объекта частицами;

    FX_Gravity (Эффект гравитации). Этот инструмент имитирует гравитацию, влияя либо на всю сцену, либо на частицы, попадающие в область его действия. Без гравитации частицы движутся в одном направлении с постоянной скоростью;

    FX_Wind (Эффект ветра). Данный инструмент имитирует порывы ветра, которые действуют на частицы, созданные FX_Emitter. Например, ветер может подхватить и закружить снежинки, крутя их по сцене. Следующий пример показывает, как можно создать простую анимацию с использованием частиц.



    Создание плоскости удара

    1. Выполните шаги 1-4 процедуры «Создание источника частиц», нулевой объект назовите Collision.
    2. В разделе Dynamics в меню Add Dynamics выберите пункт Collision.
    3. Чтобы открыть окно свойств Collision, дважды щелкните по его названию в списке.
    4. Закройте окно Item Properties (Свойства элемента) для Collision и расположите окно свойств Collision так, чтобы вы могли наблюдать за происходящим в окне проекции.
    5. Из выпадающего меню Туре (Тип) выберите пункт Plane (Рисунок 11.23).
    6. В поле Radius/Level (Радиус/уровень) введите 0 и нажмите клавишу Enter, чтобы совместить плоскость удара с положением объекта Collision (0 m по оси Y). Частицы останавливаются по достижении плоскости (Рисунок 11.24).



    Создание простого тумана

    Создание простого тумана

    1. Перейдите на вкладку Items (Элементы), затем из выпадающего меню Add (Добавить) выберите пункты Objects -> Load Object (Объекты -> Загрузить объект) или нажмите клавишу + (Плюс). Откроется диалоговое окно Load Object (Загрузить объект).
    2. Выберите объект, расположенный на жестком диске вашего компьютера, и щелкните по кнопке ОК.
    3. Нажмите клавишу F9, чтобы обновить сцену (Рисунок 11.28).



    Создание светящихся объектов

    Создание светящихся объектов

    1. Перейдите на вкладку Items (Элементы), затем из выпадающего меню Add (Добавить) выберите пункты Objects -> Load Object (Объекты -> Загрузить объект) или нажмите клавишу + (Плюс).
    2. Откроется диалоговое окно Load Object (Загрузить объект). Выберите нужный объект и щелкните по кнопке Open (Открыть).
    3. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor (Редактор поверхностей)-Рисунок 11.36.



    Создание туманного фона

    Создание туманного фона

    1. Выполните шаги 1-6 процедуры «Создание простого тумана».
    2. Из выпадающего меню Add Volumetric (Добавить объемный) выберите пункт Ground Fog (Туманный фон) - см. Рисунок 11.32.



    Светящиеся объекты

    Светящиеся объекты

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



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

    Рисунок 11.31. Так выглядит эффект простого тумана. Заметьте, что он не оказал никакого влияния на фон, в цвет тумана окрасился только объект

    Так выглядит эффект простого тумана
    Вы можете просмотреть созданный эффект в виде Camera, активировав опцию тумана OpenGL на вкладке Display (Отображение) окна Layout's Preferences (Настройки Layout).
    Если вы хотите добиться более реалистичного эффекта, используйте инструмент Ground Fog (Туманный фон), который создает туман, оказывающий влияние и на элементы фона. Только здесь нужно указывать не границы действия тумана, а определить его высоту над землей.

    Так выглядит объект до создания

    Рисунок 11.29. При помощи вкладки Volumetrics вы можете создавать такие эффекты, как туман и HyperVoxels. Если выбрать режим Linear, туман будет усиливаться линейно по мере удаления от камеры. Опции Nonlinear1 и Nonlinear2 создают нелинейное усиление тумана


    Так выглядит объект до создания
    7. В поле Min Distance (Минимальное расстояние) введите -3 m и нажмите клавишу Enter. Это будет началом зоны тумана (Рисунок 11.30).



    Типы Ground Fog Существует два

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

    Raymarcher (Движущийся). Туман этого типа рассчитывается по существующим физическим моделям. Texture Editor (Редактор текстур) позволяет при помощи градиентов и изображений смоделировать очень реалистичный движущийся туман. Но для этого требуется произвести огромное количество вычислений, что значительно увеличивает время создания сцены. Туман данного типа реагирует на источники света. Если поместить направленный источник света в область тумана, можно будет увидеть его луч.




    В качестве фона вы можете использовать изображения любого типа поддерживаемого LightWave

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


    В качестве фона вы можете использовать изображения любого типа поддерживаемого LightWave
    4. Чтобы загрузить изображение и закрыть диалоговое окно, щелкните по кнопке Open (Открыть). Разрешение выбранного изображения показано в информационном окне, а уменьшенный вариант размещен под выпадающим меню (Рисунок 11.8).



    В LightWave входит набор фильтров

    Рисунок 11.42. В LightWave входит набор фильтров изображений В LightWave входит набор фильтров
    Рисунок 11.43. Так выглядит лготип 3D при использовании фильтра Negative

    В LightWave входит набор фильтров
    Вместе с Lightwave поставляется небольшой набор фильтров изображений. Но вы можете найти множество других фильтров в Internet. Например, очень рекомендуем посетить сайт www.flav.com.

    В окне Effects на вкладке Backdrop

    Рисунок 11.2. Чтобы изменить цвет фона, вы можете ввести значение каждого компанента цвета В окне Effects на вкладке Backdrop
    Рисунок 11.3. В поле цветовых компонентов введите значение 140 В окне Effects на вкладке Backdrop
    Рисунок 11.4. Щелкните по кнопке каталога цветов, чтобы открыть цветоподборщик. Выберите цвет, который вы хотите использовать в качестве фонового

    В окне Effects на вкладке Backdrop
    Если вам нравится градиентная заливка, щелкните по кнопке Gradient Backdrop (Градиентный фон), а затем выберите цвета для создания градиентного перехода.

    В окне Viper из выпадающего меню Preview Options выберите пункт Scene Preview

    Рисунок 11.47. В окне Viper из выпадающего меню Preview Options выберите пункт Scene Preview


    В окне Viper из выпадающего меню Preview Options выберите пункт Scene Preview
    14. В окне HyperVoxels в списке объектов дважды щелкните по имени Clump-1, чтобы активировать объект. Вокруг Clump-1 будет построена гладкая поверхность (Рисунок 11.48).



    В окне Viper можно просмотреть созданные эффекты

    Рисунок 11.10. В окне Viper можно просмотреть созданные эффекты


    В окне Viper можно просмотреть созданные эффекты
    3. В окне Backdrop (Фон) дважды щелкните по пункту SkyTracer2 в списке, расположенном под выпадающим меню Add Environment (Добавить декорации). Откроется окно свойств SkyTracer2.
    4. Перейдите на вкладку Clouds (Облака). В области Low Attitude Clouds (Низкие облака) отметьте галочкой опцию Enable Clouds (Включить облака)- Рисунок 11.11.
    5. В окне Viper вы можете увидеть созданный эффект (Рисунок 11.12).



    В результате на экране отображаются красная и синяя поверхности HyperVoxels

    Рисунок 11.55. В результате на экране отображаются красная и синяя поверхности HyperVoxels


    В результате на экране отображаются красная и синяя поверхности HyperVoxels
    25. Чтобы создать предварительный просмотр анимации, в окне Viper из выпадающего меню Preview (Предварительный просмотр) выберите пункт Make Preview (Создать предварительный просмотр) - Рисунок 11.56. В отличие от Layout Preview, Viper формирует предварительный просмотр автоматически, используя для этого первый и последний кадры анимации.



    В Viper создать предварительный

    Рисунок 11.56. В Viper создать предварительный просмотр так же просто, как и в Layout Preview. Кроме того, это занимает гораздо меньше времени, чем полное формирование изображения


    В Viper создать предварительный
    26. Щелкните по кнопке Play, чтобы просмотреть созданную сцену (Рисунок 11.57).



    Вкладка Compositing позволяет

    Рисунок 11.6. Вы можете загрузить изображение, воспользовавшись выпадающим меню Image. Вам не придется каждый раз вызывать окно Image Editor


    Вкладка Compositing позволяет
    3. Появится диалоговое окно Load Image (Загрузить изображение). Выберите изображение, которое вы хотели бы использовать в качестве фонового (Рисунок 11.7).



    Введя положительное значение вы

    Рисунок 11.19. Введя положительное значение, вы заставите частицу двигаться вдоль положительной координатной полуоси, отрицательной координатной полуоси, отрицательное - вдоль отрицательной полуоси


    Введя положительное значение вы
    16. В поле Explosion(m/s) (Взрыв(м/с)) введите 2 и нажмите клавишу Enter. Частицы начнут рассыпаться после того, как поднимутся вверх (Рисунок 11.20).



    Вы можете отслеживать все вносимые

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


    Вы можете отслеживать все вносимые
    11. Повторите шаг 10 для осей Y и Z. Объект Emitter должен принять форму куба (Рисунок 11.17).



    Выберите тип Plane имитирующий

    Рисунок 11.23. Выберите тип Plane, имитирующий плоскую поверхность, например, поверхность стола, чтобы заставить частицы взаимодействовать с объектами сцены FX_Colllslon Выберите тип Plane имитирующий
    Рисунок 11.24. Частицы не смогут пройти сквозь плоскость

    Выберите тип Plane имитирующий
    Вы, наверное, заметили, что при выполнении шага 6 в окне проекции на плоскости удара появилось слово Bounce (Удар). Это говорит о том, что в данный момент установлен тип столкновения Bounce. Если вы измените режим столкновения, то на плоскости сразу же отобразится его название. Таким образом, даже если окно свойств FX_Colllslon закрыто, всегда известно, какой тип столкновения используется.

    Значения в полях Min Distance

    Рисунок 11.30. Значения в полях Min Distance и Max Distance определяют начальную и конечную зоны распространения тумана


    Значения в полях Min Distance
    8. В поле Max Distance (Максимальное расстояние) введите 5 m и нажмите клавишу Enter. Вы определили конец области тумана, все объекты за ее пределами будут полностью поглощены туманом.
    9. Чтобы обновить изображение, нажмите клавишу F9 (Рисунок 11.31).



    Создание спецэффектов

    Анимация при помощи атрибутов поверхности

    Анимация при помощи атрибутов поверхности

    Одной из самых мощных возможностей LightWave является создание анимации при помощи атрибутов поверхностей сцены. Чтобы правильно использовать ее, необходимо создать и отредактировать опорные кадры при помощи инструмента Envelope (Зависимость) - см. главу 10. Однако следует помнить, что при «оживлении» объектов допускается изменять значения только глобальных атрибутов, а не индивидуальных настроек.



    Чтобы изменить текущий вид в окне проекции из выпадающего меню выберите пункт Camera View

    Рисунок 12.19. Чтобы изменить текущий вид в окне проекции, из выпадающего меню выберите пункт Camera View


    Чтобы изменить текущий вид в окне проекции из выпадающего меню выберите пункт Camera View
    3. Щелкните по кнопке Camera (Камера), расположенной в нижней части экрана (Рисунок 12.20), или нажмите клавиши Shift+C. Layout перейдет в режим камеры.



    Чтобы обновить изображение в окне

    Рисунок 12.78. Чтобы обновить изображение в окне, щелкните по кнопке Render Чтобы обновить изображение в окне
    Рисунок 12.79. Чтобы активировать поверхность в Surface Editor, щелкните по ней в окне Viper

    Чтобы обновить изображение в окне
    Выберите для атрибута Color (Цвет) темно-красный цвет, воспользовавшись каталогом цветов или изменив соответствующие компоненты в поле. Все изменения будут немедленно отображаться в окне Viper (Рисунок 12.80). Чтобы обновить изображение в окне
    Рисунок 12.80. При редактировании поверхности все вносимые изменения отображаются в окне Viper Viper часто используется для предварительного просмотра объемного света (см. главу 8) и HyperVoxels (см. главу 13).

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

    Чтобы открыть окно Texture Editor щелкните по кнопке Т

    Рисунок 12.34. Чтобы открыть окно Texture Editor, щелкните по кнопке Т


    Чтобы открыть окно Texture Editor щелкните по кнопке Т
    5. Из выпадающего меню Image (Изображение) выберите пункт (load image) (загрузить изображение). Откроется диалоговое окно Load Object (Загрузить объект). Выберите любое изображение, находящееся на жестком диске вашего компьютера. В данном примере использовалось изображение, представленное на Рисунок 12.35.



    Чтобы перемещать вверхвниз по

    Рисунок 12.52. Чтобы перемещать вверх-вниз по полосе градиента, используйте маркеры окна, расположенные слева Чтобы перемещать вверхвниз по
    Рисунок 12.53. Положение цвета на градиенте можно изменить, введя его координаты в поле Parameter

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

    Чтобы перевести редактор моделей в режим выделения полигонов щелкните по кнопке Polygons

    Рисунок 12.3. Чтобы перевести редактор моделей в режим выделения полигонов, щелкните по кнопке Polygons


    Чтобы перевести редактор моделей в режим выделения полигонов щелкните по кнопке Polygons
    3. В окне вида сверху, удерживая нажатой правую кнопку, перемещайте мышь, чтобы нарисовать лассо вокруг двух первых рядов полигонов (Рисунок 12.4).



    Чтобы получить доступ к списку

    Рисунок 12.72. Из выпадающего меню Add Shader выберите пункт Super Cel Shader Чтобы получить доступ к списку
    Рисунок 12.73. В окне предварительного просмотра отображается эффект, создаваемый шейдером

    Чтобы получить доступ к списку
    6. Чтобы задать параметры эффекта, в списке шэйдеров, примененных к данной поверхности, дважды щелкните по его имени. Откроется окно настроек Shader (Рисунок 12.74). Чтобы получить доступ к списку
    Рисунок 12.74. Окно настроек Super Cel Shader Список шэйдеров в выпадающем меню Add Shader определяется компонентами, которые были добавлены к Lightwave. Если выполнена стандартная установка Lightwave, в этом перечне обязательно должен быть шэйдер Super Cel Shader. В противном случае обратитесь к справочному руководству пользователя Lightwave 3D, чтобы узнать, как установить дополнительные компоненты.

    Чтобы скопировать текущий слой из выпадающего меню Copy выберите пункт Selected Layer

    Рисунок 12.65. Чтобы скопировать текущий слой, из выпадающего меню Copy выберите пункт Selected Layer


    Чтобы скопировать текущий слой из выпадающего меню Copy выберите пункт Selected Layer
    5. Чтобы закрыть окно Texture Editor, нажмите кнопку Use Texture (Применить текстуру).
    6. Щелкните по кнопке Т, расположенной справа от поля атрибута Bump. Откроется окно Texture Editor. Из выпадающего меню Paste (Вставить) выберите пункт Replace Current Layer (Заменить текущий слой) - Рисунок 12.66.



    Чтобы сохранить параметры поверхности

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

    Управлять элементами базы данных, то есть удалять, переименовывать и организовывать библиотеки элементов, можно при помощи правой кнопки мыши в окне Presets. Бесплатные предустановки вы найдете в Internet.

    Чтобы усилить эффект создаваемой картой вдавливания в поле Texture Value введите значение 500%

    Рисунок 12.67. Чтобы усилить эффект, создаваемой картой вдавливания, в поле Texture Value введите значение 500%

    Чтобы усилить эффект создаваемой картой вдавливания в поле Texture Value введите значение 500%
    9. Сохраните объект и нажмите клавишу F9, чтобы обновить изображение (Рисунок 12.68). Чтобы усилить эффект создаваемой картой вдавливания в поле Texture Value введите значение 500%
    Рисунок 12.68. Всего лишь одна малекнькая деталь, и капиляры стали выпуклыми

    Градиент создан

    Рисунок 12.54. Градиент создан


    Градиент создан
    7. Из выпадающего меню Input Parameter (Входной параметр) выберите пункт Slope (Наклон), чтобы в зависимости от наклона геометрии использовались различные цвета (Рисунок 12.55). Этот шаг определяет, как градиент будет применяться к поверхности.



    Градиенты

    Градиенты

    Обычно под названием градиент подразумевается плавный переход от одного цвета к другому (Рисунок 12.48). Однако в LightWave могут быть созданы градиенты с использованием нескольких цветов (Рисунок 12.49). Градиенты можно задавать при определении любых атрибутов, поддерживающих текстуры.



    Image maps Как видно из названия

    Определение карты изображения для параметра Diffuse


    Image maps Как видно из названия
    1. Загрузите файл Eyeball_setup.lws в Layout.
    2. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor.
    3. В списке поверхностей щелкните по строке с именем Iris.
    4. Щелкните по кнопке Т, расположенной справа от поля параметра Diffuse (Диффузия), чтобы открыть Texture Editor (Редактор текстур) - Рисунок 12.34.



    Использование окна Preset

    Использование окна Preset

    1. Выполните шаги 1-6 процедуры «Использование Viper».
    2. Щелкните по кнопке Presets (Предварительные установки) на панели инструментов. Откроется окно Surface Preset (Предустановки поверхности).
    3. Чтобы сохранить поверхность Iris в окне Surface Presets, щелкните по кнопке Add Preset (Добавить предустановку), расположенной в окне Viper (Рисунок 12.81).



    Используя инструмент Ball создайте

    1. Загрузите файл Eyeball.lwo в Modeler.
    2. Щелкните по кнопке Surface (Поверхность) на панели инструментов внизу или нажмите клавишу Q. Откроется диалоговое окно Change Surface (Изменить поверхность).
    3. В поле Name (Имя) введите Eyeball. Снимите галочку в окошке метки Маке Default (Сделать по умолчанию) - Рисунок 12.2.



    Используя правую кнопку мыши обведите лассо вокруг двух первых рядов полигонов

    Рисунок 12.4. Используя правую кнопку мыши, обведите лассо вокруг двух первых рядов полигонов


    Используя правую кнопку мыши обведите лассо вокруг двух первых рядов полигонов
    4. Щелкните по кнопке Surface (Поверхность) на панели инструментов внизу или нажмите клавишу Q. Откроется диалоговое окно Change Surface (Изменить поверхность).
    5. В поле Name (Имя) введите Pupil.
    6. Чтобы создать поверхность Pupil с параметрами, установленными в диалоговом окне по умолчанию, щелкните по кнопке ОК.
    7. Щелкните по полигонам в центре сферы, чтобы отменить их выделение (Рисунок 12.5).



    Используя указанный по умолчанию тип проекции Planar расположите изображение вдоль оси поверхности

    Рисунок 12.36. Используя указанный по умолчанию тип проекции Planar, расположите изображение вдоль оси поверхности


    Используя указанный по умолчанию тип проекции Planar расположите изображение вдоль оси поверхности
    7. Чтобы указать ось, по которой будет направлена текстура, нажмите кнопку Texture Axis (Ось текстуры). Для поверхности Iris можно оставить ось, указанную по умолчанию, то есть ось Z (Рисунок 12.37).



    Из выпадающего меню Add Layer выберите пункт Gradient

    Рисунок 12.59. Из выпадающего меню Add Layer выберите пункт Gradient


    Из выпадающего меню Add Layer выберите пункт Gradient
    8. Выполните шаги 3-6 процедуры «Создание градиента», чтобы создать переход от белого цвета к красному.
    9. Из выпадающего меню Input Parameter (Входной параметр) выберите пункт Previous Layer (Предыдущий слой), чтобы использовать диапазон цветов, определяемый процедурной текстурой Marble.
    10. Чтобы добавить третий цвет к градиенту, щелкните в центре полосы предварительного просмотра. Появится новый цвет. 11. При помощи каталога цветов выберите белый цвет для этого маркера (Рисунок 12.60).



    Из выпадающего меню Paste выберите пункт Replace Current

    Рисунок 12.66. Из выпадающего меню Paste выберите пункт Replace Current


    Из выпадающего меню Paste выберите пункт Replace Current
    8. В поле Texture Value (Значение текстуры) введите 500 (Рисунок 12.67) и щелкните по кнопке Use Texture (Применить текстуру), чтобы закрыть окно Texture Editor.



    Из выпадающего меню Procedural Type выберите пункт Crumple

    Рисунок 12.44. Из выпадающего меню Procedural Type выберите пункт Crumple


    Из выпадающего меню Procedural Type выберите пункт Crumple
    7. В поле Texture Value (Значение текстуры) введите значение 200, в поле Frequencies (Частоты) - 4, а в поле Small Power - 0.75 (Рисунок 12.45).



    Из выпадающего меню Rendering

    Рисунок 12.76. Нажмите клавишу F9, чтобы добавить получившееся изображение и специальные данные в Viper


    Из выпадающего меню Rendering
    4. Щелкните по кнопке Surface Editor (Редактор поверхностей) или нажмите клавиши F5. Откроется окно Surface Editor.
    5. Нажмите кнопку Viper на панели инструментов. Откроется окно Viper (Рисунок 12.77).



    Из выпадающего меню Target Item расположенного в окне Motion Options выберите пункт Eyeball

    Рисунок 12.21. Из выпадающего меню Target Item, расположенного в окне Motion Options, выберите пункт Eyeball

    Из выпадающего меню Target Item расположенного в окне Motion Options выберите пункт Eyeball
    6. Щелкните по кнопке Surface Editor (Редактор поверхности) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor.
    7. Перейдите на вкладку Items (Элементы), затем щелкните по кнопке Move (Переместить) на панели инструментов и переместите камеру в такое положение, чтобы вы могли видеть и объект Eyeball, и окно Surface Editor.
    8. Из выпадающего меню File (Файл) выберите пункты Save -> Save As (Сохранить -> Сохранить как) или нажмите клавишу S. Откроется диалоговое окно Save Scene As (Сохранить сцену как).
    9. Назовите сцену Eyeball_setup.lws и щелкните по кнопке ОК. Итак, вы настроили рабочую область. Теперь можно переходить непосредственно к настройке параметров поверхности. Прежде всего следует определить ее цвет. Затем добавить немного свечения, чтобы имитировать влажную поверхность глазного яблока. И наконец, сгладить неровности. Изменение цвета поверхности
    1. Настройте рабочую область, выполнив процедуру «Настройка Surface Editor». Первая поверхность объекта должна быть уже выделена в списке поверхностей (если нет, то щелкните по строке списка с именем Eyeball).
    2. В поле Color (Цвет) щелкните по Красному компоненту и, перемещая мышь, установите его значение равным 255 (Рисунок 12.22).

    Изменяя значение параметра Refraction

    Рисунок 12.13. Изменяя значение параметра Refraction index, вы определяете, как свет будет проходить через поверхность. В данном случае оно составляет 0,75


    Изменяя значение параметра Refraction
    Translucency (Полупрозрачность). Здесь указывается, как лучи будут проходить через прозрачную поверхность. В качестве примера рассмотрим шторку. Свет лампы проходит через штору, при этом передаются все цвета и тени, а на поверхности появляется силуэт (Рисунок 12.14). Данный параметр незаменим при имитации тонких материалов, например, кожи, мембран, торшеров, занавесок и т.п.;



    Как только вы обновите изображение созданный вами глаз нальется кровью

    Рисунок 12.64. Как только вы обновите изображение, созданный вами глаз нальется кровью

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

    Если вы работаете со сложной текстурой, имеющей несколько слоев, то для каждого слоя необходимо определить либо параметр Layer Opacity (Непрозрачность слоя), либо применить более сложные методы на - стройки, например, использовать альфа-каналы, режимы смешивания и градиенты

    Чтобы изменить порядок слоев в текстуре, в списке слоев щелкните по интересующему вас слою и перетащите в нужное место.
    И наконец, где вы видели глаз с плоскими капиллярами? Необходимо сделать их выпуклыми, чтобы модель стала еще более реалистичной. Добавьте ту же самую текстуру Marble в эффект Bump (Вдавливание). Эти текстуры должны быть одинаковыми, чтобы эффект отобразился корректно.

    Каждый из атрибутов поверхности можно настроить несколькими способами

    Рисунок 12.17. Каждый из атрибутов поверхности можно настроить несколькими способами


    Каждый из атрибутов поверхности можно настроить несколькими способами
    Value (Значение). Здесь указывается либо абсолютное, либо относительное значение. Для большинства атрибутов вкладки Basic (Основные) эта величина определяет степень проявления того или иного свойства. Чтобы изменить значение, следует ввести его в числовом поле или установить с помощью стрелок, расположенных рядом с числовым полем. Практически всем параметрам допускается присваивать превышающие (более 100%) значения или даже отрицательные;

    Envelopes(E) (Зависимости). При щелчке по этой кнопке открывается окно Graph Editor (Редактор кривых), в котором можно задать изменение того или иного атрибута с течением времени;

    Textures (T) (Текстуры). Данная кнопка открывает окно Texture Editor (Редактор текстур). Этот инструмент позволяет совершенствовать поверхности, добавлять изображения, текстуры, градиенты и т.д.



    Копирование текстуры

    Копирование текстуры

    1. Выполните шаги 1-3 раздела «Добавление процедурной текстуры».
    2. Щелкните по кнопке Т, расположенной справа от поля атрибута Color (Цвет).
    3. Откроется окно Texture Editor. В списке щелкните по имени текстуры Marble.
    4. Из выпадающего меню Сору (Копировать) выберите пункт Current Layer (Текущий слой) - Рисунок 12.65.



    Настройка параметров поверхности

    Настройка параметров поверхности

    Для определения большей части перечисленных атрибутов используются стандартные средства управления (Рисунок 12.17):



    Настройка Surface Editor

    1. Загрузите Eyeball.lwo в Layout. 2. Из выпадающего меню вида в окне проекции (Рисунок 12.19) выберите пункт Camera View (Вид камеры) или нажмите клавишу 6.



    Обновите изображение Заметьте

    Рисунок 12.56. Обновите изображение. Заметьте, что цвет поверхности изменился согласно заданному градиенту



    Одновременное изменение атрибутов нескольких поверхностей

    Одновременное изменение атрибутов нескольких поверхностей

    1. Загрузите файл Eyeball_setup.lws в Layout.
    2. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor (Редактор поверхностей).
    3. В списке поверхностей, удерживая нажатой клавишу Shift или Ctrl, щелкните по каждой поверхности, чтобы выделить их (Рисунок 12.25).
    4. Отметьте галочкой опцию Smoothing (Сглаживание) - Рисунок 12.26.



    Окно Texture Editor позволяет

    Рисунок 12.32. Окно Texture Editor позволяет детализировать атрибуты поверхности

    Как и в Surface Editor (Редактор поверхностей), в Texture Editor (Редактор текстур) находятся все основные элементы управления и атрибуты, необходимые для работы с текстурами. Здесь есть практически все, что может понадобиться для создания даже очень сложных текстур (Рисунок 12.32). Одна из наиболее мощных возможностей Texture Editor заключается в одновременном наложении нескольких текстур (с использованием слоев) и получении таким образом новой текстуры. Работа со слоями осуществляется в левой половине окна Texture Editor. Элементы управления различными типами эффектов расположены в правой половине.
    В верхней части окна находятся кнопки настройки слоев. При помощи этих опций можно определить не только тип слоя, но и влияние текстуры на отдельные атрибуты поверхности. Чем прозрачнее становится слой, тем лучше видны слои, расположенные за ним. Параметр Layer Opacity (Непрозрачность слоя) может изменяться не только в диапазоне от 0 до 100%, но также принимать и превышающие 100%, и отрицательные значения.
    При изменении типа текстуры меняется и набор элементов управления в окне Texture Editor. Некоторые из текстур имеют огромное количество параметров, другие - всего несколько, что делает их использование очень простым. Независимо от типа текстуры в нижней части окна отображаются элементы управления параметрами текстур, а также настройки проецирования текстур на поверхности, их размер и положение в мировом или локальном пространстве.
    Первый тип текстур, который мы рассмотрим, - это image maps (карты изображений). Он самый простой и используется наиболее часто.



    Окно Viper можно использовать

    Рисунок 12.77. Окно Viper можно использовать для предварительного просмотра поверхностей, объемного света и HyperVoxels


    Окно Viper можно использовать
    6. Щелкните по кнопке Render (Просчитать), расположенной в окне Viper, чтобы применить переданные из Layout данные (шаг 3).
    7. В окне Viper щелкните по текстуре Iris (Рисунок 12.78). Теперь она выделена в окне Surface Editor (Рисунок 12.79).



    Основные атрибуты поверхности

    Основные атрибуты поверхности

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



    Отмените выделение полигонов в центре сферы

    Рисунок 12.5. Отмените выделение полигонов в центре сферы


    Отмените выделение полигонов в центре сферы
    8. Выполните шаги 4-6, чтобы создать еще одну поверхность. Назовите ее Iris.
    9. Чтобы сохранить объект, нажмите клавишу S или из выпадающего меню File выберите пункт Save Object.





    Параметр Smooth определяет степень сглаживания поверхности

    Рисунок 12.16. Параметр Smooth определяет степень сглаживания поверхности


    Параметр Smooth определяет степень сглаживания поверхности
    Double Sided (Двусторонний). По умолчанию полигон имеет только одну сторону (нормаль указывает на активную сторону). Это означает, что какие-либо инструменты и текстуры можно применить только к одной стороне (подробнее читайте в главе 4). Если отметить галочкой данную опцию, LightWave будет рассматривать полигоны как двусторонние объекты. Это означает, что все настройки, произведенные для одной стороны, будут автоматически применены и к другой.



    Параметр вдавливания можно использовать для детализации поверхности

    Рисунок 12.15. Параметр вдавливания можно использовать для детализации поверхности


    Параметр вдавливания можно использовать для детализации поверхности
    Smoothing (Сглаживание), Smoothing Threshold (Порог сглаживания). С помощью этого эффекта можно сгладить грани между полигонами (Рисунок 12.16). Величина угла между двумя соседними полигонами сравнивается со значением, установленным в Smoothing Threshold. Если она не превосходит данное значение, то LightWave сгладит границу между этими гранями. Как и при использовании Bump maps, при этом не производятся дополнительные построения, и исходная геометрия не изменяется;



    Параметру Layer Type присвойте значение Procedural Texture

    Рисунок 12.43. Параметру Layer Type присвойте значение Procedural Texture


    Параметру Layer Type присвойте значение Procedural Texture
    6. Из выпадающего меню Procedural Type (Тип процедурной текстуры) выберите пункт Crumple (Рисунок 12.44).



    Перейдите на вкладку Falloff чтобы получить доступ к настройкам затухания текстуры

    Рисунок 12.63. Перейдите на вкладку Falloff, чтобы получить доступ к настройкам затухания текстуры


    Перейдите на вкладку Falloff чтобы получить доступ к настройкам затухания текстуры
    15. В поле Z введите 100. Таким образом вы активируете эффект Texture Falloff (Затухание текстуры), и текстура на лицевой стороне объекта будет менее заметна, чем на задней.
    16. Закройте редактор, щелкнув по кнопке Use Texture (Применить текстуру).
    17. Чтобы сохранить новые настройки атрибутов поверхности, из выпадающего меню File (Файл) выберите пункты Save ->Save Current Object (Сохранить -> Сохранить текущий объект).
    18. Обновите изображение, нажав клавишу F9 (Рисунок 12.64).



    Переключите Layout в режим Camera щелкнув по кнопке расположенной в нижней части экрана

    Рисунок 12.20. Переключите Layout в режим Camera, щелкнув по кнопке, расположенной в нижней части экрана


    Переключите Layout в режим Camera щелкнув по кнопке расположенной в нижней части экрана
    4. Щелкните по кнопке Window, затем найдите пункт Motion Options (Настройки движения) на панели инструментов или нажмите клавишу М. Откроется диалоговое окно Motion Options.
    5. Из выпадающего меню Target Item (Целевой элемент) выберите пункт Eyeball (Рисунок 12.21). Направив камеру на Eyeball, вы всегда сможете наблюдать этот объект в окне проекции.



    Переместите маркер цвета ровно

    Рисунок 12.61. Переместите маркер цвета ровно в центр полосы предварительного просмотра градиента, введя в поле Parameter значение 0.5


    Переместите маркер цвета ровно
    13.В поле параметра Layer Opacity (Непрозрачность слоя) введите значение 80%, чтобы снизить влияние градиента (Рисунок 12.62).



    Предварительные установки

    Предварительные установки

    При помощи окна Surface Preset (Предустановки поверхности) можно сохранять и загружать поверхности, а также организовывать их хранение в базе данных. Время от времени необходимо сохранять различные поверхности на жестком диске, чтобы они всегда были под рукой.



    Предварительный просмотр позволяет оценить результат

    Рисунок 12.24. Предварительный просмотр позволяет оценить результат

    Предварительный просмотр позволяет оценить результат
    9. Из выпадающего меню File (Файл) выберите пункты Save -> Save Object (Сохранить -> Сохранить объект). На данном шаге объект сохраняется с новой информацией о его поверхностях. Если нажать клавишу S, то сохранится только сцена, при этом информация о поверхностях будет утеряна. Сортировать список поверхностей можно несколькими способами. Чтобы изменить порядок следования поверхностей в списке, а также их отношения с объектами, используйте элементы управления Edit By (Редактировать по), Filter By (Фильтровать по) и Pattern (Шаблон), которые расположены в левом верхнем углу Surface Editor. Это особенно полезно, если в сцене задействовано много поверхностей.
    После определения цветов поверхностей можно задать параметры сглаживания и имитации влажности. Так как это необходимо сделать для всех трех поверхностей объекта, нужно выделить их в списке поверхностей.

    При уменьшении значения параметра Layer Opacity создаваемый эффект проявляется вменьшей степени

    Рисунок 12.47. При уменьшении значения параметра Layer Opacity создаваемый эффект проявляется вменьшей степени

    При уменьшении значения параметра Layer Opacity создаваемый эффект проявляется вменьшей степени
    10. Из выпадающего меню File (Файл) выберите пункты Save -> Save Current Object (Сохранить -> Сохранить текущий объект), чтобы сохранить изменения атрибутов объекта.
    11. Обновите изображение, нажав клавишу F9. Многие процедурные текстуры являются либо хорошей основой, либо дополнением уже существующих. Профессиональный художник вряд ли будет использовать процедурные текстуры отдельно от других.

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

    Применение шэйдера

    Применение шэйдера

    1. Загрузите объект Eyeball_setup.lws в Layout.
    2. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor.
    3. В списке поверхностей щелкните по пункту Eyeball.
    4. Чтобы получить доступ к настройкам шэйдера, перейдите на вкладку Shaders (Шэйдеры) - Рисунок 12.71.



    Присвойте параметру Input Parameter значение Slope

    Рисунок 12.55. Присвойте параметру Input Parameter значение Slope


    Присвойте параметру Input Parameter значение Slope
    8. Обновите изображение, нажав клавишу F9 (Рисунок 12.56). Нет необходимости сохранять объект, поскольку эти изменения нам больше не пригодятся.



    Присвойте параметру Layer Opacity значение 80%

    Рисунок 12.62. Присвойте параметру Layer Opacity значение 80%


    Присвойте параметру Layer Opacity значение 80%
    14. Перейдите на вкладку Falloff (Затухание), чтобы получить доступ к новым настройкам (Рисунок 12.63).



    Присвойте параметру Layer Type значение Gradient

    Рисунок 12.50. Присвойте параметру Layer Type значение Gradient


    Присвойте параметру Layer Type значение Gradient
    4. Чтобы создать новый цвет, щелкните в любом месте окна предварительного просмотра градиента (Рисунок 12.51).



    Процедурные текстуры

    Процедурные текстуры

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



    Проекции

    Проекции

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

    Cylindrical (Цилиндрический). При использовании этого типа проекций изображение размещается вокруг объекта, как наклейка на консервной банке;

    Spherical (Сферический). При использовании этого типа проекций, как и типа Cylindrical, изображение размещается вокруг объекта, но в данном случае - вокруг сферы. На полюсах текстурное изображение сжимается, подобно карте, нанесенной на глобус;

    Cubic (Кубический). В данном случае одна и та же текстура проецируется на объект со всех шести направлений: сзади, спереди, сверху, снизу, справа и слева;

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

    UV. Это наиболее гибкий, но в то же время сложный тип текстур. Для наложения подобной текстуры объект должен иметь точечную UV-карту, созданную в Modeler (подробнее о точечных картах читайте в главе 5).



    Просчитайте изображение Обратите внимание как текстура повлияла на канал Diffuse поверхности

    Рисунок 12.38. Просчитайте изображение. Обратите внимание, как текстура повлияла на канал Diffuse поверхности

    Просчитайте изображение Обратите внимание как текстура повлияла на канал Diffuse поверхности
    Черно-белое изображение, которое используется в качестве текстуры в данном примере, было создано в Adobe Photoshop. Вы можете заменить его любым подобным рисунком.
    Как вы видите, примененная текстура затемнила некоторые участки поверхности Iris. Такой метод создания текстур подходит для изменения любого атрибута поверхности, поддерживающего текстуры. Поскольку и для поверхностей, и для текстур в LightWave есть свои элементы управления, существуют различные способы достижения одного и того же эффекта.
    На самом деле можно создать цветное изображение, имитирующее радужную оболочку, и спроецировать его на поверхность, используя для этого атрибут Color (Цвет) вместо Diffuse (Диффузия). Результат будет таким же. Однако описанный ранее метод более гибок. Изменяя параметр текстуры Layer Opacity (Непрозрачность слоя), можно увеличивать или уменьшать степень проявления эффекта. Если вы создадите изображение для радужной оболочки и спроецируете его на поверхность, вам придется возвращаться к работе с графическим редактором, чтобы подкорректировать степень проявления эффекта. Всегда нужно стремиться к минимуму временных потерь.
    Профессиональные 3D-художники могут создавать уникальные текстуры, которые подходят для решения огромного круга задач. Но не все имеют богатый опыт в этой области, и им часто требуется подсказка специалиста. Множество интересных возможностей предоставляют procedural textures (процедурные текстуры).

    Простой градиент создает переход

    1. Выполните шаги 1-3 процедуры «Добавление процедурной текстуры».
    2. Щелкните по кнопке Т, расположенной справа от поля атрибута Color (Цвет).
    3. Откроется окно Texture Editor (Редактор текстур). Из выпадающего меню Layer Type (Тип слоя) выберите пункт Gradient (Градиент) - Рисунок 12.50. Предварительный просмотр градиента отображается в виде широкой вертикальной полосы. В горизонтальном окне вы увидите уже определенные значения (или цвета). Для формирования градиента необходимо указать как минимум два цвета.



    Работа с поверхностями

    Работа с поверхностями


    С помощью системного цветоподборщика определите цвет поверхности

    Рисунок 12.23. С помощью системного цветоподборщика определите цвет поверхности


    С помощью системного цветоподборщика определите цвет поверхности
    6. Выберите черный цвет и щелкните по кнопке ОК, чтобы закрыть окно цветоподборщика.
    7. Выполните шаги 5 и 6 для поверхности Iris, выбрав один из оттенков зеленого.
    8. Обновите изображение, нажав клавишу F9 (Рисунок 12.24).



    Сфера расположенная слева создана

    Рисунок 12.9. Сфера расположенная слева, создана с настройками по умолчанию, а у той, что справа, параметр Specularity равен 100%. Обратите внимание на блик


    Сфера расположенная слева создана
    Glossiness (Глянец). Здесь указывается размер блика на зеркальной поверхности: чем больше Значение параметра, тем меньше размер блика (Рисунок 12.10). Чтобы использовать эту настройку, сначала нужно определить параметр зеркальности;



    Сфера расположенная слева создана

    Рисунок 12.12. Сфера расположенная слева, создана с настройками по умолчанию, а у той, что справа, параметр Transparency равен 50%


    Сфера расположенная слева создана
    Refraction index (Показатель преломления). Луч света при прохождении через полупрозрачные поверхности (например, воду или стекло) искривляется (Рисунок 12.13). Данный параметр определяет степень искажения, возникающего при использовании этого эффекта. Для воды значение этого коэффициента составляет 1.333, для стекла - 1.5, для воздуха - 1.0003. Необходимо отметить, что преломление будет заметно лишь при активной опции Ray-Traced Refraction (Трассировка преломления лучей). Более подробно параметр описан в справочном руководстве пользователя LightWave 3D;



    Сфера слева имеет параметр Reflection

    Рисунок 12.11. Сфера слева имеет параметр Reflection по умолчанию,а справа - 75 %, поэтому она отражает окружающие элементы


    Сфера слева имеет параметр Reflection
    Transparency (Прозрачность). С помощью этого параметра создаются прозрачные поверхности, сквозь которые можно увидеть элементы заднего плана (Рисунок 12.12). Используйте данную настройку для имитации стекла, жидкостей и газа;



    Щелкните мышью в окне предварительного просмотра градиента чтобы создать новый цвет

    Рисунок 12.51. Щелкните мышью в окне предварительного просмотра градиента, чтобы создать новый цвет


    Щелкните мышью в окне предварительного просмотра градиента чтобы создать новый цвет
    5. Переместите вниз маркер, расположенный в окне предварительного просмотра (Рисунок 12.52). Или Введите в поле Parameter (Параметр) значение, соответствующее нижней части градиента,- 1.0 (Рисунок 12.53).



    Щелкните по кнопке Е чтобы анимировать

    Рисунок 12.70. С помощью Graph Editor вы можете создавать анимацию, изменяя параметры поверхности

    Щелкните по кнопке Е чтобы анимировать
    Параметры поверхности, расположенные на вкладках Advanced (Дополнительно) и Environmental (Окружение), позволяют создать весьма специфичные эффекты. Если вы не поэкспериментируете с этими настройками, то может пройти достаточно много времени, прежде чем вы полностью освоите все возможности Lightwave. Рассмотрение данных атрибутов выходит за рамки этой книги, однако они очень подробно описаны в справочном руководстве пользователя Lightwave.

    Тем не менее следует изложить основные сведения. На вкладке Advanced вид поверхности настраивается через альфа-каналы (alpha channels) и специальные буферы. Кроме того, здесь вы можете активировать точечные цветовые карты (vertex colors), эффекты свечения и различные световые спецэффекты. На вкладке Environmental находятся настройки отражения света от поверхности. Вы можете поэкспериментировать с методом трассировки лучей, сферическими картами, фоном или комбинировать эти возможности.

    Шэйдеры

    Шэйдеры

    Последняя еще не изученная вами вкладка Texture Editor называется Shader (Шэйдер). Шэйдер - это компонент программы, который расширяет возможности LightWave по созданию спецэффектов поверхностей. С его помощью можно добиться совершенно неожиданных и интересных эффектов, начиная от придания поверхности «мультяшности» и заканчивая расчетом сложного освещения. В LightWave включено несколько шэйдеров, остальные можно найти в Internet или приобрести у разработчиков программы. Некоторые из этих инструментов обладают невероятными возможностями. В следующем примере к поверхности будет применен один из самых интересных шэйдеров, который сделает ее «мультяшной»!



    Слои текстур Чаще всего градиенты

    Сочетание градиента и процедурной текстуры

    1. Выполните шаги 1-3 раздела «Добавление процедурной текстуры».
    2. Щелкните по кнопке Т, расположенной справа от поля атрибута Color (Цвет).
    3. Откроется окно Texture Editor (Редактор текстур), в котором будет выделен первый (и пока единственный) слой. Извыпадающего меню Layer Type (Тип слоя) выберите пункт Procedural Texture (Процедурная текстура).
    4. Из выпадающего меню Procedural (Процедурная текстура) выберите пункт Marble (Мрамор).
    5. В полях параметров процедурной текстуры Marble введите следующие значения (Рисунок 12.57): - Frequencies (Частоты): 5;

    - Turbulence (Хаотичность): 1.25;

    - Vein Spacing (Расстояние между прожилками): 0.75;

    - Vein Sharpness (Острота прожилок): 4.0. 6. Перейдите на вкладку Scale (Масштаб) и измените значения в полях X, Y и Z на 150 mm (Рисунок 12.58). Такие настройки позволяют получить лучший эффект.



    Создание поверхностей в Modeler

    Создание поверхностей в Modeler

    Поверхность- это совокупность многоугольников, имеющих одинаковые атрибуты. Такие группы, обозначенные уникальным именем, со всеми значениями параметров сохраняются в файле объекта. Прежде чем начать работу с поверхностями, необходимо определить, какие многоугольники объединяются в группы и как их следует называть.
    Вы, 'вероятно, заметили, что в Layout нет способа выделения точек и многоугольников. Это очень неудобно при создании поверхностей, поскольку требуется определить, какой группе принадлежат те или иные полигоны. Однако сделать это невозможно, так как нельзя выделить геометрию. Чтобы присвоить поверхности имя, указать распределение полигонов по группам и настроить основные атрибуты, вам придется перейти в Modeler.
    В LightWave объект может иметь одну поверхность или целую группу поверхностей. Но существует и некоторое ограничение: у полигона может быть только одна назначенная ему поверхность. Число поверхностей объекта зависит от количества составляющих его различных материалов. Можно создать высокодетальную модель, используя великое множество поверхностей с различными настройками, или простую модель, состоящую всего из нескольких поверхностей. Все зависит от стиля и назначения анимации.
    В описываемых далее примерах будет смоделирована сфера, похожая на глазное яблоко. Создайте простую сферу- Рисунок 12.1. (Подробнее о создании сферы читайте в главах 3 и 4). Сохраните объект в файле Eyeball.lwo.
    Затем присвойте группам полигонов имена, соответствующие различным частям глазного яблока: белок (the white of the eye), зрачок (pupil) и радужная оболочка (iris). Таким образом, вы как бы наложите на полигоны первые слои краски, то есть каждой группе будет соответствовать отдельная текстура.



    Создание поверхности из группы полигонов

    Создание поверхности из группы полигонов

    1. Загрузите объект Eyeball.lwo в Modeler.
    2. Щелкните по кнопке Polygons (Полигоны) на нижней панели инструментов (Рисунок 12.3) или нажмите клавиши Ctrl+H. Modeler перейдет в режим выделения полигонов.



    Создание текстуры

    Создание текстуры

    Текстурирование - это еще один из способов редактирования поверхности. При определении параметров поверхности вы задаете ее геометрические и физические свойства. Однако без наложения текстур не обойтись, если требуется имитировать материал, из которого создана поверхность (камень, дерево, песок и т.д.). Определяя карту вдавливания объекта, вы просто задаете его фактуру, шероховатости, царапины и т.д. А применение текстур переводит поверхности на более высокий уровень визуализации.
    До сих пор поверхности, которые вы моделировали, были предельно просты, поскольку вы только начали изучать основы работы с ними в LightWave. Теперь можно приступить к созданию более сложных элементов.
    Основным недостатком объектов виртуального мира является то, что они идеальны, то есть лишены каких-либо деталей, присущих их реальным прототипам. Их поверхность не имеет шероховатостей и безукоризненно окрашена (Рисунок 12.30). Чтобы объекты выглядели более естественно, необходимо добавить несколько штрихов, наложить текстуры (Рисунок 12.31).



    Создание зависимости для атрибута поверхности

    Создание зависимости для атрибута поверхности

    1. Загрузите объект Eyeball_setup.lws в Layout.
    2. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor.
    3. В списке поверхностей щелкните по строке с именем Eyeball.
    4. Щелкните по кнопке Е (Зависимость), расположенной справа от поля атрибута Bump (Вдавливание) - Рисунок 12.69.



    Surface Editor В окне Surface

    1 - Surface management (Элементы управления поверхностями). Здесь отображается количество объектов и поверхностей, загруженных в сцену. В этой области расположены кнопки, предназначенные для загрузки и сохранения готовых поверхностей.

    2 - Surface Preview (Предварительный просмотр поверхности). В этом окне отображается выделенная поверхность, а также статическая информация о ней.

    3 - Surface list (Список поверхностей). В этом списке отображаются имена поверхностей всех объектов сцены. Чтобы открыть список поверхностей объекта, щелкните по стрелке, расположенной рядом с его именем.

    4 - Surface properties tabs (Вкладки свойств поверхности).. Каждая из этих вкладок содержит элементы управления, определяющие параметры поверхности.




    Теперь нужно раскрасить поверхности

    Рисунок 12.6. Теперь нужно раскрасить поверхности создаваемой модели

    В ранее рассмотренных примерах на поверхности создаваемого глазного яблока накладывались обычные серые, даже скучные текстуры (Рисунок 12.6). Вряд ли нужно говорить, что глаза персонажа ни в. коем случае не должны выглядеть так, как будто они нарисованы. Поэтому необходимо изменить ряд параметров поверхностей, чтобы объект стал, больше похож на настоящий глаз. Если вашей задачей не является создание высокореалистичной модели, то достаточно произвести лишь несколько настроек, воспользовавшись окном Surface Editor (Редактор поверхностей).



    Установите значение красного компонента равным

    Рисунок 12.22. Установите значение красного компонента равным 255

    Установите значение красного компонента равным
    3. Выполните шаг 2 для синего и зеленого компонентов. В сочетании они дадут белый цвет.
    4. В списке поверхностей выберите пункт Pupil.
    5. Щелкните по кнопке каталога цветов, расположенной справа от поля компонентов. Откроется системный цветоподборщик (Рисунок 12.23).

    В диалоговом окне Change Surface

    Рисунок 12.2. В диалоговом окне Change Surface вы можете определить соответствие поверхность-полигон. Присвойте поверхности имя Eyeball

    В диалоговом окне Change Surface
    4. Щелкните по кнопке ОК, чтобы создать поверхность и применить параметры, установленные по умолчанию в диалоговом окне.
    5. Нажмите клавишу S или из выпадающего меню File (Файл) выберите пункт Save Objects (Сохранить объекты). Если в окне проекции ничего не выделено, инструмент Surface (Поверхность) применяется ко всему слою, как и многие инструменты Modeler. Так как вы не выделили полигоны объекта, поверхность Eyeball будет назначена всем полигонам. А поскольку никакие значения в диалоговом окне не менялись, то вы, вероятно, не заметите никаких изменений. Чтобы настроить начальный вид поверхности, воспользуйтесь диалоговым окном Change Surface.
    Теперь нужно определить остальные поверхности создаваемого объекта: зрачок и радужную оболочку.

    В LightWave включены 32 наиболее

    1. Загрузите объект Eyeball_setup.lws в Layout.
    2. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor.
    3. В списке поверхностей выберите пункт Eyeball.
    4. Щелкните по кнопке Т, расположенной справа от поля Diffuse (Диффузия).
    5. В окне Texture Editor (Редактор текстур) из выпадающего меню Layer Type (Тип слоя) выберите пункт Procedural Texture (Процедурная текстура) - Рисунок 12.43.



    В окне предварительного просмотра отображаются вносимые изменения

    Рисунок 12.46. В окне предварительного просмотра отображаются вносимые изменения


    В окне предварительного просмотра отображаются вносимые изменения
    9. В поле Layer Opacity (Непрозрачность слоя) введите значение 50. Щелкните по кнопке Use Texture (Применить текстуру), чтобы закрыть окно Texture Editor. Заметьте, что степень проявления созданного эффекта уменьшилась (Рисунок 12.47).



    В окне предварительного просмотра

    Рисунок 12.18. В окне предварительного просмотра отображается редактируемая поверхность

    В Surface Editor есть несколько простых способов определить параметры поверхности, при этом наблюдая за вносимыми изменениями. Над элементами управления расположено окно предварительного просмотра (Рисунок 12.18). В нем изображена сфера (по желанию ее можно заменить кубом), параметры поверхности которой совпадают с параметрами редактируемой вами поверхности. Но на самом деле окно не дает полного представления о том, как будет выглядеть поверхность после визуализации, зато оно позволяет правильно оценить целесообразность использования того или иного эффекта в сцене. Второй способ сразу увидеть результат - использовать OpenGL Viewport (Окно проекции OpenGL). При настройке атрибутов поверхности можно непосредственно наблюдать за изменениями. Но из-за существующих ограничений OpenGL вы не увидите никакого эффекта при настройке параметров Reflection (Отражение), Refraction index (Коэффициент преломления), Translucency (Полупрозрачность) и Bump mapping (Карта вдавливания). Третий способ предварительного просмотра - использование окна Viper, о нем будет рассказано несколько позже.
    Теперь перейдем к декорированию поверхностей.



    Viper

    Viper

    Инструмент Versatile Interactive Previewing Renderer, или Viper (Адаптивный интерактивный предварительный просмотр), можно использовать для быстрого создания предварительного просмотра больших анимаций, а также для обзора поверхностей и созданных спецэффектов. Viper не просчитывает кадр заново, он автоматически определяет, какая часть изображения была изменена, и обновляет только ее. Это позволяет значительно сократить время, затрачиваемое на генерацию предварительного просмотра сложной сцены.
    В действительности окно Viper выполняет две функции. Во-первых, позволяет сделать процесс редактирования поверхностей и эффектов более наглядным, и, во-вторых, в нем можно быстро выделять поверхности.



    Введите эти значения в полях параметров

    Рисунок 12.57. Введите эти значения в полях параметров процедурной текстуры Marble Введите эти значения в полях параметров
    Рисунок 12.58. На вкладке Scale измените значения в полях каждой оси

    Введите эти значения в полях параметров
    7. Из выпадающего меню Add Layer (Добавить слой) выберите пункт Gradient (Градиент) - Рисунок 12.59. Это создаст дополнительный слой текстуры, который будет помещен непосредственно над слоем с текстурой Marble.

    Введите значение в поля параметров текстуры Crumple

    Рисунок 12.45. Введите значение в поля параметров текстуры Crumple


    Введите значение в поля параметров текстуры Crumple
    8. Щелкните по кнопке Automatic Sizing (Автоматическое изменение размеров), чтобы автоматически рассчитывались масштабные коэффициенты наложения текстуры. В окне предварительного просмотра вы увидите, как внесенные изменения отразились на внешнем виде поверхности (Рисунок 12.46).



    Выберите белый цвет для маркера в центре градиента

    Рисунок 12.60. Выберите белый цвет для маркера в центре градиента


    Выберите белый цвет для маркера в центре градиента
    12.В поле Parameter (Параметр) введите значение 0.5, чтобы поместить добавленный цвет в середине полосы градиента (Рисунок 12.61).



    Выберите ось вдоль которой будет

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


    Выберите ось вдоль которой будет
    8. Чтобы LightWave автоматически осуществил масштабирование изображения на поверхность, щелкните по кнопке Automatic Sizing (Автоматическое масштабирование текстуры).
    9. Чтобы закрыть окно Texture Editor, щелкните по кнопке Use Texture (Применить текстуру).
    10. Обновите изображение, щелкнув по кнопке F9 (Рисунок 12.38).
    11. Из выпадающего меню File (Файл) выберите пункты Save -> Save Object (Coхранить -> Сохранить объект).



    Загрузите изображение с жесткого диска

    Рисунок 12.35. Загрузите изображение с жесткого диска


    Загрузите изображение с жесткого диска
    6. Из выпадающего меню Projection (Проекция) выберите тип проекции. Он определяет, каким образом изображение будет размещено на поверхности. Для данного случая более всего подходит проекция типа Planar (Планарная), установленная по умолчанию (Рисунок 12.36).



    Значение параметра Glossiness сферы справа составляет 100% а слева 25%

    Рисунок 12.10. Значение параметра Glossiness сферы справа составляет 100%, а слева - 25%


    Значение параметра Glossiness сферы справа составляет 100% а слева 25%
    Reflection (Отражение). Как видно из названия этого параметра, он определяет степень отражения (Рисунок 12.11). Чем выше его значение, тем больше поверхность похожа на зеркало. Чтобы отражение появилось на поверхности, необходимо использовать метод трассировки лучей или средства вкладки Environment (Окружение);



    Значение параметра прозрачности

    Рисунок 12.14. Значение параметра прозрачности составляет 75%. Тень проходит через полигон, и на затененной поверхности шторы создается силуэт


    Значение параметра прозрачности
    Bump maps (Карты вдавливания). Используя различные текстурные методы (о них речь пойдет далее), в LightWave можно имитировать вмятины на поверхности, которые, например, образовались после удара (Рисунок 12.15). Этот параметр применяется при создании различных дефектов поверхности: ям, кратеров, потрескавшейся штукатурки и т.п. Но помните, что создаваемые таким образом эффекты являются оптическими и никак не влияют на исходную геометрию;



    Создание спецэффектов

    Анимация будет сохранена в файле

    Рисунок 13.5. Анимация будет сохранена в файле формата видео Анимация будет сохранена в файле
    Рисунок 13.6. Выберите формат видео, воспользовавшись выпадающим меню Type

    Анимация будет сохранена в файле
    6. Чтобы открыть окно выбранного формата и подобрать соответствующий кодек, щелкните по кнопке Options (Настройки).
    7. Закройте окно Render Options.
    8. Чтобы создать анимацию из указанных вами кадров, из выпадающего меню Rendering (Визуализация), расположенного на панели инструментов, выберите пункт Render Scene (Просчитать - сцену) или нажмите клавишу F10 (Рисунок 13.7). LightWave просчитает анимацию и сохранит ее в указанном вами файле.

    Чем дальше объект находится от камеры тем тоньше становятся границы

    Рисунок 13.29. Чем дальше объект находится от камеры, тем тоньше становятся границы


    Чем дальше объект находится от камеры тем тоньше становятся границы
    Nominal Distance (Номинальное расстояние). Определяет расстояние, на котором границы не будут масштабированы.



    Для этого объекта значение параметра Polygon Size составляет 85%

    Рисунок 13.24. Для этого объекта значение параметра Polygon Size составляет 85%


    Для этого объекта значение параметра Polygon Size составляет 85%
    Particle/Line Thickness (Толщина частиц/линий). Определяет размер точек, отрезков и частиц (см. Рисунок 13.25);



    Дважды щелкните по пункту Image World

    Рисунок 13.37. Дважды щелкните по пункту Image World

    Дважды щелкните по пункту Image World
    16. Из выпадающего меню Light Probe (Источник света) выберите пункт building_probe.hdr.
    17. В поле Brightness (Яркость) введите значение 35 и нажмите клавишу Enter.
    18. Чтобы обновить сцену, снова нажмите на клавишу F9. Теперь все объекты сцены будут освещены изображением building_probe.hdr (Рисунок 13.38). Полученные вами результаты могут отличаться от наших. Попробуйте поэкспериментировать с различными настройками и создать новые изображения, чтобы понять, как проявляется действие той или иной настройки.
    Дважды щелкните по пункту Image World
    Рисунок 13.38. Теперь объекты освещены HDRI-картой

    Если вы хотите проследить за процессом формирования изображения активируйте опцию Show Rendering

    Рисунок 13.3. Если вы хотите проследить за процессом формирования изображения, активируйте опцию Show Rendering


    Если вы хотите проследить за процессом формирования изображения активируйте опцию Show Rendering
    8. Снимите галочку в окошке метки Enable Viper (Активировать Viper). Если оставить окно Viper активным, потребуется дополнительное время для обработки хранящейся в нем информации. Теперь необходимо определить имя файла, в который будет записываться анимация, и место его размещения. Вы можете сохранить анимацию в файле видео (например, формата QuickTime или Video for Windows) или создать только один кадр или серию кадров. Несомненно, правильный выбор определяется средством, при помощи которого будет воспроизводиться ролик, и необходимостью импортировать изображение в другие приложения для дальнейшей обработки.



    Image World использует HDRIизображение для замещения фона в Layout

    Рисунок 13.36. Image World использует HDRI-изображение для замещения фона в Layout


    Image World использует HDRIизображение для замещения фона в Layout
    15. Чтобы получить доступ к настройкам Image World, дважды щелкните по одноименному пункту в списке окружения (Рисунок 13.37).



    Исключение источников света

    Исключение источников света

    Вы знаете, как ввести в сцену несколько источников света. А можно ли сделать так, чтобы объект не освещался определенными источниками? Оказывается, можно. Это очень мощная возможность LightWave, позволяющая использовать отдельные источники света для освещения различных участков сцены.
    Вы уже научились использовать список исключения объектов окна Light Properties (Свойства источника света), чтобы выводить элементы из расчета при освещении определенным источником света (см. главу 8). Однако если из расчета требуется исключить один объект при освещении несколькими источниками, гораздо проще использовать список исключения источников света, который расположен в окне Object Properties (Свойства объекта). Результат будет точно таким же, но в некоторых случаях последний метод предпочтительнее.



    Исключение объекта из списка освещения

    Исключение объекта из списка освещения

    1. Чтобы открыть и загрузить объект в Layout, нажмите клавишу + (Плюс).
    2. Щелкните по кнопке Properties ( Свойства) или нажмите клавишу Р. Откроется окно Object Properties.
    3. Перейдите на вкладку Lights (Источники света) и щелкните в столбце Exclude (Исключить) напротив источника света, созданного по умолчанию (Рисунок 13.30). Объект больше не освещается (Рисунок 13.31). Исключение объекта из списка освещения
    Рисунок 13.30. Это список исключения источников света окна Object Properties. Чтобы источник света игнорировал текущий элемент сцены, щелкните в столбце Exclude Исключение объекта из списка освещения
    Рисунок 13.31.

    Использование метода трассировки лучей

    Использование метода трассировки лучей

    В LightWave у метода трассировки лучей есть несколько параметров, позволяющих оптимизировать сцену. Допускается настроить как все параметры, так и некоторые в зависимости от желаемого результата. Но учтите, чем больше настроек вы выполните, тем больше времени потребуется для создания изображения. Чтобы сократить время формирования изображения, придется использовать обходные пути, то есть создавать аналогичные эффекты другими способами. Если вы хотите узнать об этом подробнее, посетите указанные ранее Web-сайты. Чтобы получить доступ к настройкам метода трассировки лучей, перейдите на вкладку Rendering в окне Render Options (Рисунок 13.19):



    Использование режима Quickshade

    Использование режима Quickshade

    1. Выполните шаги 1-3 процедуры «Использование режима Wireframe». 2. Перейдите на вкладку Rendering (Визуализация), расположенную в окне Rendering Options (Настройки просчета), и из выпадающего меню Render Mode выберите пункт Quickshade (Рисунок 13.15).



    Использование режима Realistic

    1. Выполните шаги 1-3 процедуры «Использование режима Wireframe». 2. Перейдите на вкладку Rendering и из выпадающего меню Render Mode выберите пункт Realistic (Рисунок 13.17).



    Используйте редактор изображений чтобы загрузить HDRIизображение в Layout

    Рисунок 13.34. Используйте редактор изображений, чтобы загрузить HDRI-изображение в Layout


    Используйте редактор изображений чтобы загрузить HDRIизображение в Layout
    12. Щелкните по кнопке Load (Загрузить), затем дважды щелкните по файлу building_probe.hdr, чтобы загрузить изображение в Layout.
    13. Перейдите на вкладку Scene (Сцена). Щелкните по кнопке Backdrop (Фон) на панели инструментов или нажмите клавиши Ctrl+F5. Откроется окно Backdrop Effects (Фоновые эффекты) - Рисунок 13.35.



    Из меню режимов формирования изображения выберите пункт Realistic

    Рисунок 13.17. Из меню режимов формирования изображения выберите пункт Realistic

    Из меню режимов формирования изображения выберите пункт Realistic
    3. Из выпадающего меню Rendering на панели инструментов выберите пункт Render Current или нажмите клавишу F9. 4. Чтобы закрыть окно Render Status, как только изображение визуализируется, щелкните по кнопке Abort (Отмена) или нажмите клавишу Esc. В результате в окне просмотра изображений отобразится кадр, просчитанный в режиме Realistic (Рисунок 13.18). Из меню режимов формирования изображения выберите пункт Realistic
    Рисунок 13.18. В режиме Realistic объекты сцены отображаются с учетом всех настроек

    Из выпадающего меню Render Mode выберите пункт Quickshade

    Рисунок 13.15. Из выпадающего меню Render Mode выберите пункт Quickshade


    Из выпадающего меню Render Mode выберите пункт Quickshade
    3. Из выпадающего меню Rendering выберите пункт Render Current или нажмите клавишу F9. 4. Чтобы закрыть окно Render Status, как только изображение визуализируется, щелкните по кнопке Abort (Отмена) или нажмите клавишу Esc. В результате в окне просмотра отобразится кадр, просчитанный в режиме Quickshade (Рисунок 13.16).



    Конфигурирование мастера создания сцены

    Конфигурирование мастера создания сцены

    Как упоминалось в главе 10, в окне Camera Properties (Свойства камеры) устанавливается разрешение финальной версии и уровень сглаживания изображения. При формировании изображения LightWave использует камеру, выделенную в настоящий момент, поэтому нет необходимости использовать несколько камер с различными настройками для создания предварительного просмотра и финальной анимации. В окне Render Options (Настройки анимации) находятся опции, позволяющие указать, какие кадры потребуются для просмотра, каким образом их рассчитать, будете ли вы наблюдать за процессом рендеринга, нужно ли использовать один из нескольких встроенных инструментов просмотра для отображения результирующей анимации и т.д. Рассмотрим отдельно каждую из возможностей.



    LightWave поддерживает все основные форматы изображений

    Рисунок 13.9. LightWave поддерживает все основные форматы изображений


    LightWave поддерживает все основные форматы изображений
    5. Из выпадающего меню Output Filename Format (Формат именования файлов) выберите метод именования файлов, например, NameOOl.xxx (Рисунок 13.10).



    Метод трассировки лучей может

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

    На вкладке Ouyput Files содержаться настройки сохранения файлов а так жефайлы с созданной анимацией

    Рисунок 13.4. На вкладке Ouyput Files содержаться настройки сохранения файлов, а так жефайлы с созданной анимацией


    На вкладке Ouyput Files содержаться настройки сохранения файлов а так жефайлы с созданной анимацией
    3. Чтобы открыть диалоговое окно Save (Сохранить), отметьте галочкой опцию Save Animation (Сохранить анимацию).
    4. Введите имя файла и укажите место его расположения, затем щелкните по кнопке Save (Сохранить).
    5. Из выпадающего меню Туре (Тип), находящегося в окне Render Options, выберите формат файла, в который будет осуществляться запись (рис; 13.6).



    Настойка мастера создания сцен

    Настойка мастера создания сцен

    1. Создайте или загрузите сцену с анимацией в Layout.
    2. В закладке Rendering (Визуализация) выберите пункт Render Options (см. Рисунок 13.1).



    Настройка отображения объекта

    Настройка отображения объекта

    Можно изменить не только общие опции отображения, допускается настраивать некоторые свойства отображения отдельных объектов. Все настройки находятся в окне Object Properties (Свойства объекта) на вкладках Render (Визуализация) и Edges (Грани) -Рисунок 13.20.



    Настройки Edges

    Настройки Edges

    LightWave позволяет настроить отображение полигонов и граней объекта. Это особенно полезно, если требуется, чтобы линия, построенная вдоль края объекта, была видна при формировании изображения. Настройки, находящиеся на вкладке Edges, рекомендуется использовать совместно с шэйдером BESM для создания мультипликационных эффектов. Название шэйдера происходит от словосочетания Big Eyes Small Mouth (Больше глаза, маленький рот), так как в традиционной японской мультипликации распространены именно такие черты лиц персонажей. Рассмотрим следующие опции (Рисунок 13.23):



    Настройки метода трассировки лучей

    Настройки теней


    Настройки метода трассировки лучей
    Эти настройки определяют, как Light Wave будет работать с тенями, отбрасываемыми объектом, а также с тенями, падающими на него от других объектов сцены (Рисунок 13.22):



    Настройки находящиеся на вкладке

    Рисунок 13.23. Настройки, находящиеся на вкладке Edges, рекомендуется с шейдером BESM для создания мультипликационных эффектов


    Настройки находящиеся на вкладке
    Polygon Size (Размер полигона). Здесь определяется, какой размер будет иметь полигон при отображении (Рисунок 13.24). Это свойство позволяет создавать анимацию при помощи зависимости, например, если требуется имитировать рост полигонов;



    Настройте взаимодействие объектов сцены с тенями

    Рисунок 13.22. Настройте взаимодействие объектов сцены с тенями


    Настройте взаимодействие объектов сцены с тенями
    Self Shadow (Собственная тень). Здесь указывается, отбрасывает ли объект тень на себя;

    Cast Shadow (Создание тени). Данная опция определяет, отбрасывает ли объект тень на другие объекты;

    Receive Shadow (Другие тени). Здесь устанавливается, отбрасывают ли другие объекты тени на рассматриваемый - объект.



    Оценка времени формирования изображения

    Оценка времени формирования изображения

    Для формирования изображения Light Wave использует механизм трассировки лучей. Это означает, что он рассчитывает лучи, исходящие от камеры, источников света и прочих элементов сцены, чтобы создавать реалистичные эффекты отражения, теней, каустические явления и т.д. Например, если вы используете опцию Ray Trace Reflection (Отражение методом трассировки лучей), то LightWave сначала направит лучи от камеры, чтобы определить, какие элементы видимы в текущем |» кадре, затем рассчитает лучи от источников света, чтобы найти элементы, которые окажутся освещенными. И наконец, рассчитает лучи от поверхностей элементов, для которых коэффициент отражения больше нуля, чтобы установить, какие именно элементы будут отражаться. Аналогичным образом происходит расчет теней, каустических эффектов, преломления и т.д. Метод трассировки лучей идеально подходит для создания реалистичных изображений, однако его реализация требует большого количества вычислений, что существенно сказывается на времени формирования анимации.
    Скорость обновления отдельных кадров сцены зависит от количества элементов, эффектов, а также поверхностей, которые попадают в поле обзора камеры в Layout, кроме того, используется метод трассировки лучей. Например, расчет объемного источника света и эффекта дыма займет больше времени, чем наложение обычной фрактальной процедурной текстуры на плоскость (создание эффекта дыма) или конус (имитация объемного источника света). Аналогично на расчет эффекта
    Radiosity для моделирования глобального освещения уйдет больше времени, чем на создание нескольких отдельных источников света.
    Каждому 3D-художнику необходимо найти золотую середину при решении вопроса об уровне детальности создаваемой анимации и времени ее формирования. В высококлассных проектах для фильмов рендеринг одного кадра занимает более 15 часов! Оптимизировать сцену можно разными способами, и все они способствуют сокращению времени формирования анимации. Если вы хотите узнать об этом подробнее, приобретите журналы о LightWave, например, «NewTek Pro» и «Keyframe Magazine», или посетите в Internet следующие сайты: www.lightwave3d.com и www.flay.com. Создание предварительного просмотра OpenGL - хороший способ детально рассмотреть поверхности и элементы сцены, однако при использовании окна Viper вы достигнете лучших результатов, кроме того, значительно сократите время формирования предварительного просмотра. При этом не требуется использование полномасштабной версии анимации. Если вы хотите проверить работу эффекта отражения, допускается создать полноценную версию анимации, но с меньшим разрешением и уровнем сглаживания поверхностей (при необходимости можно даже отключить ненужные эффекты). Вы значительно сократите время формирования изображения, однако при этом получите весьма приемлемый результат. Предварительный просмотр, как правило, формирует изображение одного кадра, но можно создать предварительный просмотр и для всей анимации, сохранив его в отдельном файле.
    Как только вы полностью закончите работу над сценой и будете готовы продемонстрировать ролик своим друзьям или клиенту, вам понадобится создать финальную версию. Ее главное отличие от предварительного просмотра заключается в том, что при формировании финальной версии изображения записываются с максимальным разрешением, в определенном порядке сохраняясь в файле формата видео, например, Video for Windows или QuickTime, или в каком-либо другом.





    Опция Render Scene находится в выпадающем меню Render

    Рисунок 13.7. Опция Render Scene находится в выпадающем меню Render

    Опция Render Scene находится в выпадающем меню Render
    Если в начале рендеринга в окне Render Options (Настройки просчета) активна опция Render Display (Отображать результат просчета), Lightwave задаст вопрос, не нужно ли ее отключить. С оздавая конечную версию анимации, эту опцию следует отключать, поскольку в основном она используется для создания предварительного просмотра.

    При формировании изображения Lightwave выведет на экран окно с информацией о рендеринге сцены. Если вы активировали опцию Show Rendering In Progress (Отображать процесс формирования изображения), в окне будет также отображаться текущий создаваемый кадр (Рисунок 13.8). Как только визуализация завершится, окно автоматически закроется, и вы вернетесь в интерфейс Layout.

    Опция Silhouette Edges отображает каркас объекта

    Рисунок 13.26. Опция Silhouette Edges отображает каркас объекта


    Опция Silhouette Edges отображает каркас объекта
    Unshared Edges (Неразделяемые границы). Отображает линию соприкосновения двух поверхностей;

    Sharp Creases (Острые грани). Позволяет определить цвет и толщину линий, которыми изображаются ребра модели (Рисунок 13.27);

    Surface Borders (Границы поверхности). Грани, образованные границей двух поверхностей, изображены линией, цвет и толщина которой определяется вами (Рисунок 13.28);



    Освещение сцены при помощи HDRI

    Освещение сцены при помощи HDRI

    1. Создайте или загрузите сцену в Layout. Для этого примера подойдет один объект или группа элементов.
    2. В окне проекции щелкните по источнику света.
    3. Щелкните по кнопке Item Properties или нажмите клавишу Р. Откроется окно Light Properties.
    4. В поле Light Intensity (Интенсивность света) введите значение 10 и нажмите клавишу Enter (Рисунок 13.32).



    При использовании опции Sharp

    Рисунок 13.27. При использовании опции Sharp Creases в месте изгиба появляется линия При использовании опции Sharp
    Рисунок 13.28. При использовании опции Surface Borders между поверхностями отображается линия

    При использовании опции Sharp
    Other Edges (Прочие границы). Прочие границы полигона отображаются линиями, вы можете задать их цвет и толщину;

    Edge Color (Цвет границы). Определяет цвет, используемый для отображения границы;

    Edge Z Scale (Масштаб границы по Z). Устанавливает глубину границы по оси Z;

    Shrink Edges with Distance (Уменьшать границы на расстоянии). Границы уменьшаются при отдалении объекта от камеры (Рисунок 13.29). Если не использовать эту опцию, то при удалении от камеры объект становится меньше, а его границы остаются прежними;

    При создании тестовых изображений

    Рисунок 13.13. Из выпадающего меню Render Mode выберите пункт Wireframe


    При создании тестовых изображений
    5. Из выпадающего меню Rendering выберите пункт Render Current Frame (Просчитать текущий кадр) или нажмите клавишу F9, чтобы создать тестовый просмотр. 6. По окончании создания изображения щелкните по кнопке Abort (Отмена) или нажмите клавишу Esc, чтобы закрыть окно Render Status (Статус формирования изображения). В результате в окне просмотра изображений отобразится кадр, сформированный в режиме Wireframe (Рисунок 13.14).



    Работа с High Dynamic Range Imagery

    Работа с High Dynamic Range Imagery

    Механизм формирования изображения LightWave поддерживает возможность передачи 32 бит данных через один цветовой канал, что позволяет использовать его для работы с изображениями с широким динамическим диапазоном (High Dynamic Range Imagery - HDRI). HDRI - сравнительно новая технология, в которой в качестве глобального освещения применяются специальные карты изображений. Иными словами, для освещения сцены используется само изображение. В LightWave включены несколько изображений такого типа. А с помощью SkyTracer2 можно сохранить созданный вами небосклон как сферическую HDRI-карту, что позволит использовать его в дальнейшем. Более подробно технология HDRI описана на сайте www.debevec.org . кроме того, здесь вы получите дополнительные HDRI-карты. Данная технология требует значительного количества вычислений, поэтому при выполнении описанной ниже процедуры используйте минимальное разрешение камеры.



    Размер частиц составляет 5 пикселей

    Рисунок 13.25. Размер частиц составляет 5 пикселей


    Размер частиц составляет 5 пикселей
    Silhouette Edges (Границы силуэта). Очерчивает силуэт объекта, при этом можно указать толщину и цвет используемых линий (Рисунок 13.26);



    Режим создания изображений

    Режим создания изображений

    Вы уже знаете, как осуществить рендеринг изображения, теперь рассмотрим режимы формирования изображений в Layout. В LightWave есть три основных режима: Wireframe (Каркас), Quickshade (Быстрое затенение) и Realistic (Реалистичный). В режиме Wireframe видны только каркасы объектов сцены. В режиме Quickshade объекты отображаются с использованием только их базовых цветов, атрибутов светимости и диффузии. В режиме Realistic (который установлен по умолчанию) учитываются все атрибуты, настройки и эффекты, примененные к объектам. Метод трассировки лучей доступен только в этом режиме. Рассмотрим перечисленные режимы более подробно.



    Сохранение анимации в файле

    Сохранение анимации в файле

    1. Выполните предыдущую процедуру «Настройка мастера создания сцен».
    2. Перейдите на вкладку Output Files (Выходные файлы), расположенную в центральной части окна Render Options (Настройки просчета), чтобы получить доступ к дополнительным настройкам формирования изображения (Рисунок 13.4).



    Сохранение последовательности кадров

    1. Выполните процедуру «Настройка мастера создания сцен».
    2. В окне Render Options (Настройка анимации) снимите галочку в окошке метки Save Animation (Сохранить анимацию).
    3. Отметьте галочкой опцию Save RGB (Сохранить RGB). Откроется диалоговое окно Save (Сохранить). В этом окне введите путь к директории, в которой будут храниться изображения, а также базовое имя файла и щелкните по кнопке ОК.
    4. Из выпадающего меню Туре (Тип) выберите нужный формат файла изображения (Рисунок 13.9.).



    Так выглядит кадр при использовании Wireframe

    Рисунок 13.14. Так выглядит кадр при использовании Wireframe

    Так выглядит кадр при использовании Wireframe
    Если окно просмотра изображений открыто при формировании различных кадров, то все созданные изображения будут сохранены в этом окне в разных слоях. Можно перемещаться из слоя в слой, используя выпадающее меню Layer в верхнем левом углу. Так гораздо удобнее оценивать результат вносимых изменений. В окне просмотра изображений вы можете отображать либо RGB-изображение, либо его альфа-канал. Следует лишь выбрать нужный режим из выпадающего меню, расположенного справа от меню Layer. Используя выпадающее меню Zoom Level (Уровень масштаба), расположенное в верхнем левом углу рядом с меню File, можно масштабировать изображение в окне просмотра. При значительном увеличении масштаба удобно перемещаться по изображению при помощи клавиш управления курсором. Чтобы сохранить изображение непосредственно из окна предварительного просмотра, из выпадающего меню File выберите пункт Save RGB (Сохранить RGB) и укажите формат файла изображения.

    В этом режиме объекты отображаются

    Рисунок 13.16. В этом режиме объекты отображаются с учетом основных настроек поверхностей, что позволяет значительно сократить время формирования изображения



    В окне Effects активируйте освещение HDRI

    Рисунок 13.35. В окне Effects активируйте освещение HDRI


    В окне Effects активируйте освещение HDRI
    14. Из выпадающего меню Add Environment (Добавить среду) выберите пункт Image World (Мир-изображение) - Рисунок 13.36.



    В окне Lights Properties настройте

    Рисунок 13.33. В окне Global Illumination расположены настройки Radiosity


    В окне Lights Properties настройте
    6. В поле Ambient Intensity введите значение 25 и нажмите клавишу Enter.
    7. Отметьте галочкой опцию Enable Radiosity (Включить просчет глобального освещения).
    8. Из выпадающего меню Туре (Тип) выберите пункт Backdrop Only (Только фон). LightWave будет использовать HDRI-изображение как фоновое.
    9. В поле Intensity (Интенсивность) введите значение 50 и нажмите клавишу Enter.
    10. Из выпадающего меню Rays Per Evaluation (Число лучей при расчете) выберите пункт 3x9.
    11. Щелкните по кнопке Image Editor (Редактор изображений) на панели инструментов или нажмите клавишу F6. Откроется окно Image Editor (Рисунок 13.34).



    В окне Object Properties нажодятся

    Рисунок 13.20. В окне Object Properties нажодятся настройки отображения. Чтобы получить к ним доступ, перейдите на вкладку Render



    Вы можете оборвать процесс формирования

    Рисунок 13.8. Вы можете оборвать процесс формирования изображения, воспользовавшись окном Render Status. Однако активно, полное время создания сцены увеличивается

    Важно отметить, что вы можете сохранять не всю анимацию целиком, а только ее отдельные кадры или Последовательность определенных кадров. Это очень удобно, если вы планируете добавить созданный ролик в фильм или импортировать изображение в другое приложение. При сохранении последовательности изображений в отдельных файлах вы должны указать базовое имя, которое будет основой для всех создаваемых файлов, формат имени файла (как Light Wave будет называть файлы с изображениями), а также формат изображения.
    Есть еще один немаловажный аспект. При просчете анимации, занимающей несколько дней, а то и недель, возможны критические ситуации по зависанию как приложения, так и всей операционной системы. Если в этот момент LightWave 3D просчитывал анимацию в анимационный файл, то вся работа в момент зависания будет потеряна и никакую ее часть не удастся восстановить. Если же указать при сохранении анимации последовательность кадров, то после восстановления работы приложения или перезегрузки системы все просчитанные до сбоя кадры останутся в целости и сохранности, а процесс рендеринга можно будет продолжить с места прерывания процесса.



    Вы можете определить метод именования файлов на основе базового имени

    Рисунок 13.10. Вы можете определить метод именования файлов на основе базового имени

    Вы можете определить метод именования файлов на основе базового имени
    6. Чтобы создать изображения кадров из указанного вами диапазона, из выпадающего меню Rendering (Визуализация), расположенного на панели инструментов, выберите пункт Render Scene (Создать сцену) или нажмите клавишу F10.
    7. После того как изображения кадров запишутся в файлы, откройте в про воднике указанную вами директорию (Рисунок 13.11). Для каждого кадра анимации LightWave создал отдельный файл, именованный по выбранному вами методу. Вы можете определить метод именования файлов на основе базового имени
    Рисунок 13.11. LightWave сохраняет изображения в определенной вами папке Чтобы создать предварительный просмотр кадра, не сохраняя его в файле, нажмите клавишу F9. Проследите, чтобы была активна опция Render Display, иначе после формирования вы не сможете просмотреть изображение.

    Если необходимо сохранить определенные альфа-каналы кадров, отметьте галочкой опцию Save Alpha (Сохранить альфа-каналы), расположенную под опцией Save RGB. Настройте ее точно так же, как и Save RGB. Lightwave сохранит альфа-каналы кадров указанного вами диапазона в отдельных файлах.

    Выберите пункт Render Options

    Рисунок 13.2. В окне Render Options вы можете определить диапозон кадров, которые предполагается расчитать для просмотра


    Выберите пункт Render Options
    4. В поле Render Frame Step (Шаг просчета) должно быть установлено значение 1. Это означает, что после создания очередного кадра Layout перейдет к созданию следующего за ним.
    5. Если вы не хотите, чтобы компьютер выдавал звуковой сигнал по окончании формирования кадра, снимите галочку в окошке метки Frame Beep (Сигнал кадра).
    6. Оставьте галочку в окошке метки Auto Frame Advance (Автоматический переход к следующему кадру), чтобы Layout по окончании формирования кадра автоматически переходил к следующему.
    7. Из выпадающего меню Show Rendering in Progress (Отображать процесс рендеринга) выберите пункт 320x240 (Рисунок 13.3). Зачастую при финальном просчете большого изображения либо анимации отключение показа процесса рендеринга может ускорить работу компьютера, и, как следствие, время рендеринга может сократиться на несколько часов.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн