Деревья:Увеличение DrawCall при повороте камеры

Раздел, посвящённый самому важному - скорости.

Деревья:Увеличение DrawCall при повороте камеры

Сообщение Shi 31 май 2011, 19:24

Имеется, предположим, 9 террейнов. К ним применен SetNeighbors.
Свойства (BillboardStart,Detail resolution и прочее) у террейнов минимальны, как и настройки графики.
На них высажены по 5-10к примитивных деревьев (1.6к полигонов). По 4 разных вида, но которые тем не менее используют один Tree материал.
Но каждый раз при повороте камеры DK прыгают с 40 до 2000, соответственно фпс тоже.
Начало подобное проявляться после "засеивания" террейнов деревьями. (Один террейн выдерживает 60 к деревьев без какого либо неадекватного падения фпс.)
Помогите разобраться, это баг Юнити, или моих кривых рук (в этом случае, как можно исправить подобное)
Скрытый текст:
DK2.jpg

DK1.jpg
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение gnoblin 31 май 2011, 22:39

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

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение Neodrop 01 июн 2011, 00:47

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

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение waruiyume 01 июн 2011, 02:15

"RenderTexture Switches: 156"-это то, что кажется ? :-ss
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение Shi 01 июн 2011, 08:32

Neodrop писал(а):У меня есть сцена с 64 террейнами. Деревьев я даже не знаю сколько там.
Таких прыжков не видел. Вообще не видел никаких прыжков дракул. Вы уверены, что вы правильно применили SetNeighbors ?
Я тут выкладывал editor скриптик для них. Не помню только где.. Давно было. В Antares Project он есть. И, кстати, а какова дистанция видимости камеры и размеры террейнов?

Дистанция видимости камеры 100к (имеет место быть динамическое "небо", "облака" и т.д.).
Размеры террейнов 2к на 2к на 2к. Разрешение 513.
SetNeighbors (параметры так же проверял раза 2)
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class SetTerrainNeighbors : MonoBehaviour
{
    public Terrain top;
    public Terrain bottom;
    public Terrain left;
    public Terrain right;

    void Start()
    {
        Terrain terra = GetComponent("Terrain") as Terrain;
        terra.SetNeighbors(left, top, right, bottom);
    }
}

waruiyume писал(а):"RenderTexture Switches: 156"-это то, что кажется ?

Если и да, то я ума не приложу, откуда они могли взяться. Так же Tris, Verts скачет вверх в 3-4 раза больше чем в состоянии покоя.

Буду пробовать разбираться поочередно отключая те или иные функции, но в данный момент на всех террейнах по 1 типу дерева (стандартное big_tree), одной текстуре и нет detail. Проблема осталась.
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение gnoblin 01 июн 2011, 15:29

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

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение unityfan 01 июн 2011, 15:53

Без нее не работает UniSky корректно.В мануале по тузле указана такая дистанция.Иначе мы не видим небо с облаками.
unityfan
UNIт
 
Сообщения: 91
Зарегистрирован: 14 ноя 2010, 12:58

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение gnoblin 01 июн 2011, 16:17

unityfan писал(а):Без нее не работает UniSky корректно.В мануале по тузле указана такая дистанция.Иначе мы не видим небо с облаками.

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

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение sp00n 01 июн 2011, 16:30

Попробуйте временно отключить UnitySky - возможно именно в нем проблема (RenderTexture как бы настораживает)?
Ты молод, креативен, талантлив?
Амбициозен, уверен в себе, полон свежих идей?
А делать хоть что-нибудь умеешь?!
sp00n
UNITрон
 
Сообщения: 254
Зарегистрирован: 27 фев 2010, 20:43

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение Shi 01 июн 2011, 18:22

sp00n писал(а):Попробуйте временно отключить UnitySky - возможно именно в нем проблема (RenderTexture как бы настораживает)?

Пробовал. Безрезультатно.
Такие тормоза проявляются как только на все террейны высажен хоть один тип деревьев.
UniSky не использую из-за недостаточно устраивающего меня результата (из всего UniSky использую лишь незначительно переписанный шейдер облаков.)
От дистанции камеры не зависит (на 2000 проблема сохранилась).

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

По результату отпишу.
Всем спасибо за гипотезы!
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение Neodrop 01 июн 2011, 20:10

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

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение Shi 01 июн 2011, 20:19

Neodrop писал(а):Небо рендерить отдельной камерой, а всё остальное - другой. НУ что за кошмарный подход к производительности?

Все как раз и рендерится разными камерами, с чего вы взяли обратное? Во время дебага привык использовать одинаковые параметры на схожих объектах, если это не снижает производительности. Поэтому range у основной камеры был такой же как у Sky камеры (так же планировалось использовать более глобальные terrain массивы). На производительность\баги и т.д. это не влияет в моем случае.
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение gnoblin 01 июн 2011, 20:46

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

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение Neodrop 01 июн 2011, 21:05

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

Re: Деревья:Увеличение DrawCall при повороте камеры

Сообщение Shi 01 июн 2011, 21:45

Neodrop писал(а):То есть 100к дистанция на камере даёт такие же результаты что и 2к ?
Как то мне не верится ;)

В моем конкретном случае это так (во всяком случае потерей 1-2 дк можно пренебречь).
gnoblin писал(а):Ещё можно запостить проект-пример :)

Не думал, что кому то было интересно. С удовольствием запощу упрощенный и ужатый "идеализированный" вариант. При повороте камеры будет заметно, что ДК увеличиваются в 2-3 раза, даже если ничего в поле зрения нет. После удаления деревьев, этот эффект должен по идее исчезнуть. Соответственно, с усложнением сцены ситуация становилась плачевнее.
http://rghost.ru/8973691(8,5 мб)
Аватара пользователя
Shi
UNITрон
 
Сообщения: 211
Зарегистрирован: 30 ноя 2010, 14:58
Откуда: Санкт-Петербург

След.

Вернуться в Оптимизация

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

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