Деревья и Draw Calls

Speed Tree : Terrain & Trees.

Деревья и Draw Calls

Сообщение Sam55555 07 июл 2009, 23:34

Здравствуйте,
такая проблем:
терреин с деревьями и травой,дирекшин лайт и лайтмэп.Показывает 1200 Draw Calls и 10 FPS.Может быть что-то пропустил,но не должен ли Юнити траву за один-два DrawCall'а рисовать и одинаковые деревья тоже за пару?
Может опция какая-то это выставляет?

Спасибо заранее за ответ.

P.S.Деревья стандартные
Аватара пользователя
Sam55555
UNец
 
Сообщения: 41
Зарегистрирован: 26 июн 2009, 00:45

Re: Деревья и Draw Calls

Сообщение Neodrop 08 июл 2009, 08:52

[V] Уменьшите количество Mesh-Trees (очень сильно влияет на производительность).
[V] Если у вас много разных видов растительности, не высаживайте её кучно.
Есть прямая зависимость между количеством типов растительности/деревьев и падением FPS

[V] Рассаживайте растительность зонами - на западе одна травка, на востоке другая (но вкуснее), а на "Лысой Горе" одни камни.
[V] Не используёте размер террейна более чем 2х2 километра.
[V] Не используйте карты высот более чем 512х512
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Деревья и Draw Calls

Сообщение Sam55555 08 июл 2009, 10:22

Спасибо за ответ,но все же еще вопросики открытые по поводы инстансинга.
Забыл сказать,что всего два вида деревьев и один вид травы.Количество деревьев - штук тридцать.Так он у меня даже те,которые за фруструмом не вырезает.Неужели нет инстансинга для флоры.Один вид травы в кадре по идее вообще за один ДИП рисоваться должен.Может этот инстансинг как-то включать надо.У всех так одно дерево = ДИП,одна травинка = ДИП?Не должны ли все деревья одного вида в кадре рисоваться за один ДИП?
Аватара пользователя
Sam55555
UNец
 
Сообщения: 41
Зарегистрирован: 26 июн 2009, 00:45

Re: Деревья и Draw Calls

Сообщение Neodrop 08 июл 2009, 10:47

Вместе с Unity, в ваши "Документы" устанавливается демо пример - Island Demo
Я думаю, получить все ответы и поглядеть производительность вашей машины с Unity Terrain можно, запустив и изучив эту демку.
Если она пойдёт бодро, значит что то совсем плохо с вашими трудами, если затупит, то, видать уж больно стара железка.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Деревья и Draw Calls

Сообщение Sam55555 08 июл 2009, 13:27

Демка летает то шустро.Но вопрос не только в производительности,но еще и в том как рисует Юнити флору.Может ли Юнити за один ДИП рисовать сразу всю траву в кадре или одинаковые деревья объединяя их в один VertexBuffer или используя Hardware инстансинг?В демке 500-600 ДИПов,хотя в кадре всего 3-5 видов растительности.
Аватара пользователя
Sam55555
UNец
 
Сообщения: 41
Зарегистрирован: 26 июн 2009, 00:45

Re: Деревья и Draw Calls

Сообщение Neodrop 08 июл 2009, 14:05

Ну что я могу сказать? Берём в руки (nvidia_sm) NVidia PerfHUD и глядим в собранной программе.
[unity 3D] Unity поддерживает (nvidia_sm) PerfHUD.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Деревья и Draw Calls

Сообщение Sam55555 08 июл 2009, 16:53

Спасибо за подсказку с PerfHUD.Я раньше про него слышал,но не работал с ним так как он не поддерживает OpenGL,а я в связи с положением программировал только на нем.Теперь перебежали на Юнити (лепотааааа :) ).Я получил ответы на все свои вопросы,так что еще раз спасибо.
Аватара пользователя
Sam55555
UNец
 
Сообщения: 41
Зарегистрирован: 26 июн 2009, 00:45

Re: Деревья и Draw Calls

Сообщение Neodrop 08 июл 2009, 18:41

Кстати, поделитесь изысканиями, всем пригодится. :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Деревья и Draw Calls

Сообщение Sam55555 08 июл 2009, 21:28

Да ничего там сверхестественного нет.Трава рисуется кучками(1 кучка = 1 ДИП),а не вся сразу,но и не по одной травинке.Дерево рисуется в два ДИПа - ствол и листья.Терреин тоже кусками.Очень интересно смотреть через PerfHUD как строится кадр и вызовы API в Island Demo :D .Да я сильно пока не копался,меня тока инстансинг интересовал,да и времени пока нет.
Если еще что накопаю,то конечно отпишусь.
Аватара пользователя
Sam55555
UNец
 
Сообщения: 41
Зарегистрирован: 26 июн 2009, 00:45

Re: Деревья и Draw Calls

Сообщение gnoblin 08 июл 2009, 22:20

Да, интересная инфа - спасибо за Отчет :-bd .
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Деревья и Draw Calls

Сообщение romeo_ftv 09 июл 2009, 12:46

давеча тоже смотрел своё творение через PerfHUD, и был несколько поражен тем как Unity3d самостоятельно совсем не заботится о DIP'ах. Мало того, еще и оказывается шейдер Diffuse требует как минимум два прохода, рассчитывая ambient освещение в отдельном проходе. Видимо это всё цена за универсальность. Ну да ладно, главное, что это поправимо, хотя надеюсь, что к моменту когда приступлю к оптимизации, разработчиками уже будет что нибудь предпринято в этом плане.
romeo_ftv
UNIт
 
Сообщения: 88
Зарегистрирован: 12 апр 2009, 12:33

Re: Деревья и Draw Calls

Сообщение Neodrop 02 авг 2009, 02:38

Про шейдер это вообще не новость. Официально, однопроходные шейдеры только Vertex Lit.
Читайте гайд по шейдерам и не ищите тайны там, где их никогда небыло. :-?

http://unity3d.com/support/documentatio ... Guide.html

[ftp]http://unity3d.com/support/documentation/Components/Built-in%20Shader%20Guide.html[/ftp]
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Земля и деревья.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1