Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 05.03.2015, 14:40   #826
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: [TrueHorror] - разработка

а как ты определил, что посылается на блендинг?
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 05.03.2015, 14:46   #827
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

че? я говорю о том что если ограничивающая сфера не пройдет z тест, то никаких фрагментов фулскрин квада не отрисуется. а у меня почему то все равно производительность падает, даже если источник света загорожен. наверное все таки попробую occlusion query
__________________

(Offline)
 
Ответить с цитированием
Старый 05.03.2015, 14:56   #828
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: [TrueHorror] - разработка

ну так говорю, даже если блендинга нет, все равно куча фулскрин тестов всех пикселей квада об стенсил буфер идёт йопт.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 05.03.2015, 15:04   #829
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

ну таки что делать? порталы я юзать не хочу, там нужно карту вручную разбивать

неужели используя occlusion query я не буду в выигрыше? им нужно затестить только сферы ограничивающие
__________________

(Offline)
 
Ответить с цитированием
Старый 05.03.2015, 15:17   #830
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: [TrueHorror] - разработка

Попробую еще рисовать сферку вместо квада, как предложил Mr_F_.
вот это сделай и ок будет.
а если не будет, то в любом случае не рекомендую query, результат может приходить иногда через 1, а иногда и через все 15 кадров.
с такими опозданиями что ты будешь делать? лайты будут запоздало появляться.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер

Последний раз редактировалось Mr_F_, 05.03.2015 в 16:46.
(Offline)
 
Ответить с цитированием
Старый 06.03.2015, 12:40   #831
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Кароч не ок. фпс почти не увеличился, он также проваливается даже когда свет загорожен стенкой. хуита кароч, даже не смотря на то что серьезно уменьшилось число фрагментов проходящих через трафарет, все равно фпс проваливается. я в пичали.
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (06.03.2015)
Старый 06.03.2015, 13:25   #832
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: [TrueHorror] - разработка

хм, странно, в общем тут уже надо в PIXе смотреть детально что происходит.
ты левел собираешь из каких-то модулей (типа кусок пещеры прямой, кусок с поворотом) или просто полигоны тянешь? на основе модулей можно было бы автоматом порталы сгенерить.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 06.03.2015, 14:35   #833
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Попробовал occlusion query. Результат порадовал, если свет(70 источников) загорожен стенкой, то фпс 130. Если эти же источники распределить в лабиринте ( чтоб все сразу не было видно ) то фпс в среднем 90, без оклюжена фпс 58. Я щитаю это вин.

upd. Проверил в игре, фпс не опускается ниже 100

Но без косяков никуда. Бывает такой момент, что сферка пролезает сквозь стену и соответственно на экране нет ее фрагментов и свет пропадает, что с этим делать я не знаю.

Код оклюжена такой:
    gpDevice->SetRenderState( D3DRS_STENCILENABLE, FALSE );
    gpDevice->SetRenderState( D3DRS_COLORWRITEENABLE, 0x00000000 );
    gpDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );    

    for( auto pLight : g_pointLightList ) {
        pLight->pQuery->Issue( D3DISSUE_BEGIN );
        RenderSphere( pLight );
        pLight->pQuery->Issue( D3DISSUE_END);
        pLight->trulyVisible = false;
    }

    gpDevice->SetRenderState( D3DRS_COLORWRITEENABLE, 0xFFFFFFFF );
    gpDevice->SetRenderState( D3DRS_STENCILENABLE, TRUE );
    
    int count = g_pointLightList.size(), readyCount = 0;
    do {
        for( auto pLight : g_pointLightList ) {
            DWORD pixelsVisible;
            if( !pLight->trulyVisible ) {
                if( pLight->pQuery->GetData( &pixelsVisible, sizeof( pixelsVisible ), D3DGETDATA_FLUSH ) == S_OK ) {
                    readyCount++;
                    if( pixelsVisible > 0 ) {                
                        pLight->trulyVisible = true;
                    }
                }
            }
        }
    } while( readyCount < count );
Для каждого света свой IDirect3DQuery9

ты левел собираешь из каких-то модулей (типа кусок пещеры прямой, кусок с поворотом) или просто полигоны тянешь?
просто полигоны
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Samodelkin (06.03.2015)
Старый 06.03.2015, 15:44   #834
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: [TrueHorror] - разработка

Но без косяков никуда.
теперь попробуй резко за угол выскочить, лайты могут с опозданием появиться. чем ниже общий фпс, тем больше будет заметно.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 06.03.2015, 15:50   #835
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

теперь попробуй резко за угол выскочить, лайты могут с опозданием появиться.
есть такое.

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

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (06.03.2015)
Старый 06.03.2015, 21:49   #836
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

В общем сделал кэширование, работает хорошо. Опишу алгоритм:
При перемещении камеры строим ее путь - просто добавляем точки через равные промежутки, попутно проверяя наличие уже существующих точек рядом - таким образом на пути следования камеры образуется регулярная(с равным шагом ) сетка из точек, а заодно находим ближайшую существующую точку к камере. При рендере стартуем оклюжен, и при помощи него формируем список источников света видимых из данной точки. Есть одна очень досаждающая особенность оклюжена для света, если ограничивающая сфера пройдет сквозь стенку, то свет не отрисуется, потому что никакие фрагменты сферы не были отрисованы - решается это отрисовкой сферы 1/4 размера исходной.

Пробовал записать видео, но фрапс лочит фпс и поэтому производительность надо щупать самому. Код можно глянуть на гитхабе в DeferredRenderer.cpp и Camera.cpp

У меня средний фпс не опускается ниже 105 к\с( 2560х1440 ). без этого метода фпс иногда( когда много источников света в далеке за стеной ) проваливается до 57 к\с. Также убрана задержка оклюжена.
__________________

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
Mr_F_ (06.03.2015), Samodelkin (06.03.2015)
Старый 08.03.2015, 03:12   #837
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

А тем временем я пилю новый уровень с гермодверями и лабиринтами - канализация. АХТУНГ! На скринах нет графония, у вас может произойти кровавое слезотечение от следующих скриншотов .




Двери открываются кнопками на стене. По началу хотел сделать вентили( типа крутишь и дверь поднимается\опускается ), но словил нехилую попоболь с осями вращения вентилей, так что сделал кнопками.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 789
Размер:	235.6 Кб
ID:	21551  Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 794
Размер:	175.6 Кб
ID:	21552  
__________________

(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
LLI.T.A.L.K.E.R. (09.03.2015), pax (08.03.2015), Randomize (08.03.2015), Samodelkin (08.03.2015), tirarex (08.03.2015), Wegox (09.03.2015)
Старый 08.03.2015, 04:24   #838
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: [TrueHorror] - разработка

Сообщение от mr.DIMAS Посмотреть сообщение
По началу хотел сделать вентили( типа крутишь и дверь поднимается\опускается ), но словил нехилую попоболь с осями вращения вентилей, так что сделал кнопками.
Ещё можно рычагами как у домкрата или инвалидной коляски.
(Offline)
 
Ответить с цитированием
Старый 08.03.2015, 06:50   #839
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: [TrueHorror] - разработка

Твоя игра уже в сталкера/метро 2033 превращается.
(Offline)
 
Ответить с цитированием
Старый 08.03.2015, 07:46   #840
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: [TrueHorror] - разработка

Сообщение от Nex Посмотреть сообщение
Твоя игра уже в сталкера/метро 2033 превращается.
Дак и хорошо же
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
mauNgerS (08.03.2015), Wegox (09.03.2015)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 11:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com