Что лучше - несколько материалов, или несколько объектов - Форум Игроделов
Пн, 20 Май 2024, 04:38 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Что лучше - несколько материалов, или несколько объектов (-)
Что лучше - несколько материалов, или несколько объектов
seamanДата: Чт, 05 Янв 2012, 21:17 | Сообщение # 1
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Делаем траву. Есть атлас типа:

1. Есть 4 объекта отличающиеся только разверткой. Можно использовать их и один материал на всех.
2. А можно сделать 4 материала. Установить у них нужные offset текстур. Сделать 4 префаба с одинаковым мешем (любым из вышеупомянутых 4-х объектов) и разными материалами.
Вопрос.
Что правильнее (быстрее) - 4 объекта с одним материалом, или 4 префаба с одним мешем и разными материалами.
Если рассуждать логически. В первом случае должен быть больше объем ассета (меши все же больше места занимают, чем материалы), но быстрее, т.к. материал один - меньше дроуколлов.
Верно ли рассуждаю?
 
СообщениеДелаем траву. Есть атлас типа:

1. Есть 4 объекта отличающиеся только разверткой. Можно использовать их и один материал на всех.
2. А можно сделать 4 материала. Установить у них нужные offset текстур. Сделать 4 префаба с одинаковым мешем (любым из вышеупомянутых 4-х объектов) и разными материалами.
Вопрос.
Что правильнее (быстрее) - 4 объекта с одним материалом, или 4 префаба с одним мешем и разными материалами.
Если рассуждать логически. В первом случае должен быть больше объем ассета (меши все же больше места занимают, чем материалы), но быстрее, т.к. материал один - меньше дроуколлов.
Верно ли рассуждаю?

Автор - seaman
Дата добавления - 05 Янв 2012 в 21:17
ShutДата: Чт, 05 Янв 2012, 21:49 | Сообщение # 2
 
Сообщений: 608
Награды: 2
Репутация: 258
Статус: Offline
seaman, я бы выбрал
Quote (seaman)
4 объекта с одним материалом

чем меньше материалов,тем быстрее(если не так,поправьте).А вообще на практике,имхо,это будет не заметно smile


Где арахисы - там и зима.
 
Сообщениеseaman, я бы выбрал
Quote (seaman)
4 объекта с одним материалом

чем меньше материалов,тем быстрее(если не так,поправьте).А вообще на практике,имхо,это будет не заметно smile

Автор - Shut
Дата добавления - 05 Янв 2012 в 21:49
ЛевшаДата: Чт, 05 Янв 2012, 22:02 | Сообщение # 3
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (seaman)
4 объекта с одним материалом

Это правильно!


X.cor.R (Prologue)
 
Сообщение
Quote (seaman)
4 объекта с одним материалом

Это правильно!

Автор - Левша
Дата добавления - 05 Янв 2012 в 22:02
seamanДата: Чт, 05 Янв 2012, 22:04 | Сообщение # 4
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
О.К. Спасибо.
 
СообщениеО.К. Спасибо.

Автор - seaman
Дата добавления - 05 Янв 2012 в 22:04
СкептикДата: Пн, 09 Янв 2012, 00:47 | Сообщение # 5
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Палка о двух концах. Перед девелопером может стоять и задача оптимизировать размер продукта, не взирая на конечный фреймрейт.

Фанат игр Max Payne и Fahrenheit.
 
СообщениеПалка о двух концах. Перед девелопером может стоять и задача оптимизировать размер продукта, не взирая на конечный фреймрейт.

Автор - Скептик
Дата добавления - 09 Янв 2012 в 00:47
FunnyAlienДата: Пн, 09 Янв 2012, 11:50 | Сообщение # 6
NYAN-NYAN?
 
Сообщений: 3643
Награды: 14
Репутация: 835
Статус: Offline
Всю ночь об этом думал...
Все же не зря форум есть, быстро получил ответ smile


Согласно протоколу испытаний, начиная с этого момента, мы перестаем говорить правду. Три, два, один.
 
СообщениеВсю ночь об этом думал...
Все же не зря форум есть, быстро получил ответ smile

Автор - FunnyAlien
Дата добавления - 09 Янв 2012 в 11:50
DekterevДата: Пн, 09 Янв 2012, 12:30 | Сообщение # 7
 
Сообщений: 1753
Награды: 16
Репутация: 892
Статус: Offline
Quote (seaman)
Что правильнее (быстрее) - 4 объекта с одним материалом, или 4 префаба с одним мешем и разными материалами.

Если на сцене будет всегда использоваться не меньше 3 префабов из 4, то лучше сделать 1 материал для 4 объектов. Если по каким-то причинам будет использоваться только 1..2 префаба - то лучше сделать отдельно по материалу для объекта, чтобы не занимать видеопамять лишними данными (неиспользуемыми участками общей текстуры). имхо.

Quote (Shut)
чем меньше материалов, тем быстрее (если не так, поправьте). А вообще на практике, имхо, это будет не заметно

Наибольшую нагрузку на рендер и падение fps, вызывает, скорее, количество разных текстур используемых материалами, а не количество материалов.
Больше всего грузит рендер качество текстур. Чем больше текстуры - тем больше нагрузка на рендер, т.к. просчитывать объем данных приходится намного больший. Ну и по ходу, добавляется нагрузка от шейдеров (Normal Bump и ему подобные) и геометрии (при высокой детализации без LOD-ов).
Так что, оптимизация нужна не только по количеству материалов, но и по разрешению текстур, делализации геометрии, переключением шейдеров на более простые и т.д.


Поиск | Правила | Новые сообщения
 
Сообщение
Quote (seaman)
Что правильнее (быстрее) - 4 объекта с одним материалом, или 4 префаба с одним мешем и разными материалами.

Если на сцене будет всегда использоваться не меньше 3 префабов из 4, то лучше сделать 1 материал для 4 объектов. Если по каким-то причинам будет использоваться только 1..2 префаба - то лучше сделать отдельно по материалу для объекта, чтобы не занимать видеопамять лишними данными (неиспользуемыми участками общей текстуры). имхо.

Quote (Shut)
чем меньше материалов, тем быстрее (если не так, поправьте). А вообще на практике, имхо, это будет не заметно

Наибольшую нагрузку на рендер и падение fps, вызывает, скорее, количество разных текстур используемых материалами, а не количество материалов.
Больше всего грузит рендер качество текстур. Чем больше текстуры - тем больше нагрузка на рендер, т.к. просчитывать объем данных приходится намного больший. Ну и по ходу, добавляется нагрузка от шейдеров (Normal Bump и ему подобные) и геометрии (при высокой детализации без LOD-ов).
Так что, оптимизация нужна не только по количеству материалов, но и по разрешению текстур, делализации геометрии, переключением шейдеров на более простые и т.д.

Автор - Dekterev
Дата добавления - 09 Янв 2012 в 12:30
seamanДата: Пн, 09 Янв 2012, 13:44 | Сообщение # 8
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Вот, кстати. Обнаружил такую странность. При разных углах зрения по разному батчится трава.


С чего бы такое поведение могло быть?
 
СообщениеВот, кстати. Обнаружил такую странность. При разных углах зрения по разному батчится трава.


С чего бы такое поведение могло быть?

Автор - seaman
Дата добавления - 09 Янв 2012 в 13:44
ЛевшаДата: Пн, 09 Янв 2012, 17:27 | Сообщение # 9
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
ИМХО, батчинг в Юне как то через зад работает....
МешКомбинеЧилдрен надежней работал.
У меня вообще то батчит то нет (те же обьекты). Я вот подумываю, не вернуться ли мне к старому, доброму комбайну. smile


X.cor.R (Prologue)
 
СообщениеИМХО, батчинг в Юне как то через зад работает....
МешКомбинеЧилдрен надежней работал.
У меня вообще то батчит то нет (те же обьекты). Я вот подумываю, не вернуться ли мне к старому, доброму комбайну. smile

Автор - Левша
Дата добавления - 09 Янв 2012 в 17:27
DekterevДата: Пн, 09 Янв 2012, 18:41 | Сообщение # 10
 
Сообщений: 1753
Награды: 16
Репутация: 892
Статус: Offline
Quote (Левша)
Я вот подумываю, не вернуться ли мне к старому, доброму комбайну.

А смысл есть? Если на производительность не сильно сказывается то ну его нафиг. biggrin
Я включал CombimeChildren - тормоза были больше чем без него, fps падало, но это еще на Unity 2.5 было.
Тот старый "батчинг" с помощью скрипта в Unity нагружал комп так-же, как и опция объединения объектов Group в 3ds max.
Мне, честно, ни Group в максе, ни "комбайн" в Unity не понравилось, грузит процессор компа на ровном месте. sad

Добавлено (09.01.2012, 18:41)
---------------------------------------------

Quote (seaman)
При разных углах зрения по разному батчится трава.

Может быть, влияет не угол зрения а дальность до объектов. Те что ближе - батчинг =6, те что дальше =3, может быть это нормально?
Желательно проверять при большей нагрузке, когда травы аж за горизонт... и смотреть как работает батчинг и сколько fps, а не при 6 травинках на весь экран, имхо. happy


Поиск | Правила | Новые сообщения
 
Сообщение
Quote (Левша)
Я вот подумываю, не вернуться ли мне к старому, доброму комбайну.

А смысл есть? Если на производительность не сильно сказывается то ну его нафиг. biggrin
Я включал CombimeChildren - тормоза были больше чем без него, fps падало, но это еще на Unity 2.5 было.
Тот старый "батчинг" с помощью скрипта в Unity нагружал комп так-же, как и опция объединения объектов Group в 3ds max.
Мне, честно, ни Group в максе, ни "комбайн" в Unity не понравилось, грузит процессор компа на ровном месте. sad

Добавлено (09.01.2012, 18:41)
---------------------------------------------

Quote (seaman)
При разных углах зрения по разному батчится трава.

Может быть, влияет не угол зрения а дальность до объектов. Те что ближе - батчинг =6, те что дальше =3, может быть это нормально?
Желательно проверять при большей нагрузке, когда травы аж за горизонт... и смотреть как работает батчинг и сколько fps, а не при 6 травинках на весь экран, имхо. happy

Автор - Dekterev
Дата добавления - 09 Янв 2012 в 18:41
seamanДата: Пн, 09 Янв 2012, 23:18 | Сообщение # 11
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Quote
Желательно проверять при большей нагрузке

Ну это возможно, но тогда такие штуки увидеть сложнее. Как посчитать сколько травы на самом деле?
На самом деле это не принципиально, просто засек, решил поделиться.
 
Сообщение
Quote
Желательно проверять при большей нагрузке

Ну это возможно, но тогда такие штуки увидеть сложнее. Как посчитать сколько травы на самом деле?
На самом деле это не принципиально, просто засек, решил поделиться.

Автор - seaman
Дата добавления - 09 Янв 2012 в 23:18
СкептикДата: Вт, 10 Янв 2012, 17:48 | Сообщение # 12
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Тоже думаю, что батчинг реализуется через LODы. На первом скрине травка ведь ближе. Но, в принципе, другие параметры ведь не меняются, так что переживать не стоит.

Фанат игр Max Payne и Fahrenheit.
 
СообщениеТоже думаю, что батчинг реализуется через LODы. На первом скрине травка ведь ближе. Но, в принципе, другие параметры ведь не меняются, так что переживать не стоит.

Автор - Скептик
Дата добавления - 10 Янв 2012 в 17:48
gnoblinДата: Сб, 14 Янв 2012, 21:40 | Сообщение # 13
Нет аватара
 
Сообщений: 3
Награды: 0
Репутация: 8
Статус: Offline
1 мат, 1 атлас, смещение ув координат на мешах
 
Сообщение1 мат, 1 атлас, смещение ув координат на мешах

Автор - gnoblin
Дата добавления - 14 Янв 2012 в 21:40
seamanДата: Вс, 15 Янв 2012, 11:37 | Сообщение # 14
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Т.е. Вы предлагаете на траву вешать скрипт, который будет сдвигать uv-координаты?
 
СообщениеТ.е. Вы предлагаете на траву вешать скрипт, который будет сдвигать uv-координаты?

Автор - seaman
Дата добавления - 15 Янв 2012 в 11:37
ЛевшаДата: Вс, 15 Янв 2012, 17:06 | Сообщение # 15
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (seaman)
на траву вешать скрипт, который будет сдвигать uv-координаты?

Наверно нет. smile Заранее в максе сдвинуть координаты и использовать 1 мат на все виды травы.
Каждая мешь использует свой участок развертки текстуры.


X.cor.R (Prologue)
 
Сообщение
Quote (seaman)
на траву вешать скрипт, который будет сдвигать uv-координаты?

Наверно нет. smile Заранее в максе сдвинуть координаты и использовать 1 мат на все виды травы.
Каждая мешь использует свой участок развертки текстуры.

Автор - Левша
Дата добавления - 15 Янв 2012 в 17:06
seamanДата: Вс, 15 Янв 2012, 19:00 | Сообщение # 16
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Т.е. все же первый вариант из начального сообщения. Ну я уже так и делаю.
Но вообще еще можно и так. Один меш, один материал, один атлас, один скрипт у которого на разных префабах разные установки сдвига UV-координат. Можно даже и префаб один сделать, но тогда установки скрипта нужно делать у каждой выставленной в сцену травинки, что не хорошо.
Скрипт простейший:
Code
using UnityEngine;

public class ShiftUV : MonoBehaviour
{
      public float xShift;
      public float yShift;

   void Start ()
      {
          MeshFilter mf = gameObject.GetComponent<MeshFilter>();
          Mesh mesh = mf.mesh;
          Vector2[] uvs = mesh.uv;
          Vector2[] newUVs = new Vector2[uvs.Length];
          for (int i = 0; i < uvs.Length; i++)
          {
              newUVs[i] = new Vector2(uvs[i].x + xShift, uvs[i].y + yShift);
          }
          mesh.uv = newUVs;
          mf.mesh = mesh;
   }
}


Да. Батчатся такие травинки отлично.
 
СообщениеТ.е. все же первый вариант из начального сообщения. Ну я уже так и делаю.
Но вообще еще можно и так. Один меш, один материал, один атлас, один скрипт у которого на разных префабах разные установки сдвига UV-координат. Можно даже и префаб один сделать, но тогда установки скрипта нужно делать у каждой выставленной в сцену травинки, что не хорошо.
Скрипт простейший:
Code
using UnityEngine;

public class ShiftUV : MonoBehaviour
{
      public float xShift;
      public float yShift;

   void Start ()
      {
          MeshFilter mf = gameObject.GetComponent<MeshFilter>();
          Mesh mesh = mf.mesh;
          Vector2[] uvs = mesh.uv;
          Vector2[] newUVs = new Vector2[uvs.Length];
          for (int i = 0; i < uvs.Length; i++)
          {
              newUVs[i] = new Vector2(uvs[i].x + xShift, uvs[i].y + yShift);
          }
          mesh.uv = newUVs;
          mf.mesh = mesh;
   }
}


Да. Батчатся такие травинки отлично.

Автор - seaman
Дата добавления - 15 Янв 2012 в 19:00
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Что лучше - несколько материалов, или несколько объектов (-)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024