Cgi что это

Cgi что это

Роль компьютерной графики (CGI) в видеопродакшене: история, элементы и сферы применения

Как легко заметить по индустрии игр, кинематографа и маркетинга, сфера визуального контента не стоит на месте, а наоборот, постоянно развивается — качество изображений растет год от года, и искусственно созданная картинка становится все более реалистичной.

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

CGI – это аббревиатура от англ. computer-generated imagery; она переводится как “изображения, сгенерированные компьютером”. CGI-эффекты широко используются практически везде, но, в основном, в индустрии развлечений. К CGI можно отнести все элементы изображения, такие как персонажи, автомобили, пейзажи, которые были созданы исключительно с помощью компьютера.

Невозможно определить конкретный момент, когда была создана технология CGI, так как элементы компьютерной графики появлялись в киноиндустрии постепенно, поэтому привязать начало эры компьютерной графики к точной дате попросту невозможно. Конечно, есть фильмы, которые считаются революционными благодаря использованным в них технологиям. Например, «Парк Юрского периода» Стивена Спилберга сразу приходит на ум как один из самых популярных.

Однако компьютерные изображения использовались и до этой премьеры, например, в новаторском фильме Альфреда Хичкока 1958 года «Головокружение» или «Трон» Стивена Лисбергерга 1984 года.

Зеленый экран, который является одним из основных инструментов, связанных с компьютерным редактированием, также используется довольно давно. Например, для съемок фильмов о Бонде, взаимодействия Мэри Поппинс с животными или оригинального Кинг-Конга. Началом истории зеленого экрана является использование мультиэкспозиции в фотографии, то есть использование двух или более фотографий в одном кадре фильма. В аналоговой фотографии для получения такого снимка необходимо было только нажать на затвор, не перемещая пленку. Этот метод использовали еще в конце 19 века при создании фильма «Одна голова хорошо, а четыре лучше».

Первым полнометражным фильмом с использованием технологии компьютерной графики стала «История игрушек» режиссера Джона Лассетера 1995 года. Анимация, созданная Pixar в сотрудничестве с Disney, со временем стала классикой кино и произвела революцию в киноиндустрии. Все анимационные фильмы до нее были основаны на технике рисования, которая намного труднее и дороже, чем компьютерная.

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

Разумеется, CGI применяется не только в фильмах – без графики такого типа не может обойтись реклама, а, следовательно, и бизнес. Иногда такие “компьютерные” штрихи добавляются к уже готовым видеороликам. Варианты для творчества здесь ограничены только здравым смыслом или бюджетом, так как студии CGI предлагают широкий выбор самых разных возможностей на любой вкус. CGI делает картинку красивой, а следовательно, привлекательной для покупателя.

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

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

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

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

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

Созданием видеороликов с CGI-элементами занимаются дизайнеры, и хотя этот процесс тоже нельзя назвать простым, все-таки он не такой сложный, как в фильмах:

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

Конечно, CGI-фильмы не всегда так успешны. Иногда кинематографисты слишком сильно надеются на эту технологию или просто делают это неосторожно, что вызывает недовольство поклонников и провал продаж. Примером такого фильма является «Зеленый фонарь», который по сей день является источником шуток и насмешек из-за неправильного использования эффектов компьютерной графики.

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

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

Еще одно интересное применение компьютерных эффектов – это тренд на соцсети. Микела Соуза в Instagram – одна из них. Эта красивая богатая 19-летняя девушка даже не существует, ведь на самом деле, ее аккаунт – полностью компьютеризированная имиджевая и маркетинговая продукция. Это вызывает восхищение, но и одновременно сильное беспокойство.

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

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

Чтобы связаться с намиоставьте заявку на сайте оставьте заявку на сайте или напишите в Telegram.

Если вам понравилась наша статья.

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

Источник

CGI: что это такое и зачем дизайнеру

Поговорим о скилле, который может сделать из обычного дизайнера профи и привлечь клиентов, — технологии CGI.

Cgi что это

Cgi что это

Cgi что это

CGI — что это

CGI (computer-generated imagery, или «изображения, сгенерированные компьютером») — это изображения, которые сделали с помощью компьютерной графики. Они могут быть статичными и подвижными, двухмерными и трехмерными — хотя сам термин CGI используют чаще всего для последних.

Сегодня CGI ассоциируется прежде всего с кино и спецэффектами. И это понятно: создатели фильмов охотно раскрывают секреты создания блокбастеров. Вспомните шумиху вокруг «Войны бесконечности» — доля компьютерной графики там просто заоблачная.

Недавно команда по спецэффектам поделилась роликом, в котором показала, как эффекты накладываются на отснятые кадры. А бой Железного человека и Паука против Калла Обсидиана, кстати, — чистое CGI.

Ролик компании Framestore — создание спецэффектов для «Войны бесконечности»

Однако дело не ограничивается масштабными картинами. CGI можно встретить везде: в изобразительном искусстве, печати, на телевидении, в видеоиграх — и, конечно же, в рекламе.

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

Для чего используется компьютерная графика в рекламе

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

Или вот ожившая Одри Хепберн в рекламе Dove — спорно с этической точки зрения, но визуализация впечатляет.

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

Cgi что это

Красивые картинки — CGI в изображениях

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

1. Изображения людей

Ретушь фотографий — пожалуй, самый востребованный навык при работе с рекламными иллюстрациями.

2. Предметная иллюстрация

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

3. Ландшафты и пейзажи

Ну и создать для всего этого великолепия красивый фон.

В зависимости от того, какие задачи стоят перед дизайнером, все вышеперечисленное можно сделать в 2D-редакторах (например, Photoshop) или в 3D (3ds Max). Скажем, если нам нужно создать из двух ландшафтов один, Photoshop будет достаточно.

Но в рекламной графике часто не обойтись без 3D, ведь не все можно найти на стоках — и не все можно сфотографировать. Например, вам нужно создать изображение звездолета на поле для гольфа. На фоне звездного неба. С двумя последними пунктами проблем, конечно, не будет, а для звездолета как раз и понадобится 3D.

3D в CGI

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

Вернемся к звездолету или возьмем любой другой предмет и разберем главные шаги по созданию его в 3D-редакторе. В общих чертах процесс будет выглядеть примерно так:

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

Создаем реалистичную поверхность объекта с помощью текстур и материалов.

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

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

Источник

Что такое CGI-графика и где она используется

Cgi что это

Каждый год в прокат выходят тысячи фильмов, которые используют CGI-графику. Впервые она появилась в фильме «Мир Дикого Запада», вышедшем на экраны в 1973 году, а сегодня ее можно встретить практически в каждом фильме или сериале.

Многие кинокритики скептически относятся к такой графике и часто говорят, что CGI убивает кино. Действительно ли CGI-графика так сильно портит фильмы и что это вообще такое? Давайте разбираться.

Что такое CGI-графика

Cgi что это

CGI (от англ. computer-generated imagery – изображение, сгенерированное компьютером) – это статические или динамические изображения, созданные с помощью трехмерной компьютерной графики. Они используются не только в кино, но и в изобразительном искусстве, печати, а также на телевидении и в играх.

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

А что с компьютерными играми, спросите вы – в них же, наоборот, CGI используется редко. Как правило, в играх работает графика в реальном времени, а вот большинство внутриигровых видеороликов основаны на CGI.

CGI – это не только фильм «Аватар» и «Железный человек», такая графика используется везде, где это уместно. Например, ее можно встретить в таких фильмах, как «Паразиты», «Кровавый алмаз», «Горбатая гора» и многих других. Например, в психологической драме «Черный лебедь» CGI используется крайне нетипично. Если вы видели этот фильм, то с ходу сможете вспомнить много очевидных сцен с компьютерной графикой. Но вы вряд ли заметили то, что в конце фильма у героини руки были не настоящие – их специально сделали более длинными и гладкими с помощью CGI-графики.

Cgi что этоВ большинстве случаев хорошая CGI – это та CGI, которую зритель не замечает.

Компьютерная графика в рекламе

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

Все точно так же, как в киноиндустрии – есть реклама, которая полностью состоит из CGI. Например, недавняя реклама от «Сбер» с CGI-персонажами Чебурашкой и крокодилом Геной:

Cgi что это

А есть реклама, в которой графика оживляет простые предметы:

Cgi что это

Помимо видеороликов, мы можем встретить CGI и в наружной рекламе (3D-модели):

Cgi что это

Как создается CGI-графика

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

Моделирование

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

Вот так будет выглядеть объект в полигонной сетке:

Cgi что это

Текстурирование

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

Cgi что это

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

Риггинг

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

Cgi что это

Композитинг

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

Кажется, что создание CGI-графики – это крайне просто, но все зависит от сложности проекта – компьютерная графика может создаваться как пару месяцев, так и несколько лет. Например «300 спартанцев» – фильм, в котором каждый кадр снят под компьютерную обработку, создавали 16 студий на протяжении целого года.

Где создается CGI-графика

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

Наиболее популярное ПО для работы с CGI-графикой:

На этом список программ, конечно, не заканчивается. Есть еще монтажные станции типа Adobe Premier, Final Cut Pro и многое другое. Если вы собираетесь погрузиться в создание CGI-графики, то необязательно браться за весь перечисленный софт. Подберите одну программу под ваши задачи и начните ее изучать.

Заключение

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

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

CGI (Common Gateway Interface)

CGI (англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитают названия «скрипт» (сценарий) или «CGI-программа». Обычно гипертекстовые документы, извлекаемые из www (world wide web) серверов, содержат статические данные. С помощью CGI можно создавать CGI-программы, называемые шлюзами, которые во взаимодействии с такими прикладными системами, как система управления базой данных, электронная таблица, деловая графика и др., смогут выдать на экран пользователя динамическую информацию. Программа-шлюз запускается www сервером в реальном масштабе времени. www сервер обеспечивает передачу запроса пользователя шлюзу, а она в свою очередь, используя средства прикладной системы, возвращает результат обработки запроса на экран пользователя. [1]

Содержание

Главное назначение CGI

Обеспечение единообразного потока данных между сервером и прикладной программой, которая запускается из-под сервера. CGI определяет протокол обмена данными между сервером и программой.

Такие понятия, как метод доступа, переменные заголовка, MIME, типы данных, заимствованы из HTTP и делают спецификацию прозрачной для тех, кто знаком с самим протоколом.

При описании различных программ, которые вызываются сервером HTTP и реализованы в стандарте CGI, используют следующую терминологию:

Общий шлюзовый интерфейс CGI

CGI (Common Gateway Interface) — механизм доступа к программам на стороне веб-сервера. Спецификация CGI была разработана для расширения возможностей сервиса www за счет подключения различного внешнего программного обеспечения. При использовании CGI веб-сервер представляет браузеру доступ к исполнимым программам, запускаемым на его (серверной) стороне через стандартные потоки ввода и вывода.

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

Веб-серверы

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

Созданием программного обеспечения веб-серверов занимаются многие разработчики, но наибольшую популярность имеют такие программные продукты, как Apache (Apache Software Foundation), IIS (Microsoft), Google Web Server (GWS, Google Inc.) и nginx.

Первые HTTP-клиенты были консольными и работали в текстовом режиме, позволяя читать гипертекст и перемещаться по ссылкам. Сейчас консольные браузеры (такие, как lynx, w3m или links) практически не используются рядовыми посетителями веб-сайтов. Тем не менее такие браузеры весьма полезны для веб-разработчиков, так как позволяют «увидеть» веб-страницу «глазами» поискового робота.

Исторически первым браузером в современном понимании (т.е. с графическим интерфейсом и т.д.) была программа NCSA Mosaic, разработанная Марком Андерисеном и Эриком Бина. Mosaic имел довольно ограниченные возможности, но его открытый исходный код стал основой для многих последующих разработок. [3]

Принцип работы CGI

Обобщенный алгоритм работы через CGI можно представить в следующем виде:

Механизмы обмена данными

Переменные окружения

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

Общие переменные окружения

Запрос-ориентированные окружения

Идентификация пользователя и его машины

Переменные, определяющие тип и длину передаваемой информации от клиента к серверу

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

Опции командной строки

Формат стандартного ввода

Формат стандартного вывода

Content-type

Указывается в том случае, когда скрипт сам генерирует документ «на лету» и возвращает его клиенту. В этом случае реального документа в файловой системе сервера не остается. При использовании такого сорта скриптов следует учитывать, что не все серверы и клиенты отрабатывают так, как представляется разработчику скрипта. Так, при указании Content-type: text/html, некоторые клиенты не реализуют сканирования полученного текста на предмет наличия в нем встроенной графики. Обычно в Content-type указывают текстовые типы text/plain и text/html.

Location

Используется для переадресации. Иногда переадресация помогает преодолеть ограничения сервера или клиента на обработку встроенной графики или серверной предобработки. В этом случае скрипт создает файл на диске и указывает его адрес в Location. Сервер, таким образом, передает реально существующий файл. В последнее время серверы стали буферизовать возвращаемые клиентам данные, что приводит к решению вопросов, связанных с повторным запуском скриптов для встраивания графики и разгрузки компьютера с сервером HTTP. [4]

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

Наиболее частая задача, для решения которой применяется CGI — создание интерактивных страниц, содержание которых зависит от действий пользователя. Типичными примерами таких веб-страниц являются форма регистрации на сайте или форма для отправки комментария. Другая область применения CGI, остающаяся за кулисами взаимодействия с пользователем, связана со сбором и обработкой информации о клиенте: установка и чтение «cookies»; получение данных о браузере и операционной системе; подсчет количества посещений веб-страницы; мониторинг веб-трафика и т. п.

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

Преимущества CGI

Многие возможности CGI сейчас дублируются такими технологиями, как например DHTML, ActiveX или Java-апплетами. Основными преимуществами использования серверных скриптов является то, что вы можете быть уверены, что все клиенты (за редким исключением, как правило связанным с блокировкой доступа к определенным ресурсам на уровне файрвола) смогут работать с серверным приложением. Клиентские-же программы могут быть просто отключены в браузере, или вовсе не поддерживаться.

Недостатки CGI

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

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

Источник

Что такое CGI? Как CGI работает в фильмах и анимации?

Что такое CGI? История возникновения и развития компьютерных эффектов. Как применяется CGI? Какими программами пользуются для создания CGI в кино?

История зарождения и использования CGI в кино

История визуальных эффектов в кино

История использования CGI в кино

Примеры фильмов, в которых используется CGI

Что такое CGI?

Как работает CGI в кино

Плохая компьютерная графика в современных фильмах

Задние фоны из CGI

CGI-персонажи

CGI трюки и спецэффекты

Невидимый CGI в кино

Как совмещаются реальные кадры и графика

Какие программы используются для создания спецэффектов

История зарождения и использования CGI в кино

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

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

Именно поэтому кинематографисты очень быстро сообразили, что могут показывать на экране совсем какие-то фантастические вещи. Невиданные миры, достоверные чудовища, нарушающие законы физики фокус…

Те простейшие уловки, которыми они пользовались в итоге развились в практические визуальные эффекты: ростовые куклы, аниматроники, безопасные искусственные взрывы, комбинированную съемку, искажение объектов оптикой и тд.

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

Но давайте обо всем по порядку.

История визуальных эффектов в кино

Родоначальником визуальных эффектов в кинематографе считается режиссер, сценарист и изобретатель Жорж Мельес. Он жил на стыке XIX и XX веков и был одним из первопроходцев в кинематографе.

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

Всего он снял больше пяти сотен оригинальных фильмов, но до наших дней сохранились лишь некоторые из них. Самый знаменитый из них – «Путешествие на луну». Это первый в мире фантастический фильм. И даже, если вы до этого ни разу не слышали фамилию Мельеса, вы вполне могли где-нибудь видеть самый знаменитый кадр из этого фильма (ну или пародию на него) – ракета-пуля врезается в глаз луны. (прикрепить картинку из сети)

В 2011 году у Мартина Скорсезе вышел фильм «Хранитель времени». Это полувыдуманная полуреальная история о последних годах жизни Жоржа Мельеса. Этим фильмом Скорсезе хотел почтить память одного из первопроходцев в кино. Забавно, и даже знаменательно, что в итоге фильм об изобретателе визуальных эффектов взял статуэтку «Оскар» за лучшие визуальные эффекты того года.

Отдельно стоит поговорить о таком направлении в визуальных эффектах, как кукольная анимация. Эта технология называется stop-motion: покадровая съемка. Берется специальная кукла и делается ее фотография, затем аниматор чуть-чуть меняет ее позу и снова делает фотографию. В итоге несколько сотен и даже тысяч фотографий спустя получается кинопленка с движущейся куклой.

Кукольная анимация появилась одновременно с кинематографом. Первый полностью кукольный фильм был снят еще в 1898 году и назывался «Цирк Шалтай-Болтая».

В начале века самым известным кино, где куклы совмещались в одном кадре с настоящими актерами считается немой фильм «Затерянный мир» по мотивам рассказа Артура Конана Дойля. Этот фильм был хитом своего времени. Настоящим блокбастером. Динозавры в этом фильме произвели на людей того времени не меньшее впечатление, чем Первый парк юрского периода в 1993. Но сегодня широкая публика о «Затерянном мире» не помнит.

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

В момент выхода фильма, многие кинматографисты удивлялись, как О’Брайену удалось передать эффект колышашейся на ветру шерсти обезьяны. Но на самом деле, этот эффект не получился случайно. Каждый раз, когда Уиллис двигал куклу, он приминал своими пальцами шерсть. На отдельных кадрах это было незаметно. А вот при монтаже создало эффект ветра.

История использования CGI в кино

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

И уже через пару лет в свет вышел первый полнометражный фильм с компьютерной графикой – «Мир дикого запада» (ремейк этого фильма прямо сейчас выходит в формате сериала на телеканале HBO). С помощью компьютера в этом фильме показали эффект тепловидения одного из героев. В общей сложности фрагмент длился около двух минут, а вот создавали его в итоге четыре месяца.

Следующий знаковый фильм с CGI вышел буквально через год. И это был фильм «Звездные войны. Новая надежда». И там уже кадров с компьютерной графикой было на порядок выше. Кроме того CGI в этом фильме удачно совмещается с практическими эффектами: миниатюрными моделями, аниматрониками и статичными картинками снятыми под правильным углом. Поэтому неподготовленному зрителю часто кажется, что там даже больше компьютерной графики, чем есть на самом деле.

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

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

И это развитие продолжается настоящее время. Поэтому выделить кого-то отдельно очень сложно. Можно упомянуть разве что «Аватар» 2009 года, долгое время сохраняющий статус самого кассового фильма всех времен. Именно благодаря ему, по всему миру начали массово строить 3D-кинотеатры. А это в свою очередь в очередной раз толкнуло развитие компьютерной графики вперед.

Примеры фильмов, в которых используется CGI

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

Например, «Терминатор 2». Эффект робота из жидкого металла до сих пор не устарел.

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

Очень мощную работу проделали в свое время художники и специалисты по эффектам в фильме «Куда приводят мечты» с Робином Уильямсом в главной роли. Н

а рубеже XX и XXI веков громко о себе заявила «Матрица». В первую очередь качеством графики и тем, с какой фантазией она применяется. А технология замедленной съемки с облетом вокруг объекта и вовсе патентованное изобретение авторов этого фильма.

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

Что такое CGI?

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

CGI расшифровывается как computer-generated imagery – созданные компьютером изображения. Собственно в этом названии и скрыта вся суть этого термина. Эти изображения могут быть статичными или движущимися. Могут быть плоскими или трехмерными. Все это и есть SGI.

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

Не путайте CGI с анимацией в компьютерных играх во время геймплея. CGI – создается заранее, а перед зрителем воспроизводится только запись. В то время как в компьютерных играх графика рисуются (рендерится) прямо в процессе геймплея в реальном времени. А вот заставки и анимационные ролики, рассказывающие сюжет – это как раз CGI.

Как работает CGI в кино

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

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

Плохая компьютерная графика в современных фильмах

Современные технологии действительно позволяют сегодня нарисовать любую картинку не отличимую от реальности. Так почему же до сих пор выходит столько фильмов с откровенно плохим CGI? Даже в дорогостоящих блокбастерах за сотни миллионов нет-нет да и проскользнет сцена с плохой графикой.

Почему? Будьте уверены, дело тут уже давно не в ограниченности технологий.

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

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

Задние фоны из CGI

Одна из самых популярных задач решаемых с помощью CGI. При правильном подходе искусственно наложенные на кадр задние фоны неотличимы от настоящих.

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

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

А уж если нужно что-то снять далеко от студии, например, в другом городе… Такой выезд называется «экспедиция» и это очень сложный и дорогостоящий процесс. Съемочная команда может насчитывать сотню человек. Всем им нужно купить билеты до места назначения и обратно. Оплатить гостиницы для проживания. Питание. Командировочные. На месте нужно заранее получить разрешение на съемку, перекрыть подходы к площадке, чтобы не прохожие не мешали. Как-то задобрить местных жителей, которым такая толпа народу, да еще с тоннами оборудования безусловно задобрит жизнь…

В общем, это очень сложно.

И ладно, если все это нужно для съемки какого-то существенного куска фильма. Но организовывать все это ради одной-двух сцен, длиной секунд в тридцать…

Ну, уж нет. CGI и дешевле, и проще, и быстрее.

И это не жадность. Это здравый смысл.

CGI-персонажи

При создании персонажей CGI сегодня используется двумя способами.

Во-первых, конечно сегодня в кино много персонажей полностью нарисованных на компьютере.

Полностью нарисованных на компьютере персонажей проще всего найти сегодня фантастических боевиках. Это могут быть и люди, и гуманойды и совсем уже странные существа. Чтобы понять, о чем речь, достаточно вспомнить «Мстителей», последние фильмы франшиз «Люди в черном» и «Охотники за приведениями» или всю линейку фильмов «Трансформеры».
В фильмах созданных в последние два десятилетия, большинство животных тоже нарисованы с нуля на компьютерах. Таких зверей можно увидеть в игровых ремейках «Книги джунглей» и «Короле льве», ребуте «Джуманджи» или, например, новом фильме Дуэйна Джонсона «Круиз по джунглям».

Второй способ, когда в фильме играет настоящий актер, но потом, на постобработке его как-то видоизменяют с помощью компьютерной графики. Персонажу могут поменять цвет глаз (все экранизации «Дюны»). Могут полностью зарисовать его конечности, чтобы он сыграл инвалида («Форест Гамп», сериал «Толя Робот»). Ему могут нарисовать крутой костюм (Серия «Железный человек»). Могут даже полностью заменить его лицо, сделав чудовищем ( серия «Пираты Карибского моря») или, например, омолодив ( «Человек-муравей», «Мандалорец»).

В ряде случаев от актера требуется только мимика и пластика движений. Все остальное нарисуют на компьютере. Так в «Хоббите» мимика и движения Бенедикта Кембербетча использовались для анимации дракона Смауга. В последней трилогии «Планеты обезьян», точно также в основу главного героя шимпанзе Цезаря легла игра актера Энди Серкиса.

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

CGI трюки и спецэффекты

Компьютерная графика действительно может сегодня все. Но почему-то когда смотришь фильмы серии «Миссия невыполнима», какое-то шестое чувство все равно подсказывает, что вот здесь, в этом моменте адреналиновый наркоман Том Круз выполнил этот трюк по-настоящему. И это конечно будоражит.

Точно такое же ощущение возникает, когда смотришь фильмы Кристофера Нолана. В начале, он на самом деле пустил поезд по асфальту. В «Темном рыцаре» по-настоящему заставил перекувыркнуться грузовик. В «Доводе» протаранил здание гигантским самолетом.

И все же в современном кино, таких опасных и сложных трюков снимается все меньше и меньше. Слишком уж большие преимущества дает CGI. Компьютерная графика дешевле. Она позволяет показывать трюки с таких ракурсов, которые невозможно снять вживую. И кроме того не надо подвергать опасности каскадеров.

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

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

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

Ну и, разумеется нельзя рассказывать про CGI и ничего не сказать про фантастические спецэффекты. Масштабные взрывы Майкла Бэя, нереалистичные погони и кульбиты автомобилей в «Форсажах», полеты на паутине по Нью-Йорку «Человека паука».

Даже самым гениальным изобретателям трюков большинство этих спеэффектов в жизни не повторить.

Невидимый CGI в кино

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

Но в реальности огромный пласт CGI используется для совершенно обратной цели – сделать что-то в кадре незаметно для публики. Например, спрятать или стереть что-то.

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

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

Точно также с помощью графики из кадра удаляют тросы, на которых летаю актеры во время драк и трюков. Или, например, случайно попавшие в кадр предметы: микрофон, стаканчик с кофе («Игра престолов»). А в первом сезоне «Мандалорца» стерли попавшего в кадр ассистента на заднем фоне.

Бывают и обратные примеры. С помощью CGI в кадр добавляют какой-то предмет, которого не было на съемке. Например, если реквизит разбился или на экране слишком сильно видно, что он бутафорский.

Забавный случай с такого родом CGI произошел на съемках фильма «Шазам!» 2019 года. О нем рассказал режиссер Дэвид Сандберг.

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

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

Этот дубль в итоге так и вошел в фильм. И любой из вас может там его найти.

Как совмещаются реальные кадры и графика

На самом деле современные возможности CGI позволяют пририсовывать графику почти к любому кадру. Да, это сложнее, медленней, но вполне возможно.

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

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

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

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

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

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

И это только самые распространенные приемы.

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

Какие программы используются для создания спецэффектов

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

Например, при съемке фильма «Железный человек 3» Диснеем была нанята компания, занимающаяся только CGI-эффектами воды. Эта компания сама создает свои программы и постоянно расширяет их количество в зависимости от поставленных задач.

Мало кто помнит, что, например, компания Pixar, создавалась Стивом Джобсом именно как компания по созданию программ для CGI. И первые свои мультфильмы они снимали, только чтобы прорекламировать свое ПО. Pixar и сейчас создает совершенствует собственные программы, а затем рекламирует их через мультфильмы и продает другим кинокомпаниям. Так благодаря мультфильму «Корпорация монстров» Голливуд узнал об их программе анимации шерсти. А в «Суперсемейке 2» так много контрастных и темных кадров, для рекламы их ПО для создания теней.

Сама прорывная технология в CGI последних лет связана с программой Unreal Engine. Это программа, созданная для компьютерных игр. Как раз та, которая рисует компьютерную графику в реальном времени. Последние версии этой программы выдают картинку такого качества, что если ее спроецировать на экране высокого разрешения позади актера, никто не догадается, что этот фон не настоящий.

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

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

В итоге Unreal Engine называют убийцей хромакея. Посмотреть, действительно ли это так, можно, например, в сериале «Мандалорец».

Источник

CGI для программиста

Интернет доказал, что является идеальной средой для распределения информации, как видно по его огромной популярности и масштабного развития. Хотя кое-кто подвергает сомнению полезность Интернета и приписывают ее широкое развитие и популярность главным образом навязчивой рекламе, Интернет бесспорно является важным средством представления всевозможных видов информации. Мало того, что существует множество услуг по предоставлению самой свежей информации (новости, погода, спортивные события в реальном времени) и материалов справочного характера в электронном виде, предлагаются также значительные объемы данных другого рода. Налоговое управление США, которое распространило все свои бланки налоговых деклараций в 1995 году и другую информацию через Всемирную паутину, недавно призналось о получении писем от поклонников своего Веб-сайта. Кто бы мог подумать, что Налоговое управление когда-нибудь будет получать письма от поклонников? Это произошло не от того, что его сайт был хорошо оформлен, а потому что он оказался по-настоящему полезным инструментом для тысяч, а возможно и миллионов людей.

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

Хотя Веб предоставляет для информации уникальный интерфейс гиперсреды, имеется много других эффективных способов распределения данных. Например, сетевые услуги типа Протокола передачи файлов (FTP) и группа новостей «Gopher» существовали намного раньше появления Всемирной паутины. Электронная почта была первичной средой для связи и обмена информацией по Интернету и большинством других сетей почти с самого начала функционирования этих сетей. Почему Интернет стал таким популярным способом распределения информации? Мультимедийный аспект Интернета внес ощутимый вклад в его небывалый успех, но для того, чтобы Интернет стал наиболее эффективным он должен быть интерактивным.

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

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

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

Что такое CGI?

Обычно, для расширения возможностей сервера, Вам пришлось бы самому модифицировать сервер. Такое решение нежелательно, потому что это требует понимания нижнего уровня сетевого программирования по протоколу Интернета. Это также требовало бы редактирования и перекомпиляции исходного кода сервера или записи пользовательского сервера для каждой задачи. Допустим, нужно расширить возможности сервера так, чтобы он действовал как шлюз Web-to-e-mail (от Веб к эл.почте), отбирая информацию, введенную пользователем, из браузера и посылая ее по электронной почте другому пользователю. В сервер пришлось бы вставить код для анализа ввода от браузера, пересылки бы его по электронной почте другому пользователю, и пересылке ответа назад в браузер через сетевое соединение.

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

Во-вторых, это трудно и требует обширных технических знаний.

В-третьих, это применимо только для конкретного сервера. Если нужно переместить ваш сервер на другую платформу, придется запустить или по крайней мере потратить много времени, занимаясь переносом кода на эту платформу.

Почему CGI?

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

Связь CGI осуществляется стандартным вводом и выводом, что означает, что, если Вы знаете, как печатать и читать данные, используя свой язык программирования, можно написать приложение сервера Веб. Помимо анализа ввода и вывода, программирование приложений CGI почти эквивалентно программированию любого другого приложения. Например, для программирования программы «Hello, World!», используются функции печати вашего языка и формат, определенный для программ CGI, чтобы напечатать соответствующее сообщение.

Выбор языка програмирования

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

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

Какой язык является наиболее подходящим для программирования CGI? Тот, который Вы считаете для себя более удобным с точки зрения программирования. Оба одинаково эффективны для программирования приложений CGI, и с надлежащими библиотеками, оба имеют схожие возможности. Однако, если Вы имеете труднодоступный сервер, можно использовать меньшие транслируемые программы C. Если Вы должны быстро написать приложение, которое требует значительной работы по обработке текста, можно вместо него использовать Perl.

Предостережения

Имеются некоторые важные альтернативы к приложениям CGI. Много серверов теперь включают API-программирование, которое облегчает программирование прямых расширений сервера в противоположность отдельным приложениям CGI. Серверы API обычно более эффективны, чем программы CGI. Другие серверы включают встроенные функциональные возможности, которые могут обрабатывать специальные элементы без CGI, например, сопряжение баз данных. И наконец, некоторые приложения могут быть обработаны некоторыми новыми клиентскими (а не серверными) технологиями типа Java. Быстро ли устареет CGI в условиях таких быстрых изменений в технологии,?

Вряд ли. CGI имеет несколько преимуществ перед более новыми технологиями.

Резюме

Глава 2. Основы

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

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

Вы можете свести программирование CGI к двум задачам: к получению информации от браузера Веб и отсылке информации назад на браузер. Это делается достаточно интуитивно, как только Вы усвоите обычное использование приложений CGI. Часто пользователю предлагают заполнить какую-либо форму, например, вставить свое имя. Как только пользователь заполняет форму и нажимает Enter, эта информация посылается программе CGI. Программа CGI должна затем преобразовать эту информацию в то, что она понимает, соответственно обработать ее, и затем послать назад браузеру, будь то простое подтверждение или результат поиска в многоцелевой базе данных.

Из-за характера данной главы, я только слегка касаюсь некоторых тем. Не волнуйтесь; все эти темы рассматриваются гораздо глубже в других главах.

Hello, World!

Вы начинаете с традиционной вводной задачи программирования. Вы напишете программу, которая отобразит «Hello, World!» на вашем браузере Веб. Прежде, чем написать эту программу, Вы должны понять, какую информацию браузер Веб ожидает получить от программ CGI. Вы также должны знать, как выполнить эту программу, так чтобы увидеть ее в действии.

Сохраните эту программу как hello.cgi, и установите ее в соответствующем месте. (Если Вы не уверены, где оно находится, не беспокойтесь; Вы узнаете это в разделе «Установка и выполнение программы CGI » ниже в данной главе.) Для большинства серверов нужный каталог называется cgi-bin. Теперь, вызовите программу из вашего браузера Веб. Для большинства, это означает открыть следующий универсальный указатель ресурса (URL):

Разбиение hello.cgi

Следует отметить несколько моментов относительно hello.cgi.

Во-первых, вы используете простые команды печати. Программы CGI не требуют никаких специальных дескрипторов файла или описателей вывода. Чтобы послать вывод браузеру, просто печатают на stdout.

В общем, hello.cgi состоит из двух основных частей:

Hello, World! в C

Примечание

Обратите внимание на то, что версия Perl hello.cgi использует Content-Type print «: text/html\n\n «; В то время как версия C использует Printf (» Content-Type: text/html\r\n\r\n «);

Почему Perl печатает операторный конец с двумя символами новой строки (\n), в то время как C printf заканчивается двумя символами возврата каретки и новой строки(\r\n)?

Формально, заголовки (весь вывод перед пустой строкой) как предполагается, будут отделены символом возрата каретки и новой строки. К сожалению, на машинах DOS и Windows, Perl транслирует \r как другую новую строку, а не как перевод каретки.

Соответствующее решение этой проблемы представлено в Главе 4, «Вывод».

Ни серверу Веб, ни браузеру не важно, какой язык используется для записи программы. Хотя каждый язык имеет преимущества и недостатки в качестве языка программирования CGI, лучше использовать язык, с которым Вам удобнее всего работать. (Более детально выбор языка программирования обсуждается в Главе 1 «Общешлюзовой интерфейс (CGI) «).

Выведение CGI

Теперь можно внимательнее изучить вопрос отправки информации на браузер Веб. Из примера » Hello, World!», видно, что браузеры Веб ожидают два набора данных: заголовок, который содержит информацию, например какую информацию отобразить (например Content-Type: line) и фактическую информацию (что отображается на браузере Веб). Эти два блока информации отделены пустой строкой.

Заголовок называется заголовком HTTP. Он дает важные сведения об информации, которую браузер собирается получать. Имеются несколько различных типов заголовков HTTP, и наиболее универсальным является тот, который Вы использовали раньше: Content-Type: заголовок. Вы можете использовать различные комбинации заголовков HTTP, отделяя их символами возврата каретки и новой линии (\r\n). Пустая строка, отделяющая заголовок от данных, также состоит из возврата каретки и новой строки (почему нужны оба, кратко описано в предшествующем примечании и подробно в Главе 4). Вы узнаете о других заголовках HTTP в Главе 4; в данный момент Вы занимаетесь Content-Type: заголовок.

Content-Type: заголовок описывает тип данных, которые возвращает CGI. Соответствующим форматом для этого заголовка является:

Примечание

После заголовка и пустой строки, Вы просто печатаете данные в нужном для Вас виде. Если Вы посылаете HTML, то печатайте теги HTML и данные к stdout после заголовка. Вы можете послать также графику, звук и другие двоичные файлы, просто печатая содержимое файла в stdout. Несколько примеров этого приведено в Главе 4.

Установка и выполнение программы CGI

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

Когда Вы обращаетесь к файлам, используя ваш браузер Веб, Вы определяете файл в URL относительно DocumentRoot. Например, если адрес вашего сервера mymachine.org, то Вы обращаетесь к этому файлу со следующим URL: http://mymachine.org/index.html

Конфигурирование сервера для CGI

Большинство серверов Веб имеет такую предварительную конфигурацию, которая позволяет использовать программы CGI. Обычно два параметра указывают серверу о том, является ли файл приложением CGI или нет:

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

Предостережение

Помните о важности вопросов защиты, когда Вы конфигурируете ваш сервер для CGI. Некоторые подсказки будут рассмотрены здесь, а в Главе 9 «Защита CGI» эти аспекты рассматриваются более подробно.

Установка CGI на серверах UNIX

Подсказка

Чтобы сделать ваши файлы читаемыми и выполнимым по всему миру, используйте следующую команду UNIX права доступа: chmod 755 имени файла.

Если Вы используете язык описания сценария типа Perl или Tcl, укажите полный путь вашего интерпретатора в первой строке вашего сценария. Например, сценарий Perl, использующий perl в каталоге /usr/local/bin должен начинаться со следующей строки:

Никогда не помещайте интерпретатор (perl, или двоичный код Tcl Wish в каталог /cgi-bin. Это создает опасность для защиты в Вашей системе. Более подробно это описано в Главе 9.

Некоторые универсальные cерверы UNIX

Серверы NCSA и Apache имеют файлы со сходной конфигурацией, потому что сервер Apache был первоначально основан на коде NCSA. По умолчанию, они конфигурированы таким образом, чтобы любой файл в каталоге cgi-bin (расположенный по умолчанию в ServerRoot) являлся программой CGI. Чтобы изменить местоположение каталога cgi-bin, можно отредактировать файл конфигурации conf/srm.conf. Форматом для конфигурирования этого каталога является

Заданная по умолчанию конфигурация достаточна для потребностей большинства пользователей. Нужно отредактировать строку в файле srm.conf в любом случае, чтобы определить правильное realdirectoryname. Если, например, Ваши программы CGI расположены в /usr/local/etc/httpd/cgi-bin, строка ScriptAlias в вашем файле srm.conf должна походить на следующую:

Чтобы обращаться или ссылаться на программы CGI, расположенные в этом каталоге, используется следующий URL:

Например, допустим, что Вы скопировали программу hello.cgi в Ваш каталог cgi-bin (например, /usr/local/etc/httpd/cgi-bin) на Вашем сервере Веб, называемом www.company.com. Чтобы обратиться к вашему CGI, используйте следующий URL: http://www.company.com/cgi-bin/hello.cgi

Сервер CERN конфигурирован так же, как и серверы Apache и NCSA. Вместо ScriptAlias, сервер CERN использует команду Exec. Например, в файле httpd.conf, Вы увидете следующую строку:

Другие серверы UNIX можно конфигурировать таким же способом; более подробно об этом описано в документации сервера.

Установка CGI на Windows

Большинство серверов, доступных для Windows 3.1, Windows 95 и Windows NT конфигурировано с помощью метода «расширение имени файла» для распознавания CGI. Вообще, изменение конфигурации сервера на базе Windows просто требует выполнения программы конфигурации сервера и внесения соответствующих изменений.

Если сервер не выполняет такой тип ассоциации файла, можно определить пакетный файл упаковщика, который вызывает как иинтерпретатор, так и сценарий. Как и с сервером UNIX, не устанавливайте интерпретатор ни в каталоге cgi-bin ни в каком-либо Веб-доступном каталоге.

Установка CGI на Macintosh

Выполнение CGI

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

Быстрая обучающая программа по формам HTML

Представление формы

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

Этот тег создает внутри вашей формы кнопку Submit. Когда пользователь закончивает заполнение формы, он или она может отправить ее содержание по адресу URL, указанному атрибутом ACTION формы, кликая кнопку Submit.

Принятие ввода от браузера

Программа CGI получает два вида информации от браузера.

Переменные среды

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

Чтобы записать приложение CGI, которое отображает переменные среды, нужно знать, как выполнить две вещи:

Вы уже знаете, как выполнять последнюю операцию. В Perl переменные среды сохраняются в ассоциативном массиве %ENV, который вводится именем переменной среды. Листинг 2.3 содержит env.cgi, программу Perl, которая служит для достижения нашей цели.

Листинг 2.3. Программа Perl, env.cgi, которая выводит все переменные среды CGI.

Подобная программа может быть написана в C; полный код находится в Листинге 2.4.

Чтобы определить, который метод используется, программа CGI проверяет переменную среду REQUEST_METHOD, которая будет установлена либо в GET, либо в POST. Если она установлена в POST, длина закодированной информации сохранена в переменной среды CONTENT_LENGTH.

Закодированный Ввод

Чтобы определить это, браузер использует кодирующую спецификацию URL, которая может быть описана следующим образом:

Ваша конечная закодированная строка будет похожа на следующую:

Примечание: Спецификации для кодирования URL находятся в RFC1738.

Например, предположим, что у вас была форма, которая запросила имя и возраст. Код HTML, который использовался для отображения этой формы, представлен в листинге 2.5.

Листинг 2.5. Код HTML для отображения формы имени и возраста.

Синтаксический анализ ввода

Общая цель большинства библиотек, написанных на различных языках, состоит в том, чтобы анализировать закодированную строку и помещать пары имен и значений в структуру данных. Имеется очевидное преимущество в использовании языка, который имеет встроенные структуры данных типа Perl; однако, большинство библиотек для языков низшего уровня типа C и C++ включает выполнение структуры данных и подпрограммы.

Не обязательно добиваться полного понимания библиотек; гораздо важнее научиться использовать их как инструментальные средства, чтобы упростить работу программиста CGI.

Cgihtml

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

Чтобы проанализировать вводную строку «name / age» («имя / возраст») в C, используя cgihtml, используется следующее:

Чтобы обратиться к информации о возрасте, можно либо проанализировать список вручную, либо использовать имеющуюся функцию cgi _val ().

Значение «возраста» теперь сохранено в строке age.

Примечание: Вместо использования простого массива (подобно char age [5];), я занимаюсь динамическим распределением пространства памяти для строки age. Хотя это усложняет программирование, тем не менее это важно с точки зрения безопасности. Более подробно о этом говорится в Главе 9.

Простая программа CGI

Вы собираетесь записать программу CGI, называемую nameage.cgi, которая обрабатывает форму «имя / возраст». Обработка данных (что я обычно называю «промежуточным материалом») минимальна. Nameage.cgi просто декодирует ввод и отображает имя пользователя и возраст. Хотя не особенно много пользы от такого инструмента, он демонстрирует наиболее критический аспект программирования CGI: ввод и вывод.

Вы используете ту же самую форму, как описано выше, вызывая поля «имя и возраст». Пока не стоит беспокоиться об ошибкоустойчивости и эффективности; решите имеющуюся задачу простейшим образом. Решения в Perl и C показаны соответственно в листингах 2.6 и 2.7.

Листинг 2.6. Nameage.cgi в Perl

Листинг 2.7. nameage.cgi в C

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

Попытайтесь выполнить программу, заполняя форму и нажимая кнопку Submit.

Общая стратегия программирования

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

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

Резюме

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

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

Источник

CGI и VFX. 5 вещей, которые нужно знать про видеопроизводство

Кинопродакшн значительно эволюционировал с момента своего создания, особенно в области компьютерной графики. CGI настолько часто используется в производстве, что порой трудно отличить реальность от спецэффектов. Что же такое CGI, VFX, и что необходимо знать перед началом съемок?

CGI – это сгенерированные компьютером изображения. Это могут быть 2D или 3D анимации, объекты или изображения. Графика используется в клипах, фильмах, рекламе, видеоиграх.

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

Качество визуала с каждым годом растет, растут и требования к нему. Разработка даже короткого анимационного клипа CGI – достаточно трудоемкий и дорогостоящий процесс.

Сегодня при упоминании технологии CGI в производстве, речь практически всегда идет о работе с VFX.

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

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

Примером VFX могут быть драконы, летящие по небу в «Игре престолов», или космический корабль, летящий в космосе в «Звездных войнах».

Источник

Cgi что это

CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитают названия «скрипт» (сценарий) или «CGI-программа».

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

CGI является одним из наиболее распространённых средств создания динамических веб-страниц.

Содержание

Пример

См. также

Ссылки

Литература

Canonical XML • CDF • CSS • DOM • Geolocation API • HTML • ITS • MathML • OWL • P3P • PLS • RDF (Schema) • SISR • SKOS • SMIL • SOAP • SRGS • SSML • SVG • SPARQL • Timed Text • VoiceXML • WSDL • XForms • XHTML • XHTML+RDFa • XInclude • XLink • XML (Base • Encryption • Events • Information Set • namespace • Schema • Signature) • XPath / 1.0 / 2.0 • XPointer • XProc • XQuery • XSL • XSL-FO • XSLT (элементы) • XUP

CCXML • CURIE • HTML5 • InkML • RIF • SCXML • SMIL Timesheets • sXBL • WICD • XFDL • XFrames • XBL • XHTML+MathML+SVG • XMLHttpRequest

Web Content Accessibility Guidelines

Multimodal Interaction Activity • Markup Validation Service • Web Accessibility Initiative

World Wide Web Foundation • SVG Working Group • WebOnt • Device Description Working Group • WHATWG

Agora • Argo • Arena • Amaya • CERN httpd • Libwww • Line Mode Browser

IW3C2 • World Wide Web Conference • WWWC1

Полезное

Смотреть что такое «CGI» в других словарях:

CGI.pm — Original author(s) Lincoln Stein Stable release 3.49 / 2010 02 05 Platform Perl Type Perl module for CGI … Wikipedia

CGI — 〈EDV; Abk. für engl.〉 Common Gateway Interface (allgemeine Schnittstelle) * * * CGI [Abk. für Common Gateway Interface, dt »allgemeine Schnittstelle für den Übergang (zwischen einem Webserver und Programmen)«], ein Standard im World Wide We … Universal-Lexikon

CGI — may refer to: Contents 1 Technology 2 Organizations 3 Other 4 See also Technology Computer generated imagery … Wikipedia

CGI — Saltar a navegación, búsqueda La sigla CGI puede referirse: Common Gateway Interface, una tecnología que se usa en los servidores web; Computer generated imagery, imágenes generadas por computadora (en inglés), es el resultado de usar… … Wikipedia Español

CGI — 〈EDV; Abk. für engl.〉 Common Gateway Interface (allgemeine Schnittstelle) … Lexikalische Deutsches Wörterbuch

cgi — by 2004, acronym for computer generated imagery … Etymology dictionary

CGI — (Common Gateway Interface) interface used to access information banks through http services on the Internet (Computers) … English contemporary dictionary

CGI — DEFINICIJA krat. int. 1. standardno sučelje između klijenta i poslužitelja 2. specifikacija koja određuje format i sintaksu za prosljeđivanje podataka web poslužiteljima od strane klijenta ETIMOLOGIJA engl. Common Graphics Interface (Common… … Hrvatski jezični portal

CGI — in full Common Gateway Interface. Specification by which a Web server passes data between itself and an application program. Typically, a Web user will make a request of the Web server, which in turn passes the request to a CGI application… … Universalium

CGI — abbrev 1. City and Guilds (of London) Institute (also CGLI) 2. Computer generated imagery. * * * CGI UK [ˌsiː dʒiː ˈaɪ] US [ˌsi dʒi ˈaɪ] noun computing computer generated imagery: images produced by a computer Thesaurus: abbreviations used in… … Useful english dictionary

Источник

Cgi что это

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

Запросы для различных методов

Информация шлюзам передается в следующей форме:

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

Пример

Возьмем результат работы формы с методом POST (METHOD=»POST») в качестве примера. Пусть получено 7 байт, закодированных примерно так:

В этом случае, сервер установит значение CONTENT_LENGTH равным 7 и CONTENT_TYPE в application/x-www-form-urlencoded. Первым символом в стандартном потоке ввода для шлюза будет «a», з которым будет следовать остаток закодированной строки.

Аргументы командной строки

Шлюз в командной строке от сервера получает:

Ключевые слова, имена полей формы и значения передаются раскодированными (из HTTP URL формата кодирования) и перекодированными в соответствии с правилами кодирования Bourne shell, так что шлюз в командной строке получат информацию в том виде, как она есть без необходимости осуществлять дополнительные преобразования.

Запросы оператора FORM

Запросы оператора FORM обрабатываются таким образом, что каждый параметр, отвечающий за имя поля оканчивается знаком равенства, а остаток представляет собой значение этого параметра. Если присутствует что либо после имени скрипта(шлюза), то эта информация передается в качестве первого параметра. Иначе первый параметр будет пуст.

Примеры:

CGI переменные окружения

Следующие переменные окружения не являются специфичными по типу запросов и устанавливаются для всех запросов.

SERVER_SOFTWARE Название и версия информационного сервера, которые отвечает на запрос (и запускает шлюз). Формат: имя/версия SERVER_NAME Имя хоста, на котором запущен север, DNS имя, или IP адрес в том виде, в котором он представлен в URL. GATEWAY_INTERFACE Версия CGI спецификации на тот момент, когда компилировался сервер. Формат: CGI/версия

Следующие переменные окружения являются специфичными для разных запросов, и заполняются перед вызовом шлюза:

В дополнении к этим, если запрос содержит дополнительные поля заголовка запроса, они помещаются в переменные окружения с префиксом HTTP_, за которым следует имя заголовка. Любые символы ‘-‘ в заголовке меняются на символы подчеркивания ‘_’. Сервер может исключить любые заголовки, которые он уже обработал, такие как Authorization, Content-type, и Content- length. Если необходимо, сервер может исключить любые (или вообще все) дополнительные поля заголовка в случае, когда их включение может привести к превышению предела размера переменных окружения. Примером такой переменной может служить переменная HTTP_ACCEPT, которая была определена в спецификации CGI/1.0. Другим примером может служить заголовок User-Agent.

HTTP_ACCEPT Список MIME типов, которые клиент может обработать, как задано в HTTP заголовках. Другие протоколы должны получить эту информацию из других мест (если она им необходима). Каждый тип в этом списке должен быть отделен запятой согласно HTTP спецификации. Формат: тип/подтип, тип/подтип HTTP_USER_AGENT Просмотрщик, который использует клиент для посылки запроса. Общий формат: программа/версия библиотека/версия.

Вывод информации шлюзом

Основные концепции

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

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

Заголовок выходного потока

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

Заголовки с синтаксическим разбором

Вывод шлюза начинается с маленького заголовка. Он содержит текстовые строки, в том же формате, как и в HTTP заголовке, кончающемся пустой строкой (содержащей только символ перевода строки или CR/LF).

Любые строки заголовка, не являющиеся директивами сервера, посылаются непосредственно клиенту. В настоящий момент, CGI спецификация определяет три директивы сервера:

Content-type MIME тип возвращаемого документа. Location Это поле используется в случае, когда необходимо указать серверу, что возвращается не сам документ, а ссылка на него.

Если аргументом является URL, то сервер передаст клиенту указание на перенаправление запроса. Если аргумент представляет собой виртуальный путь, сервер вернет клиенту заданный этим путем документ, как если бы клиент запрашивал его непосредственно.

Примеры

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

Теперь рассмотрим шлюз, который, в некоторых случаях, должен выдать документ /path/doc.txt с донного сервера как если бы он был непосредственно востребован клиентом через http://server:port/path/doc.txt. В это случае вывод шлюза будет таков:

Наконец, предположим, что шлюз возвращает ссылки на gopher сервер, например на gopher://gopher.ncsa.uiuc.edu/. Вывод шлюза будет следующий:

Non-parsed headers

Допустим теперь, что у нас имеется шлюз, который общается с клиентом непосредственно. Как уже отмечалось, его имя должно начинаться с префикса nph- и он должен возвращать допустимый HTTP заголовок. В этом случае, если доступ к шлюзу был осуществлен со значением SERVER_PROTOCOL равным HTTP/1.0, его вывод должен удовлетворять HTTP/1.0:

Источник

Cgi что это

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

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

В web-сервере Apache такая настройка производится с помощью файла .htaccess в той директории, где содержится этот скрипт. Вот содержание такого файла:

Также Apache позволяет запускать все скрипты имеющие рассширение .cgi, если в файле настроек сервера httpd.cong есть настройка:

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

Источник

Cgi что это

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

Или же реклама банка «Траст» с участием Брюса Уиллиса, где он чудесным образом спасает целый автобус от неминуемой гибели, прохаживаясь по его крыше, пока тот завис над бездной. Здесь тоже не обошлось без компьютерной графики.

Рекламная визуализация изумляет, она повсюду – в видеороликах на телевидении, в интернете, полиграфии в СМИ, буклетах, промо-материалах, на бигбордах и фасадах зданий.

Красивые картинки – основной материал для создания промо. Из них делают все возможное и необходимое.

Рассмотрим основные направления визуализации, которые используют отдельно и вместе в зависимости от необходимости, навыков дизайнера:

Чтобы создать приличную рекламу дизайнеру нужно уметь работать с графическими 2D и 3D редакторами: 3DsMax, Photoshop, Maya, Cinema 4D, Houdini, Blender. В зависимости от поставленной задачи, для ее реализации может хватить только 2D Photoshop, например, для создания одного ландшафта или фона с двух, нескольких других.

Для моделирования деталей, сложной анимации понадобится 3DsMax и другие 3D программы. Это фантастические, фэнтези элементы, которых невозможно сфотографировать в реальном мире. Например, чтобы изобразить «Тысячелетнего сокола» из Star Wars в парке, который находится через две улицы, и понадобится 3D-редактор.

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

Cgi что это

3D-редактор – это место безграничных возможностей, полета фантазии. При надлежащем количестве навыков и таланта – графический дизайнер в программе создаст все что угодно.

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

Также, без программы невозможно визуализировать объекты из фантазии дизайнера, автора, редактора.

Источник

CGI — не приговор

Для всех тех, кто считает, что CGI «убил кино»: наглядные доказательства, как сильно графика помогает режиссёрам снимать фильмы, даже если речь идёт не обо многомиллионных блокбастерах.

Cgi что это

В последние, наверное, десять лет — ещё с момента выхода «Аватара» Джеймса Кэмерона, когда вся киноиндустрия массово поверила в созидательную силу компьютерной графики, — мы часто слышим следующие тезисы: «CGI убивает кино!», «Графика становится хуже и хуже» или ещё что-то в таком роде.

Отчасти, конечно, последний тезис справедлив — многие кинематографисты откровенно перебарщивают с использованием визуальных эффектов, а компьютерная анимация даже в топовых блокбастерах вроде «Чёрной пантеры» не всегда выглядит впечатляюще. Не потому что технологии за 11 лет с «Аватара» стали хуже — нет, разумеется. Просто студии начали экономить, и специалисты по VFX часто не имеют достаточно времени, чтобы доработать проект как надо.

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

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

Cgi что это

Возьмём пример из фильма, в котором на первый взгляд компьютерной графики нет вообще и быть не должно. В проникновенной мелодраме Энга Ли о внезапно вспыхнувшей любви двух пастухов (Джейк Джилленхол и Хит Леджер) нет места задорным экшен-сценам или невероятным сеттингам — весь фильм происходит в пасторальных пейзажах Средней Америки.

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

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

Cgi что это

Другой фильм, который не особо заподозришь в использовании CGI, — «Кровавый алмаз», суровая криминальная драма с Леонардо ДиКаприо в главной роли. На самом деле здесь и графика использована крайне нетипичным образом: работа визуальных артистов призвана «доработать» то, чего режиссёру Эдварду Цвику не удалось добиться от актрисы.

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

Cgi что это

Cgi что это

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

Но есть в фильме и куда более незаметная компьютерная графика. Например, ближе к финалу во всех сценах руки героини не настоящие. Они сделаны более длинными и гладкими с помощью CGI. И хотя мы можем этого не замечать, наше подсознание улавливает это изменение как нечто неправильное и выбивающееся. Создаётся что- то вроде эффекта «зловещей долины», что фильму, надо сказать, очень подходит.

Cgi что это

Cgi что это

Пример компьютерной графики, созданной лишь из необходимости. В фильме «Боец» Дэвида О. Рассела — приземлённой драме о боксёре — есть сцена, где герой Марка Уолберга берёт номер телефона у официантки в баре, сыгранной Эми Адамс. Она пишет номер на салфетке, после чего Уолберг радостно идёт показывать салфетку своим друзьям.

Конечно, мало кто мог это заметить (да и с чего бы), но салфетка эта — компьютерная. Зачем это было делать? Вопрос не артистического, а исключительно юридического характера. По закону кинематографисты не имеют права показывать телефонный номер на экране, и потому О. Рассел оставил салфетку пустой, а команда по VFX дорисовала номер так, чтобы его нельзя было различить.

Cgi что это

Cgi что это

Ещё один пример CGI, использованного из необходимости и чтобы помочь кинематографистам спокойно делать свою работу. В третьей части «Крепкого орешка» МаккЛейн вынужден выполнять задания преступника-маньяка, и по условиям одного из них он должен стоять на улице в «чёрном» квартале с вывеской «Ненавижу ниггеров».

Естественно, снимать на натуре с таким реквизитом было бы попросту опасно. Поэтому вывеску оставили пустой, а надпись дорисовали с помощью графики. Это же позже позволило авторам для версии фильма для ТВ исправить надпись на «Ненавижу всех».

Cgi что это

Cgi что это

Возможно, один из самых странных примеров использования CGI — фильм «Джон Уик», славящийся как раз тем, что все экшен-сцены здесь сняты чуть ли не исключительно с помощью практических эффектов.

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

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

Cgi что это

Cgi что это

Закончим более свежими примерами. В номинанте на «Оскар» этого года, военном эпике «1917», сполна практических эффектов, но многие из них было бы невозможно сделать без помощи CGI.

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

Cgi что это

Cgi что это

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

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

Источник

Библиотека Интернет Индустрии I2R.ru

Малобюджетные сайты.

Продвижение веб-сайта.

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

Что такое CGI?

Е сли это программа, то она должна иметь любой приемлемый для конкретной операционной системы исполняемый формат. Программы можно писать на чем угодно: C/C++, Pascal, Java, Visual и просто Basic, delphi и т.д.

Е сли это скрипт (сценарий), то на операционной системе, под которой крутиться веб-сервер должен быть соответствующий интерпретатор сценариев: shell, perl, tcl/tk, command.com и т.д.

Механизм работы CGI программ

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

С огласно последним веяниям по соблюдению безопасности не рекомендуется использование shell для написания CGI скриптов.

1.1 Вызов CGI без параметров

П ростейший скрипт, выводящий текущую дату: #!/bin/sh echo Content-type: text/html echo echo «

Today is » date echo «

1.2 Передача параметров CGI скрипту или программе

П ри использовании GET параметры добавляются к запрашиваемому URL и его можно вызывать таким образом: http://какой-то_хост/cgi-bin/какой-то_скрипт?параметры что позволяет делать на такой скрипт ссылки в HTML документах. А на сервере переданные параметры присваиваются переменной QUERY_STRING.

Текст самого скрипта: #!/bin/sh echo Content-type: text/html echo echo «

Вы посылали вот это:

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

М етод POST позволяет обеспечить конфиденциальность при передаче параметров скрипту. Но он передает параметры на стандартный поток ввода и для этого приходится использовать формы. Сервер не посылает скрипту EOF в конце передачи. Вместо этого вам придется использовать пременную окружения CONTENT_LENGTH, чтобы определить какой объем данных вам надо считать из stdin.

Пишем счетчик

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

Э та глава руководства будет скорее полезна тем, кому интересен именно механизм работы счетчиков, поскольку все прилагаемые примеры особыми «наворотами» по части настроек, администрения, и т.п. не обладают. Более «навороченые», готовые к эксплуатации счетчики ищите на Altavista, Yahoo и др. поисковых серверах. Или спрашивайте в соответствующих конференциях новостей (relcom.www.users, relcom.www.support; в фидошных эхах ru.internet.*).

2.1 Типы счетчиков


2.2 Cчетчик посещений работающий как SSI

В от тут будем считать :
(нажимайте Reload пока не надоест)

Э тот счетчик текстовый, т.е. скрипт возвращает просто текст, который и показывается. Аналогичным образом можно выводить и картинки. Для этого нужно, чтоб вместо текстовых цифр выводились тэги img src=»http://www.i2r.ru/static/260/%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B0_%D1%81_%D1%81%D0%BE%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B9_%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B9″. Пытливый читатель легко догадается, что количество тегов img src. равно количеству цифр в значении возвращаемом счетчиком.

В ызов этого счетчика в теле документа осуществляется командой:

2.3 Счетчик не использующий SSI

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

Server side includes


3.1 Что такое SSI


3.2 Основные SSI директивы

CGI скрипту передаются так же значения переменных PATH_INFO и QUERY_STRING оригинального запроса клиента.

3.3 SSI переменные окружения


3.4 Настройка сервера

Д ля того, чтобы серевер знал, в каком месте в документе подставлять данные, он должен этот документ проанализировать. Анализируемые сервером документы называются server-parsed документами.

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

Для получения более детальной информации по конфигурированию вашего сервера на предмет использования SSI читайте документайию на ваш сервер.

Приложения


Приложение 1. Переменные окружения сервера

Н иже приведен список основных переменных окружения сервера с краткими описанием назначения.В данном случае сервер Apache 1.2.5 с модулем PHP/FI-2.0.1. Для других веб-серверов (MS IIS, Netscape, NCSA httpd, и т.д.) переменные могут отличаться.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *