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

Помогите с идеями оптимизации в "сложных условиях" (3 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 512 Следующая »
#30
23:50, 2 июня 2012

Очень много детализируемых объектов.
Не обязательно изначально дома рисовать как они есть. Можно сетку менять только при разрушении дома, а изначально она упрощенная.
Одним словом проблема в слишком большом количестве примитивов для отрисовки.
Упрощайте. Обманывайте зрение. Не рисуйте по чесноку. Используйте LOD.


#31
0:25, 3 июня 2012

Капитан берётся в действие:
1.LOD на все здания, мелочь.
2.Объединение взаимно плоских или почти взаимно плоских квадов (нормаль явл. перпендикуляром к любой прилеж. грани) земли на некотором расстоянии в один
3.Quad-tree на ландшафт собственно
4.Спрайты на далёкие деревья наложить и последние убрать (extra LOD)
5.В крайнем случае, не рисовать мелкие объекты вроде скамеек издалека
6.Если есть здания с интерьером (вроде того разрушенного слева вверху), то лодить внутренности или не рисовать их вообще, только "экстерьер".
Нет, ну честно, если в вайрфрейме от плотности полигонов издалека всё сливается в один цвет, то автор что-то явно делает неправильно..
Я половину сказанных терминов в первом посте не проглотил, но геймерским взглядом добавление этих пунктов как решение очевидно.
А вообще, если контент ваш, то очень круто смотрится :)

#32
2:16, 3 июня 2012

axiom
Про размытие в движении однозначно можно забыть, потому что надо успевать следить за юнитами, пролетая над картой, не останавливать же каждый раз камеру при смещении.
Насчет рассекания экрана на сетку, пока надумал самое оптимальное использование для occlusion culling программного. Если геометрию сцены конвертировать в импостеры и их использовать для теста, затраты на чтение текстуры импостера убьют производительность, но сетка для областей с незначительным перемещением камеры или малом общем сдвиге в пространстве позволит использовать старую информацию окклюжн. В принципе при низком положении камеры этот вариант в качестве оптимизации подойдет хорошо. Для позиции как на скриншоте пока не соображу, на импостеры переходить в деффере ссыкотно из-за необходимости суперсэмплинга.

Mr F

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

А смысл? Можно просто геометрию так же склеить. Трансформировать объект и в флоатовую текстуру рисовать его позиции новые с нормалями (типа аппаратный батчинг) медленнее в 2-3 раза из-за vtf, чем обычная отрисовка, такие методы лишь для очень активных изменений, разрушенные детали более-менее статичны. Насчет скорости vtf против инстанса, на древнем железе наверно побыстрее.
если получаются слишком жирные VB, то ничего не приходит в голову лучше чем стримить их по мере продвижения камеры.

Уже.

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

Aroch
Мегатекстура в чистом виде не прокатит из-за размеров пространства, а памяти нет на хранение лишних координат текстур и самой текстуры, ибо надо минимум три - нормаль, цвет, свойства материала. Для деколов ландшафта сойдет запросто, но они сущая ерунда в сравнении с остальным.

Chaos_Optima
Здания, заборы и прочее разрушаемы, состоят из расчлененных элементов, поэтому про 2-4 полигона речи быть не может. За несколько минут боя все в хлам превращается, поэтому использовать цельные нет смысла для зданий, а для мелких объектов они и так юзаются. Заборы тут полноценная геометрия, скрин делал со старой сборки игры, но должны были исправить, узнаю попозже. А ландшафт ерунда, видимых около 50 тыс поликов и это исправимо.

на уровне кода обязательно нужно прикрутить лоды, octree и инстансинг

Имеется.

ArchiDevil
Отрывать запчасти моделлерам нет смысла, они не разбирались до моего появления, что за боттлнеки вообще есть и как правильно надо делать. Выбросить и перемоделировать нельзя, надо только извращаться с "оптимизацией" самому. Ну заставлю что-то переделать, а толка? Тут объектов разных уйма, все не переделаешь, да и уже второй год как говорил, а воз и нынче там, самому выпутываться. В общем надо принять как факт и молча кодить.

Ataman
Лоды не спасут отца русской демократии. Лысое пространство оставлять это слишком серьезная потеря качества, на дома лоды не повяжешь, а каждый по 10-20 тысяч поликов (((.
Хлам железо выбрано потому, что целевая аудитория любителей таких игр это 25-40 летние пользователи, у которых еще athlon xp водится, подросткам такое не интересно вообще. С карты сносить объекты нельзя, выглядит позорно, мэпперы уже много чего поудаляли.

Проверить шаринг текстур. По-моему, что-то не так с ними - по картинке их должно быть мало.

Текстур сотни 2-4, с большой высоты не видно.

fzr125

Чем обусловлена такая сетка земли? Неужели нельзя слить в несколько квадов? Тогда и скорость возрастет.

Это все легко решаемо и мертвому припарка, ландшафт не есть причина тормозов и он вообще старой версии на скриншотах.
Кстати сетка крыши домов - тоже адь! Это кто там налепил 100500 треугольников?

Это детальки под разрушение.
Дочитал - если нужно делать разрушаемые - то пусть будут тупо треугольниками (пару квадов максимум), а в момент разрушения - перепрошиваем буфер - делаем теселяцию на CPU - для пары квадов незаметно и уже юзаем новые треугольники.

Это все здорово, но есть движок, смоделированный без меня контент, а я один программист и переделываю под современные требования, работы немеряно, переделывать всю систему разрушений не успею.
Используется сортировка?

Используется.

asvp
Лод есть. Дома разрушаются слишком быстро, нет смысла для них делать цельную геометрию в ресурсах, только память гробить.

Jarro
1. Лод для зданий невозможен, все разрушаемо частями, снизу, сверху, с разных сторон и разными кусками. Здания переделывать никто не хочет, потому что долго настраивать чего-то там в ресурсах (насколько понял, чтоб разрушения работали или чтоб солдафоны могли правильно бегать).
2. Ландшафт можно сказать бесплатный, видимых треугольников около 50 тыс.
3. Деревья ничем не помогут, это для выборки объектов, а тормозит сама отрисовка.
4. Растительность проста, если уберу, скорость даже в полтора раза не повысится.
5. Не рисуются вдали мелкие объекты и используются лоды.
6. Внутренние стены зданий есть, но нет объектов интерьера. Это не проблема, рендерится будет по совершенно иному принципу, без тормозов.

To all
Ребят, мне нужно не общие стандартные правила оптимизации, тема повышенной сложности потому что обычными подходами не добиться серьезного прироста, если жертвовать производительностью процессора, получается боттлнек. Если жертвовать видео, системки повышаются серьезно и в 1920*1080 не погамаешь из-за филл-тексель рейта. Сейчас у всех мониторы с большим разрешением, но когда карта 256 метров, туда не всунешь несколько громадных vb, rt и текстуры. С батчами рисует пол миллиарда треугольников в секунду, а с инстансингом 150 млн, это очень заметно при 3 млн видимых (и еще тени полтора-два). Должно быть какое-то решение, до которого Кармак не додумался.

#33
2:33, 3 июня 2012
1. Лод для зданий невозможен, все разрушаемо частями, снизу, сверху, с разных сторон и разными кусками. Здания переделывать никто не хочет, потому что долго настраивать чего-то там в ресурсах (насколько понял, чтоб разрушения работали или чтоб солдафоны могли правильно бегать).

Всё пасиб я понял всю сложность.
Ну дык "залодьте" куски этих зданий так, чтобы издалека всё равно был параллелепипед. Если разрушения здания не так вероятны на протяжении игры, можно чуть схалтурить и делать обычный лод для зданий, если последние не разрушены или разрушены поверхностно, хотя, если всё в хлам превращается, то...

...Ведь ещё, можно все эти крыши и стены от каждого здания разбить на 10-15 графически независимых от настоящих фрагментов участков-LOD'ов (примитивов), при разрушении в месте одного дешёвого фрагмента тот убирается, а более дорогие, физические фрагменты на расстоянии не рисуются.
В смысле:
был домик, на расстоянии у него есть куча разных кусочков моделек-LODов (~15), которые издалека формируют тот же дешёвый дом. Если в стену дома попал снаряд, то тот LOD-фрагментик, что находился в месте попадания, попросту снимается и больше невидим с далёких расстояний, а настоящие фрагменты, которые видны вблизи, издалека не рисуются, так как их заменяют такие вот составные LOD'ы..

#34
2:33, 3 июня 2012

BorisV
> тема повышенной сложности потому что обычными подходами не добиться серьезного прироста
> ...но когда карта 256 метров, туда не всунешь несколько громадных vb, rt и текстуры.
Если мосье не ищет лёгких путей, тогда стриминг + мегатекстура спасут отца русской демократии!

#35
2:47, 3 июня 2012

всё сам, другие пусть отдыхают, зачем им нужен ценный опыт по допиливаю свой недоработы до рабочего состояния.
ну раз ты модельки принял и считаешь их подходящими для игры и не убедил начальство что их стоит еще допилить, то потом не сваливай фейл на моделлеров ;)

а на каком компе тестируешь ? может повысить системные требования и не париться больше ?

#36
3:20, 3 июня 2012

Jarro
Дело в том, что здания и так состоят из тех лодов, о которых вы говорите (если правильно понял), а при попадании снаряда или взрывной волны этот крупный кусок удаляется, заменяясь на множество падающих мелких, большинство которых через некоторое время исчезает. Если не правильно понял, объясните иначе.

Hybernaculum
Негде хранить текстурные координаты развертки, время загрузки карт для их генерации будет адовым. Видимых около 3 миллионов поликов, а всего на карте в два-три раза больше (есть и простые карты).

wawan
Начальство знает о проблеме, но "разводит руками", оптимизация это моя инициатива, потому что графику меняю и как бы тоже не бесплатно, надо чтоб 25 фпс хотя бы было в готовой игре на моем компе и с новой графой. Система athlon ii 2.9 ghz, gf9600gt 512 mb это под максимальное качество в разрешении 1280*1024 и 25 фпс должно быть (амбиент окклюжн в том числе). Минимальные системки athlon xp самый позорный или pentium 4, 128 метров видео в 3_0 шейдерами и vtf (под радеоны 1300-1950 хз, может не буду юзать vtf) и производительность при том угле обзора камеры, что на скриншоте, должна быть 10 фпс (но качество детализации по лодам будет низким). Могу себе представить, как юзеры будут психовать с тормозов бОльших чем с крайзиса первого, проклиная притом меня.

#37
3:21, 3 июня 2012
Дело в том, что здания и так состоят из тех лодов, о которых вы говорите (если правильно понял), а при попадании снаряда или взрывной волны этот крупный кусок удаляется, заменяясь на множество падающих мелких, большинство которых через некоторое время исчезает. Если не правильно понял, объясните иначе.

И почему же столько мелочи на wire рендере на таких дистанциях, непонятно..
#38
3:53, 3 июня 2012

Jarro
Стены и крыша имеют толщину и рисуется излишняя геометрия поэтому. Отключить исходя из свойств материала не получится без изменений модельки, потому что некоторые текстуры общие. Wireframe более чем в 2 раза плотнее выглядит для зданий. Но все равно решение должно быть иным, не стоят дома целыми долго, проверено перепроверено и крест вбит.

#39
4:12, 3 июня 2012

BorisV
Если я правильно понимаю, вся проблема только в зданиях.
Давай рассказывай про них подробнее.
В каком они виде? Один аццкий меш с как-то размеченными вершинами? Или много отдельных мешей?
Ты сказал, что куски зданий удаляются, заменяясь на что-то. Как эти куски разделяются?

#40
5:22, 3 июня 2012

BorisV, возможно ли сделать так:

- есть, например, разрушенное здание

- камера отдаляется от него

- в тот момент, когда камера отдалится достаточно далеко от него, это здание рендерится в текстуру, а текстура натягивается на один полигон.

- эта "модель" собственно и заменяет здание и используется в дальнейшем, пока камера не приблизится к зданию снова.

- либо пока не произойдут изменения в здании - кто-нибудь в него выстрелит и разрушит ещё немного

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

можно использовать кубик, на грани которого натянуты текстуры, в которые было отрендерено разрушенное здание
возможно в этом случае можно использовать текстуры с прозрачностью (всё таки если у здания взорвали угол - это должно быть видно)

при удалении камеры на большие расстояния текстуры удалять


 
BorisV
> даже самые абсурдные

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

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

#41
7:01, 3 июня 2012

а для геометрии оптимизация для кеша есть?

#42
9:02, 3 июня 2012

BorisV
> Начальство знает о проблеме, но "разводит руками", оптимизация это моя
> инициатива, потому что графику меняю и как бы тоже не бесплатно, надо чтоб 25
> фпс хотя бы было в готовой игре на моем компе и с новой графой. Система athlon
> ii 2.9 ghz, gf9600gt 512 mb это под максимальное качество в разрешении
> 1280*1024 и 25 фпс должно быть (амбиент окклюжн в том числе). Минимальные
> системки athlon xp самый позорный или pentium 4, 128 метров видео в 3_0
> шейдерами и vtf (под радеоны 1300-1950 хз, может не буду юзать vtf) и
> производительность при том угле обзора камеры, что на скриншоте, должна быть 10
> фпс (но качество детализации по лодам будет низким). Могу себе представить, как
> юзеры будут психовать с тормозов бОльших чем с крайзиса первого, проклиная
> притом меня.
Эх, начальства у тебя тупые... Ну не получиться быстро и качественно нарисовать модель в стопятьсяот полигонов.

#43
10:32, 3 июня 2012

BorisV
> Здания, заборы и прочее разрушаемы, состоят из расчлененных элементов, поэтому
> про 2-4 полигона речи быть не может.
когда происходит событие на разрушение меняй геометрию как это в нормальных играх делается.

#44
10:39, 3 июня 2012

Chaos_Optima
> когда происходит событие на разрушение меняй геометрию как это в нормальных
> играх делается.
Он говорил уже стопятьсот раз, что нужно считать разрушенное состояние дефолтным (после 3-х минут игры)

Страницы: 1 2 3 4 512 Следующая »
ПрограммированиеФорумГрафика

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