Создание спецэффектов
Доступ к ресурсам архивов 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:
Настройка программы sendmail
3.1.1. Настройка программы sendmailНастройка программы sendmail происходит при помощи файла /etc/sendmail/conf. Этот файл можно разбить на несколько частей:
В целом все описанные выше секции решают три основных задачи:
Все команды, которые используются в файле настроек 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 | Определить правило преобразования адреса |
Сервер протокола - программа ftpd
4.3.1. Сервер протокола - программа ftpdКоманда ftpd предназначена для обслуживания запросов на обмен информацией по протоколу FTP. Сервер обычно стартует в момент загрузки компьютера. Синтаксис запуска сервера следующий:
ftpd [-d] [-1] [-t timeout]
Существует специальный файл, в котором содержатся запрещенные пользователи, т.е. те, кому обслуживание по протоколу FTP запрещено. Возможен вход в архив по идентификатору пользователя anonimous или ftp. В этом случае сервер принимает меры по ограничению доступа к ресурсам компьютера для данного пользователя. Обычно для таких пользователей создается специальная директория ftp, в которой размещают каталоги bin, etc и pub. В каталоге bin размещаются команды, разрешенные для использования, а в каталоге pub собственно сами файлы. Каталог etc закрыт для просмотра пользователем и в нем размещены файлы идентификации пользователей.
В сознании большинства пользователей глобальной
1. ВведениеВ сознании большинства пользователей глобальной компьютерной сети Internet сама эта сеть ассоциируется с тремя основными информационными технологиями:
Электронная почта - это основное средство коммуникаций 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. Поиск ресурсов посредством ArchieArchie тесно связана с сервисом, который был рассмотрен в предыдущем разделе, так как тоже работает с 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:
Программа обмена файлами - ftp
4.3.2. Программа обмена файлами - ftpFTP - это интерфейс пользователя при обмене файлами по одноименному протоколу. Программа устанавливает канал управления с удаленным сервером и ожидает команд пользователя. Идентификатор удаленного сервера указывается либо аргументом программы, либо в команде интерфейса open.
Если команда ftp работает с пользователем и ожидает его команд, то на экране отображается приглашение "ftp>".
Синтаксис команды:
ftp [-v][-d][-i][-n][host]
Первой такой командой является команда 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
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
Файловые архивы Internet
4. Файловые архивы InternetВ настоящее время, когда популярность World Wide Web достаточно велика, объем трафика передаваемого по сети Internet по протоколу FTP занимает тем не менее первое место, несколько опережая объем трафика по протоколу HTTP. В этом свете организация файловых архивов в рамках технологии TCP/IP является крайне актуальной задачей.
Архивы используют для решения разных задач, однако наиболее популярными в сети являются свободно доступные архивы или такие архивы, доступ к которым разрешен по анонимному идентификатору пользователя. Таким образом эти архивы можно использовать в качестве:
Часто возможность авторизированного 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:
Тестирование правил преобразования адресов
3.1.6. Тестирование правил преобразования адресовДля тестирования правил преобразования адресов sendmail запускают с флагом "-bt" для того, чтобы тестирование было более детальным, можно применять и ряд других флагов.
Пример тестирования набора правил 0 и его подправил.
% sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter
Чаще всего ошибки встречаются в наборе правил 3, а точнее в поднаборе этого набора 96. Здесь производится канонизация адресов. Наибольшие проблемы проявляются с так называемыми фиктивными доменами, которые не могут быть разрешены службой доменных имен. В этом случае происходит, обычно, расширение имени именем текущего домена, и, как результат, ошибка при рассылке. Такие имена либо надо вносить в список адресов фиктивных доменов (BITNET или UUCP), либо их отлавливать и запускать написанные для них программы рассылки.
В приведенном ниже примере тестирование адресов производится с максимальной опцией отладки, когда указываются не только номера наборов правил, но и сами тестируемые правила:
%sendmail -bt -d21.12 >3 paul@polyn.kiae.su ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter
Доступ к ресурсам 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
Date: 27 Aug 76 0932 From: Ken Davis
Следует сказать, что формат сообщения постоянно дополняется и совершенствуется. В 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 называются тагами. Таги представляют из себя последовательность символов типа "<строка-символов>". "Строка-символов" определяет управляющее действие. Таги делятся на таги начала элемента текста ("<......>") и таги конца элемента текста (""). В качестве примера такой разметки можно привести следующий фрагмент текста:
Специальный тип разметки задается подтипом "html". Это так называемый гипертекст. Разметка гипертекста строится по тому же принципу как и в тексте типа "richtext". Однако применяются таги, позволяющие описать гипертекстовые ссылки. К таким тагам относятся ".....",
Это пример разметки документа в формате HTML.
Это заголовок документа
- Это параграф. Это пример гипертекстовой ссылки.
Это встроенный image. Это "якорь" внутри текста документа.
"Multipart". Этот тип содержания тела почтового сообщения определяет смешанный документ. Смешанный документ может состоять из фрагментов данных разного типа. Данный тип имеет ряд подтипов. Подтип "mixed" - задает сообщение, состоящее из нескольких фрагментов, которые разделены между собой границей, задаваемой в качестве параметра подтипа. Приведем простой пример:
From: Nathaniel Borenstein
Другим подтипом может быть подтип "alternative". Данный подтип позволяет организовать вариабельный просмотр почтового сообщения в зависимости от типа программы просмотра. Приведем пример:
From: Nathaniel Borenstein
Подтип "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.
Типы описания нетекстовой информации. Таких типов имеется четыре:
Поле типа кодирования почтового сообщения (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
Команды протокола SMTP
Приложение 1. Команды протокола SMTP| HELO |
Открыть сессию взаимодействия по протоколу SMTP. |
| MAIL |
Сообщить адрес отправителя ( |
| RCPT |
Сообщить адрес получателя (forward-path). Обязательная команда, которую выдают после MAIL FROM, но перед DATA |
| DATA |
Начать передачу тела почтового сообщения. Тело сообщения должно кончаться точкою(".") в первой позиции строки |
| RSET |
|
| SEND |
Послать сообщение на терминал пользователя, который определяется командой RCPT |
| SOML |
SEND OR MAIL. Послать в почтовый ящик или на терминал пользователя |
| SAML |
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 | SMTP-сервис готов к работе | |
| 221 | Сервис закрыл канал передачи данных | |
| 250 | Requested mail action okay, completed | Соединение установлено |
| 251 | User not local; will forward to |
Пользователь не местный. Выполнить перенаправление запроса |
| 354 | Start mail input; end with |
Начать ввод почтового сообщения |
| 421 | Сервис отсутствует. Канал передачи данных закрыт | |
| 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 может интерпретировать два типа почтовых адресов:
Sendmail можно настроить для поддержки:
Sendmail отправляет почту в два приема: сначала почтовые сообщения собираются в очереди, а затем отсылаются.
Каждое сообщение состоит из трех частей: конверта, заголовка и тела сообщения.
Конверт. Конверт состоит из адреса отправителя, адреса получателя и информации рассылки, которая используется программами подготовки, рассылки и получения почты. Конверт остается невидимым для отправителя и получателя почтового сообщения.
Заголовок. Заголовок состоит из стандартных текстовых строк, которые содержат адреса, информацию о рассылке и данные. Заголовок может быть частью подготовленного пользователем текстового файла, а может быть подготовлен и добавлен к телу сообщения программой подготовки почты. Данные из заголовка могут быть использованы для оформления конверта сообщения.
Тело сообщения. Первая пустая строка в файле почтового сообщения отделяет заголовок от тела сообщения. Все, что следует после этой строки, называется телом сообщения и передается по почте без изменений.
Sendmail может быть вызвана:
Когда программа приема почты получает сообщение, она передает его программе sendmail для последующей рассылки. Если сообщение достигло машины адресата, то оно отправляется программой местной рассылки в почтовый ящик пользователя.
Первый этап рассылки - сбор сообщений. 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. Протокол SMTPSimple 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. Пакеты и байты
Если не вдаваться в детали и не придерживаться терминологии сетей TCP/IP, то при обмене информацией по сети TCP/IP при транспорте TCP, перед тем как начать отправку сообщения, устанавливается виртуальный TCP-канал. Это означает, что сначала выполняется процедура организации этого канала или, как ее еще называют, трехфазный "хэндшейк" (handshake). При этой процедуре стороной, которая устанавливает соединение отправляется запрос на организацию канала, затем получается подтверждение на получение этого запроса, после этого отправляется подтверждение на получение подтверждения и первый пакет данных (рисунок 1.3).
Схема 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 Организация доступа к ресурсу через программы-посредники
На принципе использования посредников в настоящее время строится универсальная система доступа к ресурсам Internet из World Wide Web. Чем более широко внедряется Web на рабочие столы пользователей, тем меньше вероятность того, что им придется изучать технологии типа Telnet или FTP. Но это не означает, что эти технологии исчезли из сети. Администраторы узлов Web все равно обязаны знать, как все это спрятанное от пользователей "хозяйство" функционирует.
Схема 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
Канал связи устанавливается непосредственно между отправителем и получателем сообщения. При таком взаимодействии почта достигает абонента в течение нескольких секунд после отправки.
Дисциплины работы и команды протокола. Обмен сообщениями и инструкциями в 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: 251 User not local; will forward to
R: 551 User not local; please try
S: VRFY paul R: 250-Paul Khramtsov
S: EXPN Example-People R: 250-Paul Khramtsov
Для инициализации канала обмена почтой и его закрытия используются команды 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:
Кроме выше перечисленных дисциплин протокол позволяет отправителю и получателю меняться ролями друг с другом. Происходит это по команде TURN.
Для отладки или проверки соединения по SMTP можно использовать telnet. Для этого вслед за адресом машины следует ввести номер порта:
/users/local>telnet apollo.polyn.kiae.su 25 25 порт используется в Internet для обмена сообщениями по протоколу SMTP. В интерактивном режиме пользователь сам изображает клиента SMTP и может посмотреть реакцию удаленной машины на его действия.
Схема 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
Для установки этого интерфейса требуются определенные знания и доступ к информации, которой располагает только системный администратор, поэтому предпочтительней обратиться именно к нему с просьбой об установке программы или за необходимой информацией (адреса машин серверов). Работа с 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
Теперь разберем более подробно некоторые команды и секции файла настроек 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. Правила
При получении почтового сообщения адреса, указанные в полях 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
################################################## ### 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.
Экран в bml делится на три части:
Схема 3.5.
Схема 3.5.
Для редактирования и подготовки сообщений следует воспользоваться режимами Create Mail и Edit mail из падающего меню Mail (рисунок 3.6).
Схема 3.6.
Схема 3.6.
Для перехода в падающее меню используется функциональная клавиша F9. Для отправки сообщения из режима редактирования следует нажать ALT+T или выйти в меню Post. При отправке почты следует заполнить специальную форму (рисунок 3.7).
Bml предоставляет еще ряд возможностей, облегчающих прием, просмотр и отправку почты (поддерживает список часто используемых адресов, посылку сообщений в телеконференции Usenet, автоматическую вставку двоичных файлов в формате uuencode и их автоматическое извлечение из полученных сообщений и ряд других). В целом, следует признать, что bml является достаточно удобным персональным средством работы с почтой.
Схема 3.7.
Схема 3.7.
Схема 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.10 приведен экран Eudora, на котором представлено меню настройки и два почтовых ящика: принятых писем и отправленных писем.
На этом рисунке в меню настроек хорошо виден POP Account - адрес пользователя на машине-сервере, SMTP-сервер и POP (Ph) сервер. Как видно из настроек, Eudora каждые 30 минут проверяет почтовый ящик пользователя и сообщает о получении новых писем. Кроме того, что Eudora позволяет читать просто письма в обычном почтовом формате Internet (RFC822), о котором пойдет речь в следующем параграфе, она распознает и новый формат, ориентированный на отображение мультимедийных почтовых сообщений MIME, который последнее время становится все более популярен в Internet.
Схема 4.1. Схема взаимодействия компонентов FTP-обмена
Схема 4.1. Схема взаимодействия компонентов FTP-обмена
При этом следует четко понимать, что Archie и FTP - это совершенно разные технологии. В большинстве случаев доступ к Archie-серверу пользователи осуществляют из Archie-клиента, который находится на той же машине, что и сервер, т.е. сначала пользователь по Telnet заходит как пользователь Archie, а потом использует программу-клиент (обычно она запускается в качестве оболочки) для доступа к Archie серверу.
Схема 4.2. Модель протокола
Схема 4.2. Модель протокола
В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора пользователя средствами.
Команды FTP определяют параметры канала передачи данных и самого процесса передачи. Они также определяют и характер работы с удаленной и локальной файловыми системами.
Сессия управления инициализирует канал передачи данных. При организации канала передачи данных последовательность действий другая, отличная от организации канала управления. В этом случае сервер инициирует обмен данными в соответствии с параметрами, согласованными в сессии управления.
Канал данных устанавливается для того же host'а, что и канал управления, через который ведется настройка канала данных. Канал данных может быть использован как для приема, так и для передачи данных.
Возможна ситуация, когда данные могут передаваться на третью машину. В этом случае пользователь организует канал управления с двумя серверами и организует прямой канал данных между ними. Команды управления идут через пользователя, а данные напрямую между серверами (рисунок 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
15. Измените значение параметра Particle Size (Размер частицы), расположенного на вкладке Geometry (Геометрия), сделав его равным 1.5 т. В окне Viper поверхность, смоделированная HyperVoxels, увеличится (Рисунок 11.49).
Чтобы создать объемный эффект воспользуйтесь выпадающим меню Add Volumetric
Рисунок 11.32. Чтобы создать объемный эффект, воспользуйтесь выпадающим меню 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. Дым, созданный при помощи режима Sprite21. В окне HyperVoxels из выпадающего меню Object Type (Тип объекта) выберите пункт Volume (Объем).
22. Выполните шаги 20 и 21, чтобы создать предварительный просмотр и оценить полученный эффект (Рисунок 11.65).
Рисунок 11.65. Выберите режим Volume и создайте новый предварительный просмотр. В данном Случае изображение больше напоминает гигантский столб дыма, оно стало более детальным, однако на его расчет требуется значительно больше времени
Если ввести отрицательное значение
Рисунок 11.22. Если ввести отрицательное значение в поле Gravity(m/s^2), частицы будут падать, а при вводе положительного значения - подниматьсяФильтры изображений
Фильтры изображенийФильтры изображений (Image filter) используются для обработки кадров сцены после их просчета. Они обязательно потребуются в процессе работы с созданными изображениями для моделирования спецэффектов.
Фоновые изображения
Фоновые изображенияЧтобы сделать сцену более реалистичной, вместо цветовой заливки фона можно использовать изображения. Это особенно полезно, если вы работаете над сценой, объекты которой взаимодействуют с реальной средой, например, при создании персонажа, идущего по комнате, или моделировании едущего по шоссе автомобиля.
Инструмент FX_Gravity позволяет
Рисунок 11.21. Инструмент FX_Gravity позволяет сымулировать эффект гравитации. Выберите в меню Falloff Mode значение OFF. Это означает, что все частицы сцены подчиняются гравитации. Если оставить значение Linear, то гравитация будет влиять только на те частицы, которые попадают в область ее действия
6. В поле Gravity(m/s^2) Y (Гравитация (м/с^2) Y) введите -1 и нажмите клавишу Enter. Таким образом, гравитация будет тянуть частицы вниз (Рисунок 11.22).
ИНструмент FX_Wind позволяет создавать
Рисунок 11.26. Чтобы уменьшить или увеличить область влияния инструмента, измените значение в поле Radius
13. В поле Spiral Amount (Количество спиралей) введите 3000 и нажмите клавишу Enter. Это заставит частицы образовать вихрь (Рисунок 11.27).

Рисунок 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 позволяет достичь более реалистичного эффекта
4. Чтобы установить верхнюю границу создаваемого эффекта, в поле Тор введите 1 m и нажмите клавишу Enter.
5. Чтобы установить нижнюю границу, в поле Bottom введите -1 m и нажмите клавишу Enter.
6. Снимите галочку с окошка метки Backdrop Color (Рисунок 11.34).
7. Чтобы увидеть результат, нажмите клавишу F9 (Рисунок 11.35).
Инструмент SkyTracer2 позволяет
Рисунок 11.11. Инструмент SkyTracer2 позволяет создавать даже облака. Если требуется сымитировать облачность, нужно активировать эту опцию, поскольку по умолчанию она отключена
Рисунок 11.12. Предварительный просмотр обновился в соответствии с внесенными изменениями

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

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

Рисунок 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
Использование HyperVoxelsHyperVoxels представляет собой один из механизмов 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
17. Из выпадающего меню Blending Group (Группа смешивания) выберите пункт (new group) (новая группа)-Рисунок 11.51. Откроется диалоговое окно Blend Group Name (Имя группы смешивания).
18. В появившемся диалоговом окне введите имя Clumpy и нажмите клавишу Enter или щелкните по кнопке ОК (Рисунок 11.52).
Из выпадающего меню Object Type выберите пункт Sprite
Рисунок 11.61. Из выпадающего меню 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, чтобы они соответствовали указанным на данном рисунке
Рисунок 11.60. Камера должна быть немного смещена, чтобы вы могли видеть создаваемый эффект

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
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
19. В окне Viper из выпадающего меню Preview (Предварительный просмотр) выберите пункт Make Preview (Создать предварительный просмотр).
20. По окончании формирования предварительного просмотра щелкните по кнопке Play, чтобы просмотреть созданный эффект (Рисунок 11.64).
На вкладке Processing настройте эффекты созданные после просчета изображения
Рисунок 11.39. На вкладке Processing настройте эффекты, созданные после просчета изображения
9. Отметьте галочкой опцию Enable Glow (Включить свечение). В поле Intensity (Интенсивность) введите 200, а в поле Intensity Radius (Радиус интенсивности) введите 24 (Рисунок 11.40). Помните, что интенсивность свечения задается относительно светимости поверхностей всей сцены. Если светимость поверхностей всей сцены составляет 60%, а светимость данной поверхности - 25%, то абсолютная интенсивность свечения будет составлять лишь 15%.
Окно свойств HyperVoxels разделено
Рисунок 11.46. Окно свойств HyperVoxels разделено на три типа свойств: Geometry,Shading и HyperTexture. Таким образом, вы всегда знаете, где найти элементы настройки, необходимые для решения возникающих задач
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
11.В списке, расположенном под выпадающим меню, дважды щелкните по пункту HyperVoxels 3.0, чтобы открыть окно свойств HyperVoxels (Рисунок 11.46).
Параметр Explosion создает эффект взрывающихся частиц Создание гравитации
Рисунок 11.20. Параметр Explosion создает эффект взрывающихся частицПараметр Particle Size определяет объем создаваемый вокруг каждой точки
Рисунок 11.49. Параметр 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 мм
15. Перейдите на вкладку HyperTexture, чтобы получить доступ к настройкам текстур.
16.В поле Frequencies (Частоты) введите значение 1, чтобы сгладить создаваемый эффект и снизить его амплитуду (или силу).
17. В поле Texture Amplitude (Амплитуда текстуры) введите значение 20, чтобы снизить влияние текстуры на отображение спрайта, затем нажмите клавишу Enter.
18. Из выпадающего меню Texture Effect (Эффект текстуры) выберите пункт Billowing (Волнение), чтобы создать эффект клубящегося дыма (Рисунок 11.63).
Разрешение выбранного изображения
Рисунок 11.8. Разрешение выбранного изображения показано в информационном окне, а уменьшенный вариант - под выпадающим меню Background Image
В качестве фонового изображения можно использовать последовательность изображений или файл анимации.
Сцена должна содержать два нулевых объекта расположенных на расстоянии 2 м друг от друга
Рисунок 11.44. Сцена должна содержать два нулевых объекта, расположенных на расстоянии 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
4. Чтобы загрузить изображение и закрыть диалоговое окно, щелкните по кнопке Open (Открыть). Разрешение выбранного изображения показано в информационном окне, а уменьшенный вариант размещен под выпадающим меню (Рисунок 11.8).
В LightWave входит набор фильтров
Рисунок 11.42. В LightWave входит набор фильтров изображений
Рисунок 11.43. Так выглядит лготип 3D при использовании фильтра Negative

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

Рисунок 11.4. Щелкните по кнопке каталога цветов, чтобы открыть цветоподборщик. Выберите цвет, который вы хотите использовать в качестве фонового

Если вам нравится градиентная заливка, щелкните по кнопке Gradient Backdrop (Градиентный фон), а затем выберите цвета для создания градиентного перехода.
В окне Viper из выпадающего меню Preview Options выберите пункт Scene Preview
Рисунок 11.47. В окне Viper из выпадающего меню Preview Options выберите пункт Scene Preview
14. В окне HyperVoxels в списке объектов дважды щелкните по имени Clump-1, чтобы активировать объект. Вокруг Clump-1 будет построена гладкая поверхность (Рисунок 11.48).
В окне Viper можно просмотреть созданные эффекты
Рисунок 11.10. В окне Viper можно просмотреть созданные эффекты
3. В окне Backdrop (Фон) дважды щелкните по пункту SkyTracer2 в списке, расположенном под выпадающим меню Add Environment (Добавить декорации). Откроется окно свойств SkyTracer2.
4. Перейдите на вкладку Clouds (Облака). В области Low Attitude Clouds (Низкие облака) отметьте галочкой опцию Enable Clouds (Включить облака)- Рисунок 11.11.
5. В окне Viper вы можете увидеть созданный эффект (Рисунок 11.12).
В результате на экране отображаются красная и синяя поверхности HyperVoxels
Рисунок 11.55. В результате на экране отображаются красная и синяя поверхности HyperVoxels
25. Чтобы создать предварительный просмотр анимации, в окне Viper из выпадающего меню Preview (Предварительный просмотр) выберите пункт Make Preview (Создать предварительный просмотр) - Рисунок 11.56. В отличие от Layout Preview, Viper формирует предварительный просмотр автоматически, используя для этого первый и последний кадры анимации.
В Viper создать предварительный
Рисунок 11.56. В Viper создать предварительный просмотр так же просто, как и в Layout Preview. Кроме того, это занимает гораздо меньше времени, чем полное формирование изображения
26. Щелкните по кнопке Play, чтобы просмотреть созданную сцену (Рисунок 11.57).
Вкладка Compositing позволяет
Рисунок 11.6. Вы можете загрузить изображение, воспользовавшись выпадающим меню Image. Вам не придется каждый раз вызывать окно Image Editor
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
Рисунок 11.24. Частицы не смогут пройти сквозь плоскость

Вы, наверное, заметили, что при выполнении шага 6 в окне проекции на плоскости удара появилось слово Bounce (Удар). Это говорит о том, что в данный момент установлен тип столкновения Bounce. Если вы измените режим столкновения, то на плоскости сразу же отобразится его название. Таким образом, даже если окно свойств FX_Colllslon закрыто, всегда известно, какой тип столкновения используется.
Значения в полях Min Distance
Рисунок 11.30. Значения в полях Min Distance и Max Distance определяют начальную и конечную зоны распространения тумана
8. В поле Max Distance (Максимальное расстояние) введите 5 m и нажмите клавишу Enter. Вы определили конец области тумана, все объекты за ее пределами будут полностью поглощены туманом.
9. Чтобы обновить изображение, нажмите клавишу F9 (Рисунок 11.31).
Создание спецэффектов
Анимация при помощи атрибутов поверхности
Анимация при помощи атрибутов поверхностиОдной из самых мощных возможностей LightWave является создание анимации при помощи атрибутов поверхностей сцены. Чтобы правильно использовать ее, необходимо создать и отредактировать опорные кадры при помощи инструмента Envelope (Зависимость) - см. главу 10. Однако следует помнить, что при «оживлении» объектов допускается изменять значения только глобальных атрибутов, а не индивидуальных настроек.
Чтобы изменить текущий вид в окне проекции из выпадающего меню выберите пункт Camera View
Рисунок 12.19. Чтобы изменить текущий вид в окне проекции, из выпадающего меню выберите пункт 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, щелкните по кнопке Т
5. Из выпадающего меню Image (Изображение) выберите пункт (load image) (загрузить изображение). Откроется диалоговое окно Load Object (Загрузить объект). Выберите любое изображение, находящееся на жестком диске вашего компьютера. В данном примере использовалось изображение, представленное на Рисунок 12.35.
Чтобы перемещать вверхвниз по
Рисунок 12.52. Чтобы перемещать вверх-вниз по полосе градиента, используйте маркеры окна, расположенные слева
Рисунок 12.53. Положение цвета на градиенте можно изменить, введя его координаты в поле Parameter

6. Чтобы определить второй цвет, используйте соответствующее числовое поле или каталог цветов. Окно предварительного просмотра обновится, как только вы укажете второй цвет градиента (Рисунок 12.54).
Чтобы перевести редактор моделей в режим выделения полигонов щелкните по кнопке Polygons
Рисунок 12.3. Чтобы перевести редактор моделей в режим выделения полигонов, щелкните по кнопке 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
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%
9. Сохраните объект и нажмите клавишу F9, чтобы обновить изображение (Рисунок 12.68).

Рисунок 12.68. Всего лишь одна малекнькая деталь, и капиляры стали выпуклыми
Градиент создан
Рисунок 12.54. Градиент создан
7. Из выпадающего меню Input Parameter (Входной параметр) выберите пункт Slope (Наклон), чтобы в зависимости от наклона геометрии использовались различные цвета (Рисунок 12.55). Этот шаг определяет, как градиент будет применяться к поверхности.
Градиенты
ГрадиентыОбычно под названием градиент подразумевается плавный переход от одного цвета к другому (Рисунок 12.48). Однако в LightWave могут быть созданы градиенты с использованием нескольких цветов (Рисунок 12.49). Градиенты можно задавать при определении любых атрибутов, поддерживающих текстуры.
Image maps Как видно из названия
Определение карты изображения для параметра Diffuse
1. Загрузите файл Eyeball_setup.lws в Layout.
2. Щелкните по кнопке Surface Editor (Редактор поверхностей) на панели инструментов или нажмите клавишу F5. Откроется окно Surface Editor.
3. В списке поверхностей щелкните по строке с именем Iris.
4. Щелкните по кнопке Т, расположенной справа от поля параметра Diffuse (Диффузия), чтобы открыть Texture Editor (Редактор текстур) - Рисунок 12.34.
Использование окна Preset
Использование окна Preset1. Выполните шаги 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, расположите изображение вдоль оси поверхности
7. Чтобы указать ось, по которой будет направлена текстура, нажмите кнопку Texture Axis (Ось текстуры). Для поверхности Iris можно оставить ось, указанную по умолчанию, то есть ось Z (Рисунок 12.37).
Из выпадающего меню Add Layer выберите пункт Gradient
Рисунок 12.59. Из выпадающего меню Add Layer выберите пункт Gradient
8. Выполните шаги 3-6 процедуры «Создание градиента», чтобы создать переход от белого цвета к красному.
9. Из выпадающего меню Input Parameter (Входной параметр) выберите пункт Previous Layer (Предыдущий слой), чтобы использовать диапазон цветов, определяемый процедурной текстурой Marble.
10. Чтобы добавить третий цвет к градиенту, щелкните в центре полосы предварительного просмотра. Появится новый цвет. 11. При помощи каталога цветов выберите белый цвет для этого маркера (Рисунок 12.60).
Из выпадающего меню Paste выберите пункт Replace Current
Рисунок 12.66. Из выпадающего меню Paste выберите пункт Replace Current
8. В поле Texture Value (Значение текстуры) введите 500 (Рисунок 12.67) и щелкните по кнопке Use Texture (Применить текстуру), чтобы закрыть окно Texture Editor.
Из выпадающего меню Procedural Type выберите пункт Crumple
Рисунок 12.44. Из выпадающего меню Procedural Type выберите пункт Crumple
7. В поле Texture Value (Значение текстуры) введите значение 200, в поле Frequencies (Частоты) - 4, а в поле Small Power - 0.75 (Рисунок 12.45).
Из выпадающего меню Rendering
Рисунок 12.76. Нажмите клавишу F9, чтобы добавить получившееся изображение и специальные данные в Viper
4. Щелкните по кнопке Surface Editor (Редактор поверхностей) или нажмите клавиши F5. Откроется окно Surface Editor.
5. Нажмите кнопку Viper на панели инструментов. Откроется окно Viper (Рисунок 12.77).
Из выпадающего меню Target Item расположенного в окне Motion Options выберите пункт Eyeball
Рисунок 12.21. Из выпадающего меню 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
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
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 определяет степень сглаживания поверхности
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
6. Из выпадающего меню Procedural Type (Тип процедурной текстуры) выберите пункт Crumple (Рисунок 12.44).
Перейдите на вкладку Falloff чтобы получить доступ к настройкам затухания текстуры
Рисунок 12.63. Перейдите на вкладку 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, щелкнув по кнопке, расположенной в нижней части экрана
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 создаваемый эффект проявляется вменьшей степени
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
8. Обновите изображение, нажав клавишу F9 (Рисунок 12.56). Нет необходимости сохранять объект, поскольку эти изменения нам больше не пригодятся.
Присвойте параметру Layer Opacity значение 80%
Рисунок 12.62. Присвойте параметру Layer Opacity значение 80%
14. Перейдите на вкладку Falloff (Затухание), чтобы получить доступ к новым настройкам (Рисунок 12.63).
Присвойте параметру Layer Type значение Gradient
Рисунок 12.50. Присвойте параметру 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 поверхности
Черно-белое изображение, которое используется в качестве текстуры в данном примере, было создано в 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 %, поэтому она отражает окружающие элементы
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
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
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%
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%
Particle/Line Thickness (Толщина частиц/линий). Определяет размер точек, отрезков и частиц (см. Рисунок 13.25);
Дважды щелкните по пункту Image World
Рисунок 13.37. Дважды щелкните по пункту Image World
16. Из выпадающего меню Light Probe (Источник света) выберите пункт building_probe.hdr.
17. В поле Brightness (Яркость) введите значение 35 и нажмите клавишу Enter.
18. Чтобы обновить сцену, снова нажмите на клавишу F9. Теперь все объекты сцены будут освещены изображением building_probe.hdr (Рисунок 13.38). Полученные вами результаты могут отличаться от наших. Попробуйте поэкспериментировать с различными настройками и создать новые изображения, чтобы понять, как проявляется действие той или иной настройки.

Рисунок 13.38. Теперь объекты освещены HDRI-картой
Если вы хотите проследить за процессом формирования изображения активируйте опцию Show Rendering
Рисунок 13.3. Если вы хотите проследить за процессом формирования изображения, активируйте опцию Show Rendering
8. Снимите галочку в окошке метки Enable Viper (Активировать Viper). Если оставить окно Viper активным, потребуется дополнительное время для обработки хранящейся в нем информации. Теперь необходимо определить имя файла, в который будет записываться анимация, и место его размещения. Вы можете сохранить анимацию в файле видео (например, формата QuickTime или Video for Windows) или создать только один кадр или серию кадров. Несомненно, правильный выбор определяется средством, при помощи которого будет воспроизводиться ролик, и необходимостью импортировать изображение в другие приложения для дальнейшей обработки.
Image World использует HDRIизображение для замещения фона в Layout
Рисунок 13.36. 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
Использование режима Quickshade1. Выполните шаги 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
12. Щелкните по кнопке Load (Загрузить), затем дважды щелкните по файлу building_probe.hdr, чтобы загрузить изображение в Layout.
13. Перейдите на вкладку Scene (Сцена). Щелкните по кнопке Backdrop (Фон) на панели инструментов или нажмите клавиши Ctrl+F5. Откроется окно Backdrop Effects (Фоновые эффекты) - Рисунок 13.35.
Из меню режимов формирования изображения выберите пункт Realistic
Рисунок 13.17. Из меню режимов формирования изображения выберите пункт Realistic
3. Из выпадающего меню Rendering на панели инструментов выберите пункт Render Current или нажмите клавишу F9. 4. Чтобы закрыть окно Render Status, как только изображение визуализируется, щелкните по кнопке Abort (Отмена) или нажмите клавишу Esc. В результате в окне просмотра изображений отобразится кадр, просчитанный в режиме Realistic (Рисунок 13.18).

Рисунок 13.18. В режиме Realistic объекты сцены отображаются с учетом всех настроек
Из выпадающего меню Render Mode выберите пункт Quickshade
Рисунок 13.15. Из выпадающего меню 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 поддерживает все основные форматы изображений
5. Из выпадающего меню Output Filename Format (Формат именования файлов) выберите метод именования файлов, например, NameOOl.xxx (Рисунок 13.10).
Метод трассировки лучей может
При работе на многопроцессорном компьютере можно сократить время формирования анимации. Воспользуйтесь выпадающим меню Multithreading (Многопоточность), чтобы разделить работу между несколькими процессорами. Даже использовав два процессора, вы можете значительно выиграть во времени. Поэкспериментируйте с этой опцией и подберите оптимальное для вашей машины значение.На вкладке Ouyput Files содержаться настройки сохранения файлов а так жефайлы с созданной анимацией
Рисунок 13.4. На вкладке 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
Настройки EdgesLightWave позволяет настроить отображение полигонов и граней объекта. Это особенно полезно, если требуется, чтобы линия, построенная вдоль края объекта, была видна при формировании изображения. Настройки, находящиеся на вкладке 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 Options (Настройки просчета) активна опция Render Display (Отображать результат просчета), Lightwave задаст вопрос, не нужно ли ее отключить. С оздавая конечную версию анимации, эту опцию следует отключать, поскольку в основном она используется для создания предварительного просмотра.
При формировании изображения Lightwave выведет на экран окно с информацией о рендеринге сцены. Если вы активировали опцию Show Rendering In Progress (Отображать процесс формирования изображения), в окне будет также отображаться текущий создаваемый кадр (Рисунок 13.8). Как только визуализация завершится, окно автоматически закроется, и вы вернетесь в интерфейс Layout.
Опция Silhouette Edges отображает каркас объекта
Рисунок 13.26. Опция Silhouette Edges отображает каркас объекта
Unshared Edges (Неразделяемые границы). Отображает линию соприкосновения двух поверхностей;
Sharp Creases (Острые грани). Позволяет определить цвет и толщину линий, которыми изображаются ребра модели (Рисунок 13.27);
Surface Borders (Границы поверхности). Грани, образованные границей двух поверхностей, изображены линией, цвет и толщина которой определяется вами (Рисунок 13.28);
Освещение сцены при помощи HDRI
Освещение сцены при помощи HDRI1. Создайте или загрузите сцену в Layout. Для этого примера подойдет один объект или группа элементов.
2. В окне проекции щелкните по источнику света.
3. Щелкните по кнопке Item Properties или нажмите клавишу Р. Откроется окно Light Properties.
4. В поле Light Intensity (Интенсивность света) введите значение 10 и нажмите клавишу Enter (Рисунок 13.32).
При использовании опции Sharp
Рисунок 13.27. При использовании опции Sharp Creases в месте изгиба появляется линия
Рисунок 13.28. При использовании опции Surface Borders между поверхностями отображается линия

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 пикселей
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
Если окно просмотра изображений открыто при формировании различных кадров, то все созданные изображения будут сохранены в этом окне в разных слоях. Можно перемещаться из слоя в слой, используя выпадающее меню Layer в верхнем левом углу. Так гораздо удобнее оценивать результат вносимых изменений. В окне просмотра изображений вы можете отображать либо RGB-изображение, либо его альфа-канал. Следует лишь выбрать нужный режим из выпадающего меню, расположенного справа от меню Layer. Используя выпадающее меню Zoom Level (Уровень масштаба), расположенное в верхнем левом углу рядом с меню File, можно масштабировать изображение в окне просмотра. При значительном увеличении масштаба удобно перемещаться по изображению при помощи клавиш управления курсором. Чтобы сохранить изображение непосредственно из окна предварительного просмотра, из выпадающего меню File выберите пункт Save RGB (Сохранить RGB) и укажите формат файла изображения.
В этом режиме объекты отображаются
Рисунок 13.16. В этом режиме объекты отображаются с учетом основных настроек поверхностей, что позволяет значительно сократить время формирования изображенияВ окне Effects активируйте освещение HDRI
Рисунок 13.35. В окне Effects активируйте освещение HDRI
14. Из выпадающего меню Add Environment (Добавить среду) выберите пункт Image World (Мир-изображение) - Рисунок 13.36.
В окне Lights Properties настройте
Рисунок 13.33. В окне Global Illumination расположены настройки Radiosity
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 вы можете определить диапозон кадров, которые предполагается расчитать для просмотра
4. В поле Render Frame Step (Шаг просчета) должно быть установлено значение 1. Это означает, что после создания очередного кадра Layout перейдет к созданию следующего за ним.
5. Если вы не хотите, чтобы компьютер выдавал звуковой сигнал по окончании формирования кадра, снимите галочку в окошке метки Frame Beep (Сигнал кадра).
6. Оставьте галочку в окошке метки Auto Frame Advance (Автоматический переход к следующему кадру), чтобы Layout по окончании формирования кадра автоматически переходил к следующему.
7. Из выпадающего меню Show Rendering in Progress (Отображать процесс рендеринга) выберите пункт 320x240 (Рисунок 13.3). Зачастую при финальном просчете большого изображения либо анимации отключение показа процесса рендеринга может ускорить работу компьютера, и, как следствие, время рендеринга может сократиться на несколько часов.
Бизнес в интернете: Сайты - Софт - Языки - Дизайн
- Киберсантинг
- Киберсантинг как бизнес
- Виды Киберсантинга
- Создание игр
- Дизайн как бизнес
- Dreamweaver
- PHP
- Homesite
- Frontpage
- Studio MX
- Сайтостроительство
- Citrix MetaFrame
- Стили сайта
- ActiveX на сайте
- HTML как основа сайта
- Adobe GoLive
- Что такое WEB
- Мобильные WAP сайты
- 3D графика на сайтах
- 3DS MAX графические решения
- Графика в 3D Studio MAX и на сайте