9.3. Наложение изображения окружающих предметов Если в составе сцены есть предметы с гладкой поверхностью, то в реальной обстановке на поверхности таких предметов мы всегда видим отраженное изображение близлежащих объектов сцены - отражение среды. Примеров тому не счесть. Если в центр комнаты поместить гладкий металлический шар, то на его поверхности вы увидите, как в кривом зеркале, всю обстановку комнаты. Такое изображение в графической системе можно сформировать, воспользовавшись методом трассировки лучей. Но применение этого метода связано с большим объемом вычислений, а потому формирование изображения, если не использовать специализированную аппаратуру сверхвысокого быстродействия, отнимает довольно много времени. Отраженное изображение можно сформировать и другим способом, во многом аналогичном наложению текстуры. Этот метод использует примерно такую же технологию, как и метод наложения текстур, но вместо искусственно созданных образцов текстур используются карты среды (environmental maps) или карты отражения (reflection maps).
388 Глава 9. Операции с изображением на уровне растрового представления В основе метода лежит чрезвычайно простая идея. Всем известно, что на поверхности зеркала мы видим отражение окружающей обстановки. Если не пытаться воспроизводить программно процесс отражения, а просто принять к сведению, что на поверхности нужно сформировать подобное изображение, то это можно сделать с помощью двухэтапной процедуры. На первом этапе нужно получить изображение среды в том виде, в каком оно проецируется на промежуточную воображаемую картинную поверхность (не обязательно плоскость). Это можно сделать примерно так, как было описано в разделе 9.2. Центр проецирования размещается при этом в центре объекта с отражающей поверхностью, а при формировании проекции сам объект изымается из сцены (рис. 9.16). Сформированные в результате проекции изображения в дальнейшем используются как обычные образцы текстуры, а их наложение выполняется одним из ранее рассмотренных способов. Но следует учесть, что, поскольку мы стремимся воспроизвести эффект отражения, нужно в процессе переноса изображения с промежуточной поверхности на поверхность объекта изменить положение наблюдателя и направление нормали к поверхности, как показано на рис. 9.17.