Комментарий к Статье Реализация glow-эффекта вокруг трёхмерного объекта
1. В DX Help написано: Textures created in D3DPOOL_DEFAULT are not-lockable, вопрос как же в данной статье тогда это будет работать ?! Я по своей наивности не поверив DX help решил проверить, и как ни странно - не работает ;)
2. функция CopyFromRT явно не целостна, потому не ясно как всё-таки сделано копирование
3. А можно ли получить рабочий исходник от данной статьи?
Размытие не надо делать на CPU. Надо на карте. Хорошие фильтры реализуются и там. Гораздо лучше и быстрее.
Семен
можешь подсказать в какую сторону копать ?
p.s. На самом деле мне нужно уменьшить разрешение отрендеренной текстуры, со сглаживанием... теоретически это выполняет D3DXLoadSurfaceFromSurface, но мне не очень нравиться алгоритм(ы) которые используются для масштабирования... хотелось бы использовать свой... но как?
SetRenderTarget на текстуру маленького разрешение, рисуешь один квад с изначальной текстурой, включаешь билинейку.
Свой алгоритм сглаживания использовать на карте можно только если ты его реализуешь на пиксель-шейдере.
Семен
имелось ввиду применительно к:
http://www.gamedev.ru/forum/?action=showtopic&group=0&topic=5299
Ответ ничем не отличается. На проце это делать - хуже не придумаешь, хоть и можно. FPS будет никакущий.
Гораздо лучше - делать на карте, используя пиксель шейдер. Пусть и в несколько проходов, например.
Ё моё ну кто такие коды выкладывает...
// Проходим по всем пикселям, и заполняем массивы
DWORD color;
for (register i=0; iUnlockRect(0);
}
что тут написано?...
tFBDemon
некрофил?
tFBDemon
тема 2003 года))))
Злой Ирофф
Правельнее геронтофил
tFBDemon
Тема дурная и безполезная даже для того времени
ошибка... при создании 4 вершин для экраного квадрата, там во первых пропущена нижняя левая вершина, во вторых мне не нравится порядок вершин, треугольники делаются из 123 и 243 вершины, получается первый по часовой а второй нет, там скорее так должно быть
ScreenVertex v[4]; v[0].pos = D3DXVECTOR4(0.0f, 0.0f, 1.0f, 1.0f); v[1].pos = D3DXVECTOR4(vp.Width, 0.0f, 1.0f, 1.0f); v[2].pos = D3DXVECTOR4(0.0f, vp.Height, 1.0f, 1.0f); v[3].pos = D3DXVECTOR4(vp.Width, vp.Height, 1.0f, 1.0f); // текстура должна быть растянута по всему кваду v[0].tex = D3DXVECTOR2(0.0f, 0.0f); v[1].tex = D3DXVECTOR2(1.0f, 0.0f); v[2].tex = D3DXVECTOR2(0.0f, 1.0f); v[3].tex = D3DXVECTOR2(1.0f, 1.0f);
если включено отсечение граней против часовой
Блин, вот искал, как получить данные из рендера в текстуру. Здесь нашел ответ про установку флага. Отлично, работает, данные получаю.. НО ТАК МЕДЛЕННО!!! Ужс... Через GetRenderTargetData и то в 30 раз быстрее... (текстура 1280*1024)
Тема в архиве.