Об'єкти, що створюються в МАХ 3.0, живуть і діють в уявному, або віртуальному, тривимірному просторі, існуючому в пам'яті комп'ютера. Щоб отримати можливість бачити ці об'єкти на екрані комп'ютерного дисплея, потрібні спеціальні програмні засоби. Такими засобами в програмі МАХ 3.0 являються вікна проекцій (viewports).
Тривимірні об'єкти не можуть бути відображені на двовимірному екрані дисплея інакше як у вигляді проекцій на площину. Щоб ефективно користуватися вікнами проекцій, необхідно уявляти собі типи проекцій, використовуваних в МАХ 3.0, їх особливості і відмінності.
1. Види проекцій, використовуваних в МАХ 3.0
У МАХ 3.0 використовуються два види проекцій : паралельні (аксонометричні) і центральні (перспективні). При побудові аксонометричної проекції тривимірного об'єкту його окремі точки зносяться на площину проекції паралельним пучком променів (рис. 2, а), а при побудові центральної проекції — пучком променів, що виходять з однієї точки, що відповідає положенню ока спостерігача (рис. 2, б).
б
a
Рисунок 2.8 - Аксонометрична проекція будується за допомогою паралельних променів (а), а центральна — за допомогою променів, що виходять з однієї точки (б)
Площина аксонометричної проекції розташовується перпендикулярно усій сукупності проекційних променів, а площина центральної проекції — перпендикулярно тільки одному, центральному променю, що відповідає лінії візування сцени. При аксонометричній проекції не відбувається спотворення горизонтальних і вертикальних розмірів, але спотворюються розміри, характеризують «глибину» об'єкту. При центральній проекції виявляються спотвореними усі розміри об'єкту. Прикладом перспективної проекції може служити будь-яка фотографія, зроблена звичайним фотоапаратом.
Часткою випадком аксонометричних проекцій є проекції ортографічні, при побудові яких площина проекції вирівнюється паралельно одній з координатних площин тривимірного простору, в якому розміщена сцена. До ортографічних проекцій відносяться знайомі вам по шкільному курсу креслення «вигляд зверху», «вид ліворуч» і т. п.
Перспективна проекція навколишнього світу звична і природна для наших очей, оскільки в житті ми усі предмети бачимо в перспективі. При такій проекції чим далі об'єкт розташований від очей спостерігача, тим менше він здається по розмірах. При паралельній проекції розміри об'єктів на зображенні не залежать від їх видалення від очей спостерігача. Це незвично, але дуже зручно: можна точно зіставляти розміри об'єктів, на яких би відстанях вони не знаходилися.
2. Загальна характеристика вікон проекцій
Кожне вікно проекції має рамку і ім'я, розташоване в лівому верхньому кутку вікна. Одночасно на екрані МАХ 3.0 може бути присутнім не більше за чотирьох вікна проекцій, розташування і розміри яких вибираються користувачем з числа заздалегідь заготовлених варіантів. За умовчанням на екрані МАХ 3.0 розташовуються три вікна ортографічних проекцій — Тор (Вигляд зверху), Front (Вигляд спереду) і Left (Вид зліва), а також вікно центральної проекції Perspective (Перспектива).
З усіх присутніх на екрані вікон проекцій тільки одно являється активним, тобто знаходиться в готовності до застосування команд і інструментів МАХ 3.0. Рамка активного вікна зображається білим кольором. Неактивні вікна служать тільки для спостереження за сценою. Для активізації вікна проекції виконайте одно з наступних дій :
- щоб зробити вікно активним, не піклуючись про збереження поточного виділення об'єктів сцени, клацніть лівою кнопкою миші в межах вікна на будь-якій точці, окрім його імені;
- щоб зробити вікно активним, зберігши поточне виділення об'єктів, клацніть правою кнопкою миші на будь-якій точці вікна, або клацніть лівою кнопкою миші на імені вікна, коли курсор набуде вигляду, що відповідає режиму активізації вікна.
3. Типи вікон проекцій
Усі об'єкти сцени МАХ 3.0 розміщуються в глобальній (World) системі координат. Умовно можна вважати, що вісь Z цієї системи спрямована вертикально вгору, вісь Х — управо, а вісь Y — в напрямі від спостерігача. Вікна ортографічних проекцій МАХ 3.0 — Top (Вигляд зверху), Front (Вигляд спереду), Left (Вид ліворуч) і т. п. — названі так саме по відношенню до глобальної системи координат. Погляд на сцену «спереду» означає спостереження уздовж осі Y в її позитивному напрямі. Відповідно до цього, наприклад, на проекції «вигляд спереду» вісь Х глобальної системи координат буде спрямована управо, вісь Z — вгору по екрану, а вісь Y — від спостерігача, перпендикулярно екрану. На проекції «вигляд зверху» осі глобальних координат розташовуватимуться так: вісь Х спрямована управо, Y — вгору по екрану, Z — на спостерігача, перпендикулярно екрану. Площинами, на яких зображуються проекції об'єктів сцени, за умовчанням являються три площини, проходять через осі глобальної системи координат. Для проекцій «вигляд спереду» і «вигляд ззаду» це буде площина ZX, проекцій «вигляд зверху» і «вигляд знизу» — площина XY, а для проекцій «вид ліворуч» і «вид справа» — площина ZY.
Положення осей глобальної системи координат віртуального тривимірного світу визначають поняття «згори», «спереду», «ліворуч» і т. п.
Координатна сітка, яка видно у вікнах проекцій після запуску МАХ 3.0, — це сітка відповідної площини глобальної системи координат, Координатні площини глобальної системи координат носять назву початкових координатних сіток (home grids). MAX 3.0 дозволяє створювати допоміжні об'єкти-сітки (Grid objects), які можуть розташовуватися під будь-яким кутом до площин глобальної координатної системи. При цьому є можливість побудови ортографічних проекцій об'єктів сцени на площини, паралельні координатним площинам об'єктів-сіток.
У МАХ 3.0 підтримуються наступні типи вікон проекцій :
- Тор (Вигляд зверху), Front (Вигляд спереду), Left (Вид ліворуч), Back (Вигляд ззаду), Right (Вид справа) і Bottom (Вигляд знизу) — шість вікон ортографічних проекцій об'єктів на площини, паралельні відповідним площинам глобальної системи координат;
- Perspective (Перспектива) — вікно центральної проекції, що характеризує вид сцени з точки, положення якої може змінюватися користувачем;
- вікно центральної проекції сцени на площину, перпендикулярну лінії візування знімальної камери. Такі вікна дозволяють побачити сцену з точки розташування кожної камери і мають імена, що відповідають іменам камер, тобто за умовчанням Cameraft (Камерай), де # — порядковий номер камери (01, 02 і т. д.);
- вікно центральної проекції сцени на площину, перпендикулярну осі пучка променів джерела світла. Такі вікна дозволяють побачити сцену з точки розташування кожного спрямованого джерела світла або прожектора і мають імена, що відповідають іменам джерел світла, тобто за умовчанням Spot# (Прожектор#) або Direct# (Спрямований#), де # — порядковий номер джерела світла (01, 02 і т. д.);
- User (Спеціальний вид) — вікно аксонометричної проекції на площину, не паралельну координатній площині, що демонструє вид сцени під кутом, який може змінюватися користувачем;
- Grid(Сітка (Вигляд зверху)), Grid(Сітка (Вигляд спереду)), Grid(Сітка (Вид ліворуч)), Grid(Сітка (Вигляд ззаду)), Grid(Сітка (Вид справа)), Grid(Сітка (Вигляд знизу)) і Grid(Сітка (Показ плоскостей)) — шість вікон ортографічних проекцій об'єктів на площини, паралельні відповідним площинам системи координат об'єкта-сітки, і вікно, що відображає конструкційну площину об'єкта-сітки, вибрану в розділі Display (Показувати) сувою параметрів допоміжного об'єкту-сітки;
- Shape (Форма) — вікно ортографічної проекції на площину, паралельну площини XY локальної системи координат виділеного двовимірного об'єкту-форми, тобто площині, в якій розташовується ця форма.
Кожне з вікон проекцій може мати будь-який з підтримуваних в МАХ 3.0 типів. Крім того, у будь-якому вікні проекції може розміщуватися вікно діалогу Track View (Перегляд треків) або Schematic View (Перегляд структури), що буває зручно при відладці анімації сцени, а також вікно Asset Manager (Диспетчер ресурсів) або MAXScript Listener (Редактор MAXScript).
Виконання яких-небудь дій у вікні Track View (Перегляд треків), розміщеному в одному з вікон проекцій, не веде до перемикання активного вікна проекції. При розміщенні у вікні проекції вікон Track View (Перегляд треків), Schematic View (Перегляд структури) або MAXScript Listener (Редактор MAXScript) ім'я вікна відсутнє, і для виклику меню вікна проекції необхідно клацнути правою кнопкою миші, встановивши курсор на будь-яку ділянку панелі інструментів (рядки меню) вікна діалогу, розміщеного у вікні проекції, поза кнопками панелі (команд меню).
При розміщенні у вікні проекції вікна діалогу Asset Manager (Диспетчер ресурсів) меню вікна проекції не викликається, і для перемикання типу вікна слід використовувати вкладку Layout (Компонування) вікна діалогу Viewport Configuration (Конфігурація вікон проекцій).
4. Рівні якості відображення об'єктів
Можливість відображати об'єкти з різними рівнями якості передбачена в МАХ 3.0 з метою забезпечення оптимальної швидкодії при перемальовуванні зображення у вікнах проекцій на етапах розробки моделі сцени і відладки анімації. МАХ 3.0 забезпечує сім основних рівнів якості відображення об'єктів у вікнах проекцій :
- Bounding Box (Габаритний контейнер) — об'єкти зображаються у вигляді описаних навколо них паралелепіпедів із сторонами, паралельними площинам глобальної системи координат.
- Wireframe (Каркас) — об'єкти зображаються у вигляді «дротяних кар-касов», утворених видимими ребрами між сусідніми гранями, що не лежать в одній площині.
- Lit Wireframes (Освітлені каркаси) — об'єкти зображаються у вигляді каркасів, тонованих відповідно до напряму променів джерел світла.
- Facets (Грані) — об'єкти зображаються у вигляді сукупності тонирован-ных плоских граней.
- Facets + Highlights (Грані + відблиски) — об'єкти зображаються у вигляді сукупності тонованих плоских граней з додаванням відблисків.
- Smooth (Згладжування) — об'єкти зображаються в тонованому виді із згладжуванням переходів між плоскими гранями.
- Smooth + Highlights (Згладжування + відблиски) — об'єкти зображаються в тонованому виді із згладжуванням переходів між плоскими гранями і з додаванням відблисків. У будь-якому з варіантів тонованого відображення об'єктів — Facets (Грані), Facets + Highlights (Грані + відблиски), Smooth (Згладжування) або Smooth + Highlights (Згладжування + відблиски) — може бути додатково включений режим Edged Faces (Контури граней), щоб одночасно з тонованими оболонками демонструвалися каркаси об'єктів.
При виборі варіантів Smooth (Згладжування) і Smooth + Highlights (Згладжування + відблиски) у вікнах проекцій можуть демонструватися текстури матеріалів, призначених об'єктам, якщо стосовно цих матеріалів в Редакторе матеріалів буде включений режим Show Map in Viewport (Показати текстуру у вікні проекції).
Структурна схема
Оскільки CityChat являється інтерактивним, то потрібно намагатися замаскувати всі програмні дії і показати користувачу гарну «картинку». Для цього створюється спеціальний інтерфейс, який перетворює інтерактивні дії користувача(переміщення, поворот, відправка повідомлень) на сукупність команд, що передаються по мережі.
Схема, що виражає структурну системи показана на рисунку.
Рисунок 2.9 – Структурна схема системи
Такий інтерфейс повинен забезпечити «спілкування» користувача з апаратною частиною. Так, наприклад, коли ми переміщуємось, то на сервер відправляються координати тривимірного персонажу в просторі, коли робимо поворот, то відправляються кути повороту на сервер.
Функціональна схема
Кожна більш-менш складна система розбивається на окремі блоки, що взаємодіють між собою. Функціональна схема містить пояснення взаємодії таких блоків, а також пояснює принцип роботи системи. Функціональна схема системи показана на рисунку.
Рисунок 2.10 – Функціональна схема системи
З функціональної схеми видно, що клієнт при спробі підключитись до сервера відсилає запит на підключення, який надходить у блок управління доступом. У блоці управління доступом відбувається перевірка чи має даний клієнт доступ до сервера і на основі цих рішень відправляється відповідь клієнту.
Якщо клієнт доступ має, то далі керування передається на блок посилки змін. Цей блок аналізує дії користувача в програмі і відправляю їх на сервер. Сервер приймає інформацію, обробляє її, а потім відсилає всім користувачам чату3D. Інформація приходить на клієнтську програму в блок прийняття змін. Цей блок відображає отримані зміні на екрані і передає керування блоку відправки змін. Такий процес відбувається ввесь час аж поки користувач не вийде з чату3D.