netlib.narod.ru< Назад | Оглавление | Далее >

6.4. Детализируемые текстуры

Как говорилось в разделе 6.3, треугольник на экране зачастую не совпадает по размерам с треугольным фрагментом текстуры. Чтобы уменьшить различие размеров, можно создать цепочку текстур с постепенно понижаемой детализацией (mipmap). Идея состоит в том, чтобы взять текстуру и на ее основе создать ряд изображений меньшего размера и с меньшим разрешением и для каждого из этих уровней индивидуально настроить фильтрацию, чтобы на изображении сохранялись важные для нас детали (рис. 6.4).


Рис. 6.4. Цепочка текстур с понижаемой детализацией

Рис. 6.4. Цепочка текстур с понижаемой детализацией; обратите внимание, что каждое последующее изображение в цепочке в два раза меньше предыдущего


6.4.1. Фильтр детализации текстур

Фильтр детализации текстур используется для того чтобы управлять тем, как Direct3D использует детализируемые текстуры. Чтобы установить этот фильтр можно написать:

Device->SetSamplerState(0, D3DSAMP_MIPFILTER, Filter);

где Filter может принимать одно из следующих значений:

6.4.2. Использование детализируемых текстур в Direct3D

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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz