Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Антиалиасинг VS BackBuffer 
:(
    Опции темы
Bitter
Дата 20.5.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 5
Всего: 27



В игре использую заперание Бэкбуфера для проверки выбора объекта по цвету. Пишу так:

Код

  D3Device.GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, Back);
  ZeroMemory(@d3dlr, SizeOf(d3dlr));

  Back.LockRect(d3dlr,nil,D3DLOCK_READONLY);
  // Делаю свои дела
  Back.UnlockRect;


Всё хорошо, пока не включаю антиалиасинг:

При создании устройства пишу 

Код

 MultiSampleType:=D3DMULTISAMPLE_4_SAMPLES;
 ...
  SetRenderState(D3DRS_MULTISAMPLEANTIALIAS,1);


После этого метод  Back.LockRect перестает работать и выдает гадскую ошибку AV.
Если буть точнее, ошибка вылазит при использовании поля d3dlr.pBits, так как оно равно 

nil.

Теперь вопрос: как антиалиасинг примирить с бэкбуфером? Отдельно они работают хорошо.
Спасибо
PM MAIL ICQ Skype   Вверх
Bitter
Дата 20.5.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 5
Всего: 27



Блин! Как выяснилось, это вообще не совместимые вещи. Блин!

Зато есть функция GetFrontBuffer, которая работает в режиме антиалиасинга. Может кто-нить знает, что это такое? И чем она отличается от GetBackBuffer? Ато вразумительного описания я не нашел.

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

Спасибо.

Это сообщение отредактировал(а) Bitter - 20.5.2007, 20:37
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.