Войти
ПроектыФорумОцените

MMORPG (9 стр)

Страницы: 18 9 10 1114 Следующая »
#120
18:29, 25 авг. 2020

Miritrid
> стандартная PBR модель освещения
А рефлекшенсы на металлах работают? А то на скринах только матовые поверхности и pbr незаметно.


#121
19:08, 25 авг. 2020

samrrr
С металлами все нормально, просто в лесу металла нет.) Это стандартная модель, я ее не придумывал, и работает она стандартно.) Из сглаживания только MSAA - он не может текстуры сглаживать (хотя 16х выглядит прилично, но fps...). SSAO не будет. Для нерастительной геометрии и внутри помещений ее применение оправдано, но снаружи...: простая реализация из 16 проходов на пиксель спиральной выборкой без сглаживания  -200к/с, а на растениях почти не видно. Разрешения карт теней маловато. Я от квадратиков избавиться никак не могу. Тень будет статическая даже для анимированных деревьев  и рассчитываться от статики будет раз в 3мин. На fps никак не влияет. 

#122
19:29, 25 авг. 2020

Miritrid
> -200к/с
Какие кс? как считаешь производительность рендера вообще? на глазок чтоль?

Miritrid
> Разрешения карт теней маловато.
3шт. 4096*4096 Shadow map
Значит это какие-то кривые тени. 4к шадоумап каскадный и на QuadHD не должен квадратиков давать

Miritrid
> Тень будет статическая даже для анимированных деревьев
А как ты вообще тени пилишь? Как ты вообще представляешь статические каскадные тени?

#123
19:56, 25 авг. 2020

samrrr
fps - frame per second, или по-русски кадры/секунду. Замеряю время в начале цикла и в конце  и вывожу в консоль это время, выраженное в к/с. Тут учитывается не только работа видеокарты, но и процессора.
По теням все очень просто - они не каскадные и я не хочу считать тени каждый кадр для не движущихся объектов. Все объекты разбиваются на массивы по расстоянию, и видимости в камере для отрисовки. И эти же массивы удобно расположить в трех картах с тремя lightmatrix, а потом для разных объектов применять нужную карту. Например, в карту рисуется только поверхность земли - ее нужно ко всем объектам применить, а карту с травой нужно только к земле применять. 
Возможно, я не правильно понимаю как обращаться с картами. При сравнении глубин я применяю step и smoothstep, может они квадратики дают.

#124
(Правка: 20:04) 20:03, 25 авг. 2020

samrrr
> Значит это какие-то кривые тени. 4к шадоумап каскадный и на QuadHD не должен
> квадратиков давать
Это ладно, но как насчет следующего: ортогональная матрица размером 200*200м, разрешение карты 4096*4096, это значит, что в один пиксель можно уложить объект размером 200/4096 = 0,0488м. Но! На геометрии есть ветки, например, размером 0.5см или трава. Так что размер имеет значение.

#125
(Правка: 21:00) 21:00, 25 авг. 2020

Miritrid
> На геометрии есть ветки, например, размером 0.5см или трава.
Для этого придумали лоды. И на дальних каскадах обычно не рисуется трава как на передних. Какраз поэтому(и ещё потомучто это медленно).

> fps - frame per second, или по-русски кадры/секунду. Замеряю время в начале цикла и в конце  и вывожу в консоль это время, выраженное в к/с. Тут учитывается не только работа видеокарты, но и процессора.
Толку от общего времени мало.
Замеряй время в наносекундах на каждую стадию рендера, а лучше на каждый вызов апи функции. И отдели замеры цпу от гпу.

> По теням все очень просто - они не каскадные
Жесть.

> и я не хочу считать тени каждый кадр для не движущихся объектов
значит движимые объекты не будут оставлять тени...

Miritrid
> Все объекты разбиваются на массивы по расстоянию, и видимости в камере для отрисовки
Это должно отжирать много времени впустую.

> Возможно, я не правильно понимаю как обращаться с картами.
4к раельно в таком случае не хватит, надо 8к или 16к(или будут квадратики). У тебяже ММОРПГ эти карты гиги весить будут.

Возможно стоит делать обычные каскадные тени, а не городить предрасчитанные? 

> При сравнении глубин я применяю step и smoothstep, может они квадратики дают.
Квадратики даёт изначальный подход к предрассчёту теней. Этот подход уже лет 10 не имеет особого смысла.

#126
19:29, 26 авг. 2020

samrrr
> У тебяже ММОРПГ эти карты гиги весить будут.
На самом деле, все обстоит проще. Вокруг персонажа скапливается еще сотня, все они попадают в первый каскад теней (т.е самого большого разрешения) или в обычную карту , и благополучно отключаются игроком в настройках.
samrrr
> Замеряй время в наносекундах на каждую стадию рендера, а лучше на каждый вызов
> апи функции. И отдели замеры цпу от гпу.
Дело в том, что это не имеет смысла. После перехода на отложенное освещение 5 шейдеров, которые рисовали геометрию стали очень простыми. Мне в основном нужно общее время, чтобы знать сколько полигонов в кадр добавлять.
Почитал я про каскадные карты, пока не понял какой профит от них. Предлагается рисовать в каждом кадре в тени то, что видит наблюдатель, я же наоборот ценой понижения качества уменьшаю количество расчетов. Кроме того, есть земля, которая всегда попадает во все каскады. Кроме того, матрица проекции охватывает 1000м пространства, 5 каскадов по 200*200м ортогональных матриц? Возвращаемся к посту 124.
samrrr
> Для этого придумали лоды.
Нет никаких ЛОДов, если персонаж около дерева стоит и смотрит на ветку 0,5см.

#127
(Правка: 19:44) 19:44, 26 авг. 2020

Miritrid
> Почитал я про каскадные карты, пока не понял какой профит от них.
Ты не сножеш можешь убрать квадратики при текущем подходе, даже карты 16к нехватит на 0.5 см ветви.

>После перехода на отложенное освещение
это конечно прикольно, но к каскадным теням не имеет отношения.

>Предлагается рисовать в каждом кадре в тени то, что видит наблюдатель
Это единственный 100% рабочий метод убрать квадратики из теней.

>5 каскадов по 200*200м
Ты точно прочитал про каскады? а то 5 каскадов по 200x200 это идиотизм. надо делать 3: 2x2 30x30 800x800
Вдобавок размер каскадов не статичен, но это уже совсем другая проблема.

#128
20:07, 26 авг. 2020

samrrr
> > Предлагается рисовать в каждом кадре в тени то, что видит наблюдатель
> Это единственный 100% рабочий метод убрать квадратики из теней.
Так а что делать с объектами, которые не попадают в поле зрения наблюдателя, а тени отбрасывать должны?
Пока не понимаю, буду думать. В матрицу 2*2 попадет одна травинка и один листик. А дерево надо отрисовать полностью. В матрицу 30*30 попадет большая часть дерева, т.е его надо отрисовать еще раз. Есть деревья диаметром кроны больше 30м, оно попадет в третий каскад, т.е. его надо отрисовать третий раз. Все это очень странно.
У меня здания такие что если их поместить в матрицу 800*800, то они и с расстояния 600м квадратиков на земле оставят. (На самом деле нет из-за линейной фильтрации).

#129
20:16, 26 авг. 2020

Miritrid
> Так а что делать с объектами, которые не попадают в поле зрения наблюдателя, а тени отбрасывать должны?
Представляешь, какраз недавно обсуждалось.
https://gamedev.ru/code/forum/?id=253129

Miritrid
> В матрицу 2*2 попадет одна травинка и один листик.
Пространство камеры это паралеллограм(или перспектива), а не квадратик.
2x2x1000

Miritrid
> Все это очень странно.
мдее... а то, что таких объектов <10% это типо несчитается? И в дальних каскадах лоды с меньшей детализацией.

Miritrid
> У меня здания такие что если их поместить в матрицу 800*800, то они и с расстояния 600м квадратиков на земле оставят.
Не оставят. Вблизи же ближний каскад .

#130
6:38, 6 сен. 2020

Возник следующий вопрос. Представьте, что вы игрок и напишите, сможете-ли освоить управление персонажем.
Предисловие. Боевая система - только дальний бой магией с нон-таргетом. В отличие от шутеров, необходимо целиться во врагов даже если персонаж на них не смотрит. И даже если персонаж спиной к врагу есть возможность прицелиться и применить заклинание (мы все примерно представляем расстояние до объекта и его положение, если сначала посмотрим на объект, а потом отвернемся от него).
Управление. Движение персонажа с помощью wsad и свободное управление камерой. Обычно поворот персонажа осуществляется движением мыши, однако такая схема не подходит. Свободное управление камерой означает, что игрок при движении мышью вращает только камеру и это никак не отражается на повороте персонажа. Это позволяет бежать в одну сторону, а целиться в другую. Также это приводит к тому, что поворот персонажа также ложится на wasd. Те есть: нажимаем w - бежим вперед, нажимаем w и d одновременно - бежим вперед и поворачиваем направо (камера при этом произвольно направлена), отжимаем w нажимаем d - поворачиваем на 90град от направления движения направо и бежим "вперед" (положение камеры не меняется), держим d и нажимаем s - начинаем поворачивать направо от нового положения "вперед".
Управление такое, что персонаж независимо управляется wasd, а камера независимо от персонажа управляется мышью.

#131
6:55, 6 сен. 2020

Miritrid

необходимо целиться во врагов даже если персонаж на них не смотрит. И даже если персонаж спиной к врагу есть возможность прицелиться и применить заклинание (мы все примерно представляем расстояние до объекта и его положение, если сначала посмотрим на объект, а потом отвернемся от него).

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

Я бы забыл про такой проект сразу.
#132
7:03, 6 сен. 2020

Напишу другими словами. Прицел на экране есть и камера неподвижна. При этом с помощью wsad можно бегать персонажем по кругу.

#133
7:06, 6 сен. 2020

Alex.L
> И как конкретно это будет работать?
> В классическом шутере все понятно, наводим мышкой перекрестье на цель -
> стреляем.
В отличие от шутера, нет предмета, который надо наводить на врага и из которого вылетает физическая сущность. В остальном изменений нет - наводим прекрестье и "стреляем".

#134
9:32, 6 сен. 2020

Miritrid
В ВоВе можно бегать в таком же режиме просто отключив авто-выравнивание камеры.
Такой режим мягко говоря не очень. Какой-то "танк-контрол" из старых игр с фиксированной камерой.

Персонаж бежит вперед, камера находится перед персонажем и сморит ему в лицо.
Мы что бы обойти бочку стоящую на пути с левой стороны должны будем нажать что, "A"?
А что бы с правой "D"?

Страницы: 18 9 10 1114 Следующая »
ПроектыФорумОцените