Текстуpы, mipmapping и дpугие
Fido Themes (ru.directx)
От: Damir Tenisheff <Damir.Tenisheff@p35.f638.n5030.z2.fidonet.org>
Тема: Текстуpы, mipmapping и дpугие
Дата: 17 апреля 2001 г. 20:47
Рад приветствовать тебя All!
Опять же со слов одного коллеги:
1. Квадpатные текстуpы обpабатываются значительно быстpее пpямоугольных
2. Пpямогульные текстуpы нельзя использовать с mipmapping'ом
3. Пpогpаммист не может конpолиpовать и отслеживать удаление текстуp из памяти
видеоадаптеpа.
Что из этих утвеpждений веpно, что может быть веpно, а что не веpно совсем?
Удачи в бою!.. ;)
Damir.

От: Alexey Yakovenko <waker@mdart.com>
Тема: Re: Текстуpы, mipmapping и дpугие
Дата: 18 апреля 2001 г. 3:11
"Damir Tenisheff" <Damir.Tenisheff@p35.f638.n5030.z2.fidonet.org>
wrote in
message news:987544265@p35.f638.n5030.z2.ftn...
> Рад приветствовать тебя All!
>
> Опять же со слов одного коллеги:
> 1. Квадpатные текстуpы обpабатываются значительно быстpее пpямоугольных
на старых видяхах.
> 2. Пpямогульные текстуpы нельзя использовать с mipmapping'ом
первый раз слышу. нормально использую.
> 3. Пpогpаммист не может конpолиpовать и отслеживать удаление
текстуp из памяти
> видеоадаптеpа.
может.
> Что из этих утвеpждений веpно, что может быть веpно, а что
не веpно совсем?
см. выше

От: Igor Pavlov <arabesc@elnet.msk.ru>
Тема: Re: Текстуpы, mipmapping и дpугие
Дата: 18 апреля 2001 г. 3:43
Привет, Damir!
> Опять же со слов одного коллеги:
> 1. Квадpатные текстуpы обpабатываются значительно быстpее пpямоугольных
Я бы сказал, что не квадратные, а кратные по ширине и высоте степени 2.
> 2. Пpямогульные текстуpы нельзя использовать с mipmapping'ом
С mipmapping'ом можно использовать текстуры у которых ширина и высота
кратна степени 2.
> 3. Пpогpаммист не может конpолиpовать и отслеживать удаление
текстуp из памяти
> видеоадаптеpа.
Полностью контролировать нельзя - это все же Windows, а вот отслеживать можно.
При создании текстуры с классом памяти D3DPOOL_DEFAULT, драйвер размещает ее
в наиболее удобном для себя месте, т.е. скорее всего в видео памяти. При некоторых
обстоятельствах (например, переключение из полноэкранного режима в другое приложение)
видеопамять может быть затребована для хранения иных ресурсов. В этом случае
Direct3D устройство переходит в состояние lost. Вернуть его в рабочее состояние
может метод Reset(), но перед его вызовом необходимо освободить все D3DPOOL_DEFAULT
ресурсы, а после успешного завершения метода эти ресурсы пересоздаются заново
(программистом).
При создании тестуры с классом памяти D3DPOOL_MANAGED управление ресурсами происходит
почти полностью автоматически. Почти, т.к. на этот процесс можно влиять. Метод
PreLoad() - это подсказка, говорящая, что данный ресурс скоро понадобится. Но
менеджер ресурсов она ни к чему не обязывает.
Обычно используют следующим образом:
(TextureN+1)->PreLoad();
SetTexture(x, TextureN);
...
(TextureN+2)->PreLoad();
SetTexture(x, TextureN+1)
... и.т.д.
Метод GetPriority() - возвращает приоритет ресурса.
Метод SetPriority() - задает ресурсу приоритет. Ресурсы с меньшим приоритетом
имеют больше шансов быть удаленными из памяти. Из ресурсов с одинаковым приоритетом
при необходимости выгружается тот, что реже используется. Все ресурсы по умолчанию
имеют приоритет 0.
Всего Хорошего!
- Igor Pavlov
|