ПрограммированиеФорумГрафика

Реализация glow-эффекта вокруг трёхмерного объекта. (Комментарии к статье)

#0
17:34, 7 дек 2003

Комментарий к Статье Реализация glow-эффекта вокруг трёхмерного объекта

#1
17:34, 7 дек 2003

1. В DX Help написано: Textures created in D3DPOOL_DEFAULT are not-lockable, вопрос как же в данной статье тогда это будет работать ?! Я по своей наивности не поверив DX help решил проверить, и как ни странно - не работает ;)
2. функция CopyFromRT явно не целостна, потому не ясно как всё-таки сделано копирование
3. А можно ли получить рабочий исходник от данной статьи?

#2
8:33, 8 дек 2003

Размытие не надо делать на CPU. Надо на карте. Хорошие фильтры реализуются и там. Гораздо лучше и быстрее.

#3
8:45, 8 дек 2003

Семен
можешь подсказать в какую сторону копать ?
p.s. На самом деле мне нужно уменьшить разрешение отрендеренной текстуры, со сглаживанием... теоретически это выполняет D3DXLoadSurfaceFromSurface, но мне не очень нравиться алгоритм(ы) которые используются для масштабирования... хотелось бы использовать свой... но как?

#4
9:01, 8 дек 2003

SetRenderTarget на текстуру маленького разрешение, рисуешь один квад с изначальной текстурой, включаешь билинейку.

Свой алгоритм сглаживания использовать на карте можно только если ты его реализуешь на пиксель-шейдере.

#5
9:49, 8 дек 2003

Семен
имелось ввиду применительно к:
http://www.gamedev.ru/forum/?action=showtopic&group=0&topic=5299

#6
10:05, 8 дек 2003

Ответ ничем не отличается. На проце это делать - хуже не придумаешь, хоть и можно. FPS будет никакущий.

Гораздо лучше - делать на карте, используя пиксель шейдер. Пусть и в несколько проходов, например.

Прошло более 3 лет
#7
15:24, 7 ноя 2007

Ё моё ну кто такие коды выкладывает...

  // Проходим по всем пикселям, и заполняем массивы
  DWORD color;
  for (register i=0; iUnlockRect(0);
}

что тут написано?...

#8
16:06, 7 ноя 2007

tFBDemon
некрофил?

#9
16:06, 7 ноя 2007

tFBDemon
тема 2003 года))))

#10
16:24, 7 ноя 2007

Злой Ирофф
Правельнее геронтофил


tFBDemon
Тема дурная и безполезная даже для того времени

Прошло более 1 года
#11
22:59, 26 фев 2009

ошибка... при создании 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);

если включено отсечение граней против часовой

#12
14:47, 7 мар 2009

Блин, вот искал, как получить данные из рендера в текстуру. Здесь нашел ответ про установку флага. Отлично, работает, данные получаю.. НО ТАК МЕДЛЕННО!!! Ужс... Через GetRenderTargetData и то в 30 раз быстрее... (текстура 1280*1024)

ПрограммированиеФорумГрафика

Тема в архиве.