Воскресенье, 15 Сентября 2019, 19:59

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Проблема с оптимизацией игры. Выдает 5 - 10 фпс. Unity3D (Не могу понять, что делать с Gfx.WaitForPresent)
Проблема с оптимизацией игры. Выдает 5 - 10 фпс. Unity3D
ArtemSДата: Пятница, 15 Февраля 2019, 17:59 | Сообщение # 21
почетный гость
Сейчас нет на сайте
Цитата drcrack ()
4 материала с текстурами 512х512 будут медленней чем 1 материал с атласом 1024х1024


тут фишка как понимаю в объемности проекта. поменьше весить будет. к оптимизации никакого отношения не имеет, но просто полезно будет знать


хуяк, хуяк и в продакшн
BrightSpotДата: Пятница, 15 Февраля 2019, 18:02 | Сообщение # 22
заслуженный участник
Сейчас нет на сайте
Цитата drcrack ()
но все же лучший способ убить в ноль фпс на мобиле это overdraw
и проще всего этого достичь с использованием полупрозрачных шейдеров

есть десятки шейдеров которые в разы тяжелее=) например реалтайм Ambient occlusion(не пост обработка) убеют мобилу на паре кубиков =)
PBR шейдеры жидкостей, в большей части, нагрузят систему до кипения...
почти любой шейдер постобработки убивает(
так же шейдеры юзающие риалтайм тени...
да и просто несколько "if"-ов в пиксельном шейдере может подвесить телефон=)
Не пойму почему все так на полупрозрачность взъелись?=))

Добавлено (15 Февраля 2019, 18:06)
---------------------------------------------

Цитата ArtemS ()
тут фишка как понимаю в объемности проекта. поменьше весить будет. к оптимизации никакого отношения не имеет, но просто полезно будет знать

тут прямая ставка на оптимизацию - меньше раз загрузка\выгрузка текстур в памяти = быстрее работает...
Если углубиться, то нужно соблюдать баланс в зависимости от того, что отрисовывется...



Более мощный компьютер глючит быстрее и точнее.
drcrackДата: Пятница, 15 Февраля 2019, 18:16 | Сообщение # 23
старожил
Сейчас нет на сайте
Цитата
Ambient occlusion(не пост обработка)

я даже погуглил но все равно чето не понял
как именно работает не-пост-обработка AO? т.е. я полагаю не основанное на рейкастах в буферах глубин и нормалей?


Dynamic GPU Occlusion Culling for Unity
BrightSpotДата: Пятница, 15 Февраля 2019, 18:24 | Сообщение # 24
заслуженный участник
Сейчас нет на сайте
Цитата drcrack ()
как именно работает не-пост-обработка AO? т.е. я полагаю не основанное на рейкастах в буферах глубин и нормалей?

я не особо разбирал как этот шейдер работает(0-1 фпс на 1 кубике отбил охоту даже разбирать) , но буферы и нормали юзает 100%(не могу даже представить другого подхода)
этот пример не эталонный(я случайно его нашел), просто вспомнилось=)



Более мощный компьютер глючит быстрее и точнее.
drcrackДата: Пятница, 15 Февраля 2019, 18:32 | Сообщение # 25
старожил
Сейчас нет на сайте
возможно речь о Parallax Occlusion Mapping?

Dynamic GPU Occlusion Culling for Unity
BrightSpotДата: Пятница, 15 Февраля 2019, 18:45 | Сообщение # 26
заслуженный участник
Сейчас нет на сайте
Цитата drcrack ()
возможно речь о Parallax Occlusion Mapping?

это точно не оно...
З.Ы посмотрю, может найду на компе - скину для ознакомления=)



Более мощный компьютер глючит быстрее и точнее.


Сообщение отредактировал BrightSpot - Пятница, 15 Февраля 2019, 18:46
drcrackДата: Пятница, 15 Февраля 2019, 18:50 | Сообщение # 27
старожил
Сейчас нет на сайте
ну я хз что это за не-пост-AO которую можно к тому же натянуть на кубик...

Dynamic GPU Occlusion Culling for Unity
BrightSpotДата: Пятница, 15 Февраля 2019, 19:03 | Сообщение # 28
заслуженный участник
Сейчас нет на сайте
Цитата drcrack ()
ну я хз что это за не-пост-AO которую можно к тому же натянуть на кубик...

я не особо задумывался по этому поводу... нашел его в загашниках гугла когда дали сделать 3д стратежку под орехокол %) с оптимизацией и шейдерами тогда почти не дружил и пробовал все, что попадало под руку т.к обычный АО не тянуло, а сделать нужно "красиво" crazy сейчас самому стало интересно , что там "под капотом"=)
Помню что мат-л накидывался поверх основного и натягивал ао на модельку с зависимостью только от наличия мат-ла на "соседях" + самозатенение(включая нормали)...



Более мощный компьютер глючит быстрее и точнее.


Сообщение отредактировал BrightSpot - Пятница, 15 Февраля 2019, 19:07
drcrackДата: Пятница, 15 Февраля 2019, 19:17 | Сообщение # 29
старожил
Сейчас нет на сайте
Цитата
Помню что мат-л накидывался поверх основного

ну т.е. фактически это пост-процессинг, только не полноэкранный, а ограниченный этой моделью :D


Dynamic GPU Occlusion Culling for Unity
BrightSpotДата: Пятница, 15 Февраля 2019, 19:19 | Сообщение # 30
заслуженный участник
Сейчас нет на сайте
Цитата drcrack ()
ну т.е. фактически это пост-процессинг, только не полноэкранный, а ограниченный этой моделью

с таким подходом полупрозрачнось, маски и т.п все постпроцесинг :D Но а так да, я не уточнил что имею ввиду именно экранный=)



Более мощный компьютер глючит быстрее и точнее.
drcrackДата: Пятница, 15 Февраля 2019, 19:28 | Сообщение # 31
старожил
Сейчас нет на сайте
Цитата
с таким подходом полупрозрачнось, маски и т.п все постпроцесинг

ну нет, полупрозрачность это аппаратный блендинг, а маски — аппаратный стенсил
суть (скорее, определение) пост процессинга по-моему все-таки в обработке результатов рендеринга своими шейдерами
и разница в данном случае только в меше — ты либо рисуешь полноэкранный треугольник без теста глубины и обрабатываешь все целиком, либо рисуешь меш того самого кубика с тестом (equal) чтобы попасть точно в него
но пиксельный шейдер и в том и в другом случае будет обычным SSAO

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


Dynamic GPU Occlusion Culling for Unity

Сообщение отредактировал drcrack - Пятница, 15 Февраля 2019, 19:33
BrightSpotДата: Пятница, 15 Февраля 2019, 19:40 | Сообщение # 32
заслуженный участник
Сейчас нет на сайте
Спорить не буду - это просто моя прихоть\привычка использовать определение постобработки только для полноэкранного варианта =)


Более мощный компьютер глючит быстрее и точнее.
killing002Дата: Пятница, 15 Февраля 2019, 22:20 | Сообщение # 33
частый гость
Сейчас нет на сайте
Цитата drcrack ()
4 материала с текстурами 512х512 будут медленней чем 1 материал с атласом 1024х1024


Мне стало интересно. В новых версиях юнити, добавили такой инструмент, как ProBuilder, с помощью которого, можно прям не отходя от кассы сделать 3д модель и прям тут же ее затекстурить. Вот в чем вопрос, если с помощью этого инструмента сделать несколько 3д моделей, то с помощью одного материала можно по разному наложить текстуру на эти объекты. Я так понимаю, что юнити создает для каждого объекта разную uv- развертку из одного материала, и автоматом добавляет их в атлас. Я верно считаю?


123
BrightSpotДата: Пятница, 15 Февраля 2019, 22:56 | Сообщение # 34
заслуженный участник
Сейчас нет на сайте
Цитата killing002 ()
ProBuilder, с помощью которого, можно прям не отходя от кассы сделать 3д модель и прям тут же ее затекстурить.

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



Более мощный компьютер глючит быстрее и точнее.
killing002Дата: Суббота, 16 Февраля 2019, 00:20 | Сообщение # 35
частый гость
Сейчас нет на сайте
Цитата BrightSpot ()
об оптимизации речи и быть не может

ТО есть, лучше, с точки зрения оптимизации, является: в какой-нибудь 3д проге, под типу maya/cinema4d/3dmax - сделать модель , развертку, затекстурить, и потом все это дело экспортировать в юнити. Но ведь материалы, в таком случае, для каждого объекта индивидуальны. То есть 1 объект - 1 материал. И это является более оптимизированным?


123
BrightSpotДата: Суббота, 16 Февраля 2019, 00:42 | Сообщение # 36
заслуженный участник
Сейчас нет на сайте
Цитата killing002 ()
сделать модель , развертку, затекстурить, и потом все это дело экспортировать в юнити. Но ведь материалы, в таком случае, для каждого объекта индивидуальны.

Делаешь пак моделей, развертки окуратно располагаешь на UV, все это текстуришь(2к имхо оптимально)... чем больше впихнешь в одну развертку тем меньше материалов...
Например в одном уровне использую 2 пака моделей(1-ый с альфой, 2-ой без) для окружения. На все 2(2к) текстуры... в общей сложности ~ 140 моделей. но моделил это все профи(и материл меня за требования)



Более мощный компьютер глючит быстрее и точнее.


Сообщение отредактировал BrightSpot - Суббота, 16 Февраля 2019, 00:43
drcrackДата: Суббота, 16 Февраля 2019, 03:22 | Сообщение # 37
старожил
Сейчас нет на сайте
140 моделей запихать в 2к текстуру это круто :D

Dynamic GPU Occlusion Culling for Unity
BrightSpotДата: Суббота, 16 Февраля 2019, 03:45 | Сообщение # 38
заслуженный участник
Сейчас нет на сайте
Цитата drcrack ()
140 моделей запихать в 2к текстуру это круто

140 на 2 текстуры=) Но все равно наш 3дшник круто сработал :D



Более мощный компьютер глючит быстрее и точнее.
killing002Дата: Воскресенье, 17 Февраля 2019, 00:53 | Сообщение # 39
частый гость
Сейчас нет на сайте
Немного выше вы написали, что в камере должно быть не более 100к трисов. Хотелось бы уточнить, это прям серьезное требование, при нарушении которого сильно упадет производительность. Или все таки им можно будет слегка пренебречь. Например до 200 или 300к трисов?

123
drcrackДата: Воскресенье, 17 Февраля 2019, 03:15 | Сообщение # 40
старожил
Сейчас нет на сайте
никто не знает какие у тебя там шейдеры и как хорошо все батчится
может упадет, а может и нет
зачем спрашивать, просто протести


Dynamic GPU Occlusion Culling for Unity
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Проблема с оптимизацией игры. Выдает 5 - 10 фпс. Unity3D (Не могу понять, что делать с Gfx.WaitForPresent)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг