Читаем Журнал «Компьютерра» №1-2 за 2006 год полностью

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

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

Для таких случаев существует технология теневых объемов (Shadow Volume). Нам придется дважды нарисовать часть сцены, на которую может попасть тень. Сначала для отбрасывающего тень объекта строится трехмерное тело, соответствующее той части пространства, которую он затеняет. Например, для круга – это будет конус, а для треугольника – пирамида. Понятно, что построить такое тело для объекта сложной формы непросто, хотя можно построить отдельный объем для каждого полигона, а потом их объединить. После чего встроенными средствами видеокарты мы можем отсечь часть сцены, не попадающую в теневой объем. Затем, отсекая то, что не попало в объем, нарисуем ту же сцену, но с приглушенными цветами. Этот метод позволяет рисовать тени, которые одни сложные объекты отбрасывают на другие не менее сложные, а также на самих себя. В последнем случае придется рисовать объект столько раз, сколько в нем содержится полигонов. Shadow Volume подходит не только для создания теней, но и для имитации ярких пучков света. В этом случае объем будет соответствовать пучку света, а части сцены, попадающие внутрь пучков, будем рисовать ярче, чем остальные. Если же тела, соответствующие теневым объемам, сделать полупрозрачными, то лучи будут отчетливо видны в пространстве. Останется только решить проблему просвечивания пучков через объекты сцены.

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

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

Отражения

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

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

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

Перейти на страницу:

Все книги серии Компьютерра

Похожие книги

«Если», 2000 № 08
«Если», 2000 № 08

ФАНТАСТИКАЕжемесячный журналСодержание:Джеймс Типтри-младший. ДЕВОЧКА, КОТОРУЮ ПОДКЛЮЧИЛИ, рассказВернисаж*Вл. Гаков. ЧУЖАК В ЧУЖОЙ СТРАНЕ, статьяКир Булычёв. ЧЕГО ДУША ЖЕЛАЕТ, рассказВидеодром*Атлас--- Галина Компаниченко. НА РОДИНЕ РОБОТОВ, статья*Скандал сезона--- Вл. Гаков. «НО НЕ ЛЮБИМ МЫ ЕГО НЕ ЗА ЭТО…», статья*Рецензии*Экранизация--- Дмитрий Байкалов. СТРАННАЯ ИСТОРИЯ СО ЗНАМЕНИТЫМ РАССКАЗОМ, статьяБрайан Олдисс. ВИДИМОСТЬ ЖИЗНИ, рассказВладимир Хлумов. МОЛЧАНИЕ КОСМОСА, статьяАлександр Громов. ВЫЧИСЛИТЕЛЬ, повестьДжеймс Келли. КРОШКА-МОШКА-ПАУЧОК, рассказАлександр Ройфе. В ПОИСКАХ НОВОГО ИДЕАЛА, круглый столКонкурс «Альтернативная реальность»*Валерия Илющенко. НАКАЗАНИЕ ПЕРВОЙ СТЕПЕНИ, рассказВладимир Михайлов. ХОЖДЕНИЕ СКВОЗЬ ЭРЫ, окончание эссеРецензииКрупный план*Дмитрий Володихин. ИЛЛЮЗИЯ РЕАЛЬНОСТИ, статья2100: история будущего*Алексей Зарубин. НА ЧАРЕ ВСЕ СПОКОЙНО…, рассказКурсорPersonaliaНа обложке иллюстрация И. Тарачкова к повести Александра Громова «Вычислитель».Иллюстрации А. Филиппова, А. Жабинского, А. Балдина, И. Тарачкова, О. Дунаевой.

Александр Николаевич Громов , Валерия Валерьевна Илющенко , Владимир Гаков , Джеймс Типтри-младший , Журнал «Если»

Фантастика / Журналы, газеты / Научная Фантастика
«Если», 2003 № 03
«Если», 2003 № 03

Кейдж БЕЙКЕР. КАРАВАНЛюбители острых ощущений могут готовиться к походу. Путь неблизкий, мир странный, компания подобралась душевная — что еще надо?Геннадий ПРАШКЕВИЧ. ПЕРСТЕНЬ НА ТРИ ЖЕЛАНИЯА как у вас там с фамилией?Стивен ПАЙЗИКС. ЗАВИСИМОСТЬКто-то берется за спицы из любви к рукоделию, кто-то — успокоить нервы, а кто-то — совсем с иной целью.Кирилл БЕНЕДИКТОВ. КОНКИСТАДОР В СТРАНЕ СНОВПалач смакует свою роль, забавляясь наивным неведением «клиента». А тот все толкует о каком-то Пути Богов.Александр ЗОРИЧ. ВТОРОЙ ПОДВИГ ЗИГФРИДАПрекрасная Кримхильда видела много подвигов в свою честь, но о таком и помыслить не смела.Еугениуш ДЕМБСКИЙ. ВОЛЯ ДРАКОНАХотите рассмотреть изнанку героической фэнтези?Андрей ЛЕГОСТАЕВ. ТОСТ В ЧЕСТЬ ПОБЕДИТЕЛЯПраво же, так и вспоминается Олимпиада в Солт-Лейк-Сити…ВИДЕОДРОМДеликатесы города потерянных детей… Звонят, откройте телевизор… Экранизации не горят!.. Явление Горлума народу.ВЕРНИСАЖМы говорили — «героическая фэнтези», подразумеваем — «Фразетта».Виталий КАПЛАН. ДИНАМО-МАШИНА, ИЛИ ВЕЧНЫЙ ДВИГАТЕЛЬ ФАНТАСТИКИПисатели на скоростных магистралях… А может, притормозить?ЭКСПЕРТИЗА ТЕМЫ«В принципе, я согласен, но хочу возразить…»РЕЦЕНЗИИЗаглянем в книжный магазин.КУРСОРНовый Grand Master, творческие планы, неизвестная книга Дж. P.P. Толкина и прочие новости.Мария ГАЛИНА. УНИВЕРСАМ ПРОТИВ УНИВЕРСУМАПисателю хорошо известно, на чем стоит мир. Особенно, если мир плоский.АЛЬТЕРНАТИВНАЯ РЕАЛЬНОСТЬПредставляем второго победителя конкурса для начинающих фантастов.Глеб ЕЛИСЕЕВ. КОЛЛЕКТИВНЫЙ РАЗУМИтоги голосования на сайте «Русская фантастика».Бела КЛЮЕВА. ЗДРАВСТВУЙТЕ, Я ВАША БАБУШКА!…заявляет старейший редактор фантастики и имеет на это звание полное право.ПЕРСОНАЛИИИнтернациональный экипаж номера.

Белла Клюева , Виталий Каплан , Дмитрий Володихин , Евгениуш Дембский , Екатерина Постникова

Фантастика / Эссе / Проза / Журналы, газеты / Научная Фантастика / Фэнтези
«Если», 1998 № 08
«Если», 1998 № 08

ФАНТАСТИКАЕжемесячный журналСодержание:Нэнси Кресс. ЦВЕТЫ ТЮРЬМЫ АУЛИТ, повестьДжек Вэнс. РАЗУМ ГАЛАКТИКИ, рассказВладимир Успенский. ОСОБЕННОСТИ НАЦИОНАЛЬНОЙ ОХОТЫ НА ИЗБИРАТЕЛЯКоллектив авторов. БОЕВАЯ СТАНЦИЯ*Билл Фосетт. ПРОЛОГ, хроники*Дэвид Аллен Дрейк. ВСТРЕЧА С ВРАГОМ, рассказ*Билл Фосетт. БОЕВАЯ СТАНЦИЯ, хроники*Кристофер Сташефф. ДЕТИ ГЛОБИНА, рассказ*Билл Фосетт. СТИВЕН ХОУКИНГ, хроники*Роберт Шекли. КОМАНДИРОВКА НА ЛЮМИНОС, рассказ*Билл Фосетт. БЕЗВЫХОДНАЯ СИТУАЦИЯ, хроники*Джанет Моррис. ПЕРЕСЕЛЕНИЕ ДУШИ, рассказ*Билл Фосетт. ПОСЛЕДНИЙ РЕЗЕРВ, хроники*Кэтрин Куртц. ЖЕРТВОПРИНОШЕНИЕ, рассказСергей Переслегин. СТРАТЕГИЯ И ТАКТИКА ГАЛАКТИЧЕСКИХ ВОЙНПол Деллинджер. ИГРА В КОСТИ СО ВСЕЛЕННОЙ, рассказКОНКУРС «АЛЬТЕРНАТИВНАЯ РЕАЛЬНОСТЬ»*Олег Овчинников. ГЛУБИНКА, рассказПРЯМОЙ РАЗГОВОР*Андрей Лазарчук. «РАЗЛИЧИТЬ ИСТИНУ И ВЫМЫСЕЛ НЕВОЗМОЖНО…» (ответы на вопросы читателей «Если»)Дмитрий Байкалов, Андрей Синицын. НЕ ТАК СТРАШЕН ЧЕРТ…КУРСОРРЕЦЕНЗИИPERSONALIAВЕРНИСАЖ*Вл. Гаков. КОНСТРУКТОР ПЯТНИСТЫХ ЗВЕЗДОЛЕТОВВИДЕОДРОМ*Тема— Дмитрий Караваев. «МЫ СВОЙ, МЫ НОВЫЙ МИР…», ИЛИ ГРЕЗЫ КИНО ОБ ЭПОХЕ КОСМИЧЕСКОГО КОЛОНИАЛИЗМА*Рецензии*Хит сезона— Евгений Богарнин. УДАРОМ НА УДАР*Экранизация— Евгений Харитонов. ГИПЕРБОЛОИД СТРЕЛЯЕТ С ЭКРАНА*Рекорды— Игорь Фишкин. КИНОФАНТАСТИКА В «КНИГЕ ГИННЕССА»*Внимание, мотор!— Арсений Иванов. НОВОСТИ СО СЪЕМОЧНОЙ ПЛОЩАДКИОбложка Фосса К. (Chris Foss).Иллюстрации Белова А. С., О. Васильева, А. Филиппова, С. Шехова.

Владимир Гаков , Евгений Викторович Харитонов , Журнал «Если» , Ненси Кресс , Пол Деллинджер

Фантастика / Журналы, газеты / Научная Фантастика