Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Suslik против Global Illumination (10 стр)

Suslik против Global Illumination (10 стр)

Страницы: 19 10 11 12 13 Следующая »
SuslikМодераторwww14 авг. 20172:01#135
eDmk
> Во как CPU жарит.
> https://www.youtube.com/watch?v=ianMNs12ITc
в этом нет ничего хорошего, так как эти же алгоритмы на GPU ложатся очень плохо, а их пиковая мощность, вообще говоря, несравнимо выше. железо используется неоптимально, а как его использовать оптимально, никто не знает.
g-contПостоялецwww14 авг. 201713:59#136
Везде засада, вообщем (
ronnikoЗабаненwww14 авг. 201714:50#137
Уже давно пора заставить AMD\NVIDIA делать спец. блоки на GPU которые будут считать тени\отражения и SSAO.
Все равно алгоритмы у всех однотипные.
А то как в каменном веке, надо самому код на березе выбивать :)
MisanthropeПостоялецwww14 авг. 201717:52#138
ronniko
> блоки на GPU которые будут считать тени\отражения и SSAO
FPP?
ronnikoЗабаненwww14 авг. 201717:54#139
FPP?
+ Показать

Правка: 14 авг. 2017 17:54

BernsПостоялецwww21 авг. 201721:34#140
кстати, Suslik, хоть я тебя тогда и неправильно понял, но оно меня натолкнуло на оптимизацию SSAO. я попробовал делать репроекцию предыдущего буфера SSAO на каждый второй кадр, из-за чего добился более высокой производительности, а следовательно и clamp на краях изображения стал почти незаметен. могу предположить, что на более мощном железе твой GI будет зрелищней в динамике, ибо в большей степени тут временные артефакты
SuslikМодераторwww22 авг. 20175:33#141
Berns
> могу предположить, что на более мощном железе твой GI будет зрелищней в динамике, ибо в большей степени тут временные артефакты
я предпочитаю разрабатывать рендер на среднестатистической машине или даже ниже по спекам. потому что целью ставлю исследование реально применимых техник, а не просто погонять эффектные алгоритмы на мощном железе.
MrShoorУчастникwww22 авг. 20176:57#142
Suslik
> я предпочитаю разрабатывать рендер на среднестатистической машине или даже ниже
> по спекам
В идеале надо иметь как слабое железо, так и сильное. Иначе легко можно упереться в CPU при более сильном GPU, и геймер с топовым железом (какой-нибудь GTX 1080ti) будет видеть все те же 30 фпс, которые видел ты, разрабатывая на слабеньком железе.
SuslikМодераторwww22 авг. 20177:21#143
MrShoor
> В идеале надо иметь как слабое железо, так и сильное. Иначе легко можно
> упереться в CPU при более сильном GPU, и геймер с топовым железом (какой-нибудь
> GTX 1080ti) будет видеть все те же 30 фпс, которые видел ты, разрабатывая на
> слабеньком железе.
у меня как бы профайлер есть, чтобы GPU и CPU тайминги раздельно мерить. и фпс даже на моём слабом железе не должен падать ниже 60.
MrShoorУчастникwww22 авг. 20178:28#144
Suslik
> у меня как бы профайлер есть, чтобы GPU и CPU тайминги раздельно мерить
Ну у меня как бы тоже, но несмотря на это я умудрялся наступать несколько раз уже на подобные нюансы.
Заглянул сейчас кстати в ваш PoE. То, что ботлнек не CPU даже на моей 980 - зачет. Дает 120 кадров в секудну, но блин... вы три фрейма накапливаете:
poe | Suslik против Global Illumination
Прям вот очень очень стоит заглянуть сюда:
https://habrahabr.ru/post/308980/
и сделать хотя бы IDXGIDevice1::SetMaximumFrameLatency(1)
SuslikМодераторwww22 авг. 20179:00#145
MrShoor
> вы три фрейма накапливаете
включи vsync, кадр в очереди будет всегда один.

Правка: 22 авг. 2017 9:01

MrShoorУчастникwww22 авг. 20179:58#146
Suslik
> включи vsync, кадр в очереди будет всегда один.
На моем GPU да, будет один. Но только потому что моя видеокарта не выдаст на PoE меньше 60 FPS. Но если FPS просядет хотя бы до 59, то очень быстро эти три кадра накопятся. Вот тебе даже пруф:
vsync | Suslik против Global Illumination
Я включил VSync и дал параллельную нагрузочку на GPU так, чтобы фпс просел до 40 кадров... и получил 3 кадра в очереди.
BernsПостоялецwww22 авг. 201713:12#147
я предпочитаю разрабатывать рендер на среднестатистической машине

что ты подразумеваешь под среднестатистическими? средний геймерский ПК на данный момент это около 8 гигов ОЗУ, процессор из разряда i3-i5, и 2-ух гиговая видеокарта с околоконсольной производительностью (PS4), типа моей  r7 360, и всё это в разрешении 1920x1080. но это еще свит дримс. в СНГ минимум 50% это ведра с 2-4 гиг.памяти, видеокартами с пассивным охлаждением и иногда без поддержки DX11 + квадратные мониторы. лет 5 назад на них можно было поиграть в новейшие графически продвинутые ААА- игры в маленьком окошке с 30 кадрами на минималках. ну и так как на то время выпала эпоха активного перехода на отложенное освещение и всякие скринспейсные эффекты, что с одной стороны лишило сглаживания MSAA, а без него без суперсемплинга будет либо мыло, либо лесенки, с другой - стало съедать видеопамять не в пользу текстур, из-за чего игроки наблюдали только их low-копии и ругали за мыло еще и текстур.

лично у меня вся MRT-канитель устроена так:

  //Карты теней
  create_render_texture(int(SHADOWS_MAPS_SIZE), int(SHADOWS_MAPS_SIZE), 0, DXGI_FORMAT_R32_FLOAT);
        create_render_texture(int(SHADOWS_MAPS_SIZE), int(SHADOWS_MAPS_SIZE), 1, DXGI_FORMAT_R32_FLOAT);

  //Промежуточный буфер 
  create_render_texture(mrt__width, mrt__height, 3, DXGI_FORMAT_R8G8B8A8_UNORM);
  //Bloom
  create_render_texture(mrt__width/4, mrt__height/4, 4, DXGI_FORMAT_R8G8B8A8_UNORM);
  //Размытие теней
  create_render_texture(mrt__width,mrt__height, 5, DXGI_FORMAT_R8G8B8A8_UNORM);

  //SE - тени
  create_render_texture(mrt__width, mrt__height, 6, DXGI_FORMAT_R8G8B8A8_UNORM); //Shadows render

  //SSAO
  create_render_texture(mrt__width, mrt__height, 15, DXGI_FORMAT_R8_UNORM); //ssao
  create_render_texture(mrt__width, mrt__height, 20, DXGI_FORMAT_R8_UNORM); //SSAO blur


  //SSS
  create_render_texture(mrt__width, mrt__height, 16, DXGI_FORMAT_R8G8B8A8_UNORM); 
  create_render_texture(mrt__width, mrt__height, 17, DXGI_FORMAT_R8G8B8A8_UNORM); 

  //SSLR
  create_render_texture(mrt__width, mrt__height, 23, DXGI_FORMAT_R8G8B8A8_UNORM); //SSLR

   //Основная Геометрия
  create_render_texture(mrt__width, mrt__height, 24, DXGI_FORMAT_R16G16B16A16_FLOAT ); //Normal
  create_render_texture(mrt__width, mrt__height, 25, DXGI_FORMAT_R8G8B8A8_UNORM);  //DIFF
  create_render_texture(mrt__width, mrt__height, 26, DXGI_FORMAT_R8G8B8A8_UNORM);  //MATHERIAL
  create_render_texture(mrt__width, mrt__height, 27, DXGI_FORMAT_R32_FLOAT); //Depth
  create_render_texture(mrt__width, mrt__height, 28, DXGI_FORMAT_R8G8B8A8_UNORM);  //MATHERIAL #2
  create_render_texture(mrt__width, mrt__height, 29, DXGI_FORMAT_R8G8B8A8_UNORM);  //SS


  //Alpha (30-45 mrt)
  int alpha_slot = 0;

  for (int l = 0; l < 4; l ++)
  {
  create_render_texture(mrt__width, mrt__height, 30 + alpha_slot, DXGI_FORMAT_R8G8B8A8_UNORM);      //Diffuse A#1
  create_render_texture(mrt__width, mrt__height, 31 + alpha_slot, DXGI_FORMAT_R32_FLOAT);        //Depth A#1
  create_render_texture(mrt__width, mrt__height, 32 + alpha_slot, DXGI_FORMAT_R16G16B16A16_FLOAT ); //Normal A#1
  create_render_texture(mrt__width, mrt__height, 33 + alpha_slot, DXGI_FORMAT_R8G8B8A8_UNORM);      //Matherial A#1

  alpha_slot = l * 4;
  }

  //Отложенный расчет
  create_render_texture(int (mrt__width), mrt__height, 46, DXGI_FORMAT_R8G8B8A8_UNORM); 
  create_render_texture(int (window_width), int(window_height), 47, DXGI_FORMAT_R8G8B8A8_UNORM); //Предыдущий кадр

  //picing
  create_render_texture(int (window_width), int(window_height), 48, DXGI_FORMAT_R32_FLOAT); 

  //combine alpha
  create_render_texture(mrt__width, mrt__height, 50, DXGI_FORMAT_R8G8B8A8_UNORM); 


в принципе, производительность упирается в пропускную способность видеопамяти. все эти рейтрейсинги штука дорогая, т.к приходится многократно считывать семплы из DXGI_FORMAT_R32_FLOAT-текстуры. может для них стоит попробовать иначе упаковывать глубину?

SuperInoyПостоялецwww22 авг. 201713:19#148
Berns
> либо лесенки
как будто это что-то плохое, чёткость жи.
Berns
> и ругали за мыло еще и текстур.
и правильно делали. Добавили мыльца, из-за которого стало тормозить, притом даже с чёткими текстурами все эти пост эффекты - мыльцо.
MisanthropeПостоялецwww22 авг. 201713:26#149
а уменя Clear Sky на GTX 980 тормозит)
Страницы: 19 10 11 12 13 Следующая »

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

2001—2018 © GameDev.ru — Разработка игр