Воскресенье, 29 Сентября 2024, 10:31

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
robertonoДата: Суббота, 26 Октября 2013, 12:23 | Сообщение # 881 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
KamiRonin, я вот попросил моего друга с медленным компом протестировать, где было где то 20к кубов. Даже за 5 минут игра комп не смог скомбинировать в меши. Просто зависает игра и всё. У него geforce 9600 gt , а вот процессор пока не знаю какой. Pentium - Core 2 Duo
robertonoДата: Пятница, 25 Октября 2013, 23:43 | Сообщение # 882 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
KamiRonin, я сделал гет компонент в перменную, и получилось comp(название переменной).mesh.combi...
Жалуется на get_mesh

Добавлено (25.10.2013, 22:22)
---------------------------------------------
Короче про потоки и функции можно СРАЗУ ЗАБЫТЬ, НО я нашёл другое решение. Как бы это не смотрелось.. Это IENumerator! Просто создаём нумератор, и запускаем его где он уже сделает combine.
+ комбайнинг меша происходит с намного меньшей задержкой
+ иенумератор походу работает не на основном потоке, что позволяет не зависнуть игре при его работе
+ хороший способ вызвать функцию без лага

А что скажите вы?

Добавлено (25.10.2013, 23:43)
---------------------------------------------
Короче я точно буду использовать комбинирование в меш используя ienumerator. Кстати я попробовал поставить 16к - 22к кубов примерно, это здания , без комбинирования 10 фпс! Врубаю в короутайне, даже и секунды не проходит и все здания цельные меши и становится 800 фпс! Поразительно!

KamiRonin спасибо огромное smile

robertonoДата: Пятница, 25 Октября 2013, 20:12 | Сообщение # 883 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
KamiRonin, походу combinemeshes невозможно использовать в threadах... sad
Это ведь Unity API , а функции юнити нельзя использовать так в потоках. Я хотел
Код
go.GetComponent<MeshFilter> ().mesh.CombineMeshes (combine);

Сделать в потоках.
Но пишет что GetComponent can only be called from the main thread, а та строчка самая тяжелая из всего скрипта...
robertonoДата: Пятница, 25 Октября 2013, 18:22 | Сообщение # 884 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Цитата Xakep ()
не будет

а может кто то покажет простой пример с использованием потоков ? Статьи с нормальным описанием использования потоков в шарпе приветствуются!

KamiRonin, ну тогда будем ждать.. Пока я игру доведу до бетки может и инстансинг внедряд biggrin
robertonoДата: Пятница, 25 Октября 2013, 15:54 | Сообщение # 885 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Хватит спорить между собой у кого идея лучше!
Я даже и не думал что всем так понравится тема про кубы...

Хотелось бы больше узнать про инстансинг. Ввел в гугл unity3d instancing а он мне предлагает gpu instancing, mesh instancing , hardware instancing... Что по моей теме больше подходит? Меш инстансинг?

Цитата KamiRonin ()
в общем я думаю что тема бодро переходит во флуд!!

Я всё равно уже выбрал пару способов какие я точно смогу сделать сам. Так что тема то не очень долго ещё будет длиться.

Добавлено (25.10.2013, 15:38)
---------------------------------------------
Цитата KamiRonin ()
(1600 фпс было у человека!)

combinemeshes очень крутая вещь...

Добавлено (25.10.2013, 15:54)
---------------------------------------------
Я даже покажу ( biggrin )
Вот тут где то 2000 кубов, без комбинирования. 90 фпс с тенями.

А вот тут те же примерно 2000 кубов, только скомбинированные с добавленным mesh collider

2000 фпс. Выглядят полностью одинаково smile
Но комбинирование было не при старте а при нажатии определённой кнопки (тест). Пауза всё таки небольшая была. Я вот никогда с потоками не работал.. Если выполнять в потоках (вообще незнаю как делается), то будет ли опять небольшой лаг на пол секунды?


Сообщение отредактировал robertono - Пятница, 25 Октября 2013, 15:54
robertonoДата: Пятница, 25 Октября 2013, 00:03 | Сообщение # 886 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Pixelfox, покажи что сделал ты, мастер игростроя?
robertonoДата: Четверг, 24 Октября 2013, 22:48 | Сообщение # 887 | Тема: Музыка в мобилу. Какой вариант предпочтительней?
Чокнутый Кот
Сейчас нет на сайте
Цитата Ranger ()
Ответ найден.

попрошу оставить решение здесь , на форуме. Это пригодится может кому нибудь . Может кто то попадёт на эту тему через гугл)
robertonoДата: Четверг, 24 Октября 2013, 22:47 | Сообщение # 888 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Цитата KamiRonin ()

о. еще один усталый мегагеймдевер мимо проходил.. сил и опыта хватило только поохать по стариковски.

и ещё один .. Pixelfox

KamiRonin, Спасибо за активность в теме. Только Вы тут даёте хорошие ответы которые соответствуют моей теме и потребностям.
Вы говорите нужно отказываться от кубов. Ведь в minepackage я так понял это просто мешы , 16 на 16, где просто меняются точки на меше из за которых образуются кубы , а на самом деле это просто меш с точками на разной высоте? И всё?

Ещё добавлю одну важную вещь. Игра делается как бы в кубическом стиле, но не всё будет состоять из кубов. В зданиях будут отдельные модели : столы, стулья, компьютеры и другая мебель. Поэтому делать как в minepckg (если я правильно понимаю что это так там делается) я думаю нельзя, потому что здесь уже не просто точки а целые модели. Я не упомянул это ранее так как речь шла больше о создании целого меша из кучи мелких объектов.
robertonoДата: Четверг, 24 Октября 2013, 19:29 | Сообщение # 889 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
KamiRonin, meshmerger не справился с тем что бы превратить 4300 кубов в один меш и начал жаловаться 41 ошибками и первая его расстройство то что больше 65000 вершин biggrin .
Поэтому я сделал свой скрипт из примера документации mesh.combinemeshes, и скрипт впихнул 60 % здания в меш. Остальное отказался, наверно потому что больше 65к вершин , хотя не понимаю как может быть 65к (в кубе одном из юнити, сколько вершин ? 12 ?).
Но хоть он и сделал только половину вместо 60 фпс целого здания, у меня стал 1 меш где 60 % его и стало 1600 фпс (!!) .
А есть способ вернуть блоки опять в отдельные кусочки ? Или нужно удалить этот целый меш, включить отдельные блоки, применить действие к определённым, вытащить определённые из геймобджекта, и опять запихать всё в 1 меш ?
А можно делать combinemeshes в ассинхронном потоке (или как он там, может я опять что то напутал, вообщем мульти-ядерно) ?
robertonoДата: Среда, 23 Октября 2013, 18:44 | Сообщение # 890 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Есть одна игра, Ace of Spades. Шутер в кубическом мире. Кубы не имеют текстуры, это просто кубы разного цвета. Чанков я так понял там тоже нету, потому что не видно что бы они там грузились. Тогда получается что там весь мир одним дров калсом рисуется? Движок у них вроде как свой.
robertonoДата: Среда, 23 Октября 2013, 17:49 | Сообщение # 891 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Цитата KamiRonin ()
у меня полный комплект исходников

Можете мне скинуть исходники? А насчёт ломаются - я имел ввиду разрушение , удаление блоков.

Цитата KamiRonin ()
а MeshMerge не посмотрел?

Вы мне вроде не скидывали это. Где можно почитать про это ?
Я только нашёл в ютубе Mesh Combine который группировал как то объекты так что создавал из 50 DC - 1. smile

Цитата KamiRonin ()
она будет в разы быстрее работать чем 500k лучей на каждом тике разбрасывать

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

Добавлено (23.10.2013, 17:33)
---------------------------------------------
KamiRonin, mesh merge тоже самое что и merge combine? (mesh.combineMeshes)

Добавлено (23.10.2013, 17:49)
---------------------------------------------
KamiRonin, ой, пардон, ссылку на mesh merge вы давали

robertonoДата: Среда, 23 Октября 2013, 17:34 | Сообщение # 892 | Тема: Физика авто[Уже куплено!]
Чокнутый Кот
Сейчас нет на сайте
IGRAMEN, ты бы лучше цену написал сразу а то людям будет лень даже выделить твой ник скайпа)
robertonoДата: Среда, 23 Октября 2013, 16:29 | Сообщение # 893 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Спасибо за ответ KamiRonin.

Цитата KamiRonin ()
только добавь воды regidbody.

Там ведь кубы это просто меш, 16х16х** , и на что добавлять то риджид боди? А если нужно добавить на конкретные.. Мне кажется это просто нереальным, может я просто что то не понимаю или я ошибаюсь.

Цитата KamiRonin ()
кто то решал лучами там

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

Цитата KamiRonin ()
путем рендеринга одного меша вместо многих идентичных

А что если рендерить у кубов не все 6 сторон, а только 3 которые в данный момент видно?

А вот насчёт Mine Package... Я не смог найти нормальных исходных кодов. Я находил те, которые на сурс фордже оставил разработчик, скачал, но блоки не ломаются, даже в коде я такого не нашёл, только в дебаг пишется Diggins in (vector3...) и всё. Но ведь это делалось где то под 3.3 или 3.5.
А у меня уже 4.2 и может поэтому не работает. Но если я правильно понял.. То в MinePckg это просто меши 16 х 16, где програмно меняются точки на нём и меняется форма его? Например поставили блок как бы, добавили 4 точки к мешу и появился куб. Так что ли это работает? Заранее благодарю)
robertonoДата: Вторник, 22 Октября 2013, 21:55 | Сообщение # 894 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
KamiRonin, а мне кажется LOD здесь не подойдёт потому что это просто куб. Я не понимаю как это с кубами использовать)

Добавлено (22.10.2013, 21:55)
---------------------------------------------
Цитата KamiRonin ()
остальные считал бы через линию проходящую через точку блока и точку позиции камеры - получил бы на его пути координаты других объектов, из смещение + заранее известный размер "кубов" сделали бы признак видимости однозначным.


мне кажется этот вариант медленным

Добавлено (22.10.2013, 21:55)
---------------------------------------------
Цитата KamiRonin ()
"эти системы"? эт ты про что?

оклюжн кулинги


Сообщение отредактировал robertono - Вторник, 22 Октября 2013, 21:55
robertonoДата: Вторник, 22 Октября 2013, 16:32 | Сообщение # 895 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Цитата Xakep ()
отрисовывать несколько блоков одним вызовом

Это я так понял чанки? Это невозможно сделать, т.к. мир блоки иногда будут получать rigibody + force.

Цитата Xakep ()
большое падение фпс так же из-за того, что одновременно расчитывается вся физика для каждого объекта

я не говорил и этого нету : на кубах нету rigidbody. Просто rigibody будет добавлен объектам около которых взорвалась граната и после чего AddForce.

Добавлено (22.10.2013, 16:28)
---------------------------------------------

Цитата PoqXert ()
Не понятно, откуда ты взял 50К DC и 2М трисов?
Твои 6 зданий и террейн дают ~80 DC и ~330К трисов.


Я тоже не знаю откуда столько... Возможно не правильные модели оружия, т.к. он выглядит самым неоптимизированным...
Модели все делаются в Cinema 4D.


у меня 18 - 22 фпс без теней)

Добавлено (22.10.2013, 16:32)
---------------------------------------------
robertono, потестил, оружие + перс не больше 40к вертов. Вообще не знаю что создало целых 3 милиона!

robertonoДата: Вторник, 22 Октября 2013, 00:04 | Сообщение # 896 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
KamiRonin, из твоего выше сказанного, для себя я могу выбрать создание системы вычисления лицевых сторон. Это должно очень сильно поднять производительность (я думаю). А где можно прочитать про батч процессор?

А вот хотелось бы поговорить о чанках - нужны ли они мне? Если я в какой то момент захочу добавить кубам (во время игры, любой куб который я выберу) rigidbody, то получается чанки тогда безсмысслено делать? И если я хочу построить небоскрёб, сделать ему красивое падение и разрушение то чанки тоже уже не годятся?

Occlusion Culling своими руками.
Можно сделать? Точнее вопрос можно ли выглядит тупо, потому что написать можно что угодно. Скорее вопрос "как".
Я видел такую крутую штуку, Field Of View с помощью теней.
http://unitycoder.com/upload/demos/FOVShadowcasting1/
Может можно как то тени обрабатывать но не обрабатывать ? biggrin Т.е. как бы просчитывать их но не выводить на экран?
И например куда лучи солнца попадают, всмысле на какие объекты , те и рендерить. Источник света повесить на камеру или игрока. Но что бы тоже света небыло, теней небыло но они обрабатывались (очень сомневаюсь что реально, но может можно сделать как то очень похоже). Так можно было бы не рендерить то что находится например ЗА каким нибудь кубом и совсем не видно!

Заранее спасибо!

Добавлено (21.10.2013, 22:47)
---------------------------------------------
KamiRonin, спасибо за подробное описание всего)

Добавлено (21.10.2013, 22:52)
---------------------------------------------
KamiRonin, Какие вообще есть способы что бы не рендерить объекты которые не видно но они например находятся за какими то объектами спереди?

Добавлено (21.10.2013, 23:00)
---------------------------------------------
KamiRonin, А мне кажется всё равно пришлось бы писать свою оклюжн кулинг систему, т.к. которая в про версии она же как запекает объекты, а значит если они динамические то это уже не получится использовать!

Добавлено (21.10.2013, 23:21)
---------------------------------------------
KamiRonin, Из чего вообще состоят эти системы? Сетка из триггеров?

Добавлено (22.10.2013, 00:04)
---------------------------------------------
Вот такое нехитрое решение я нашёл для oclusion culling!
http://unitycoder.com/blog/2012/02/15/raycast-realtime-visibility-2-0/
разработчик предлагает пускать до 60 к рейкастов! Но я проверил, и для плавности достаточно 1024, но не 512) И того,пускаем тысячу рейкастов и отрубаем то что его не трогает) Можно делать массив то что включено, и удалять от туда когда не видно. Вообщем придумать можно хорошо я думаю smile

robertonoДата: Понедельник, 21 Октября 2013, 23:10 | Сообщение # 897 | Тема: NGUI Popup List русский текст
Чокнутый Кот
Сейчас нет на сайте
Andruha93, сменить кодировку всех скриптов через notepad++ на UTF 8 без BOM. С NGUI не знаком вообще. Так что предположение только это. Я знаю что Вы это уже делали но попробуйте это в нотпад++ и utf 8 БЕЗ bom. Попытка не пытка)
robertonoДата: Понедельник, 21 Октября 2013, 16:31 | Сообщение # 898 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Спасибо огромное за ответы конечно.. но всё же
Моя проблема в том что я не сказал что кубы можно будет ломать

Цитата H-O ()
1. Если каждый куб это отдельный объект, то у вас на каждом кубе по несколько лишних полигонов.

Нету смысла создавать куб без всех 6 полигонов, т.к. этот куб можно будет сломать , и если полигонов не будет то это будет уже не куб..

Цитата Barbatos ()
Майнкрафт на планшетах грузится.

Да, потому что там наверняка это делается совсем по другому. Я могу выложить префаб в котором будет все 6 зданий и вы сами всё у себя попробуете.

Цитата Barbatos ()
Возьми куб и посмотри на его сетку и выложи сюда, сколько в одном кубе полигонов.

Это куб созданный в юнити. GameObject - Create - Cube

Цитата NEBR ()
Заостри внимание на материалах. Чтобы на одном кубе был один материал

На каждом кубе один и тот же difuse материал который ставится когда создаёшь куб в юнити.

Цитата Ranger ()
Мне вот интересно, если грохнуть один куб, то кубы сверху "пойдут" вниз, или будут "держаться" за соседей сбоку?

Я про физику ничего не говорил

Цитата Bizzy ()
если про версия то юзай "occlusion culling".

Проект коммерческий и делается на indie версии. В любом случае, разве оклюжн кулинг работает с объектами на которых есть физика, которые можно разрушить?

Добавлено (21.10.2013, 16:01)
---------------------------------------------

Цитата Bizzy ()
Отключи тени

+5 фпс только. Того 14.

Дело не в том, есть ли тени, какие материалы, есть ли оклюжн кулинг, сколько полигонов на кубе юнити.
В этой кубической игре отсутствуют чанки. В этой игре куб, это отдельно созданный gameobject cube без материала. Каждый куб.
Возможно мне нужно просто посмотреть MinePackage.
Я в первом сообщении не просто так упомянул
Цитата robertono ()
А как это делается в других играх и за счёт чего лаги полностью отсутствуют даже на слабых системах ?
.
Просто в других играх это делается совсем по другому как я понял.

Вы видите характеристики моего компьютера? Выигрыш 5 фпс от теней, от полигонов безсмыссленый , так как игра сильно тормозит на видео карте Geforce GTX 770 !

Добавлено (21.10.2013, 16:19)
---------------------------------------------
Вот вам префаб одного здания, врубите юнити, поставьте first person controller, поставьте здание на сцену 6 раз (у меня стоит 6 зданий) и посмотрите сколько фпс будет у вас. Не думаю что больше 2.

BuildingPrefab

Добавлено (21.10.2013, 16:29)
---------------------------------------------
Открыл я значит MinePackage, текстуры у меня грузится не хотели , но я включил максимальное сглаживание (x8), fantastic, врубил тени.


1000 fps)) С помощью чего это достигается?

Добавлено (21.10.2013, 16:31)
---------------------------------------------
Но там не ломаются блоки почему то...

robertonoДата: Понедельник, 21 Октября 2013, 00:20 | Сообщение # 899 | Тема: Оптимизация сцены где очень много объектов
Чокнутый Кот
Сейчас нет на сайте
Здравствуйте! У меня вопрос по поводу оптимизации игры.
Как это делается в играх где мир состоит из кубов (или просто очень много объектов) ?
Ведь в играх где кубы, это отдельные кубы, ведь каждый можно разрушить, но лагов то нету. А там на камере видно очень много кубов!

Я построил здание из кубов, раскопировал его по сцене. Получилось около 60 к кубов видимых на камере! Но ведь это даже совсем не детализированные здания. При этом на i5 3570 и gtx 770 выдаёт всего то 7 фпс. Как убираются лаги? И почему лагов в других играх нету? Например ace of spades. У меня это просто объекты. А как это делается в других играх и за счёт чего лаги полностью отсутствуют даже на слабых системах ?

Заранее спасибо!

Добавлено (21.10.2013, 00:19)
---------------------------------------------
Немного статистики

Добавлено (21.10.2013, 00:20)
---------------------------------------------
И это очень маленькая локация, в игре планируются локации намного большего масштаба. Только проблема с производительностью..

robertonoДата: Четверг, 17 Октября 2013, 21:10 | Сообщение # 900 | Тема: statistics vs profiler кто правее
Чокнутый Кот
Сейчас нет на сайте


А если честно, то я думаю лучше ориентироваться по меньшим числам. А ещё лучше скачать fraps / bandicam и замерить сколько fps в окне игры. Так ты и докажешь кто прав!
Поиск:

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